[KL] "Playbook for checking external IP addresses"
Скопировано

16 октября 2026

ID 324933

[KL] "Playbook for checking external IP addresses"

Предустановленный плейбук [KL] "Playbook for checking external IP addresses" запускается при обнаружении подключения к внешнему IP-адресу и инициирует процесс обогащения Kaspersky TIP. Если результаты обогащения показывают, что количество угроз превышает 80, для активов типа "host" запрашиваются данные для расследования (список процессов) и выполняется действие "Включить сетевую изоляцию".

Дополнительная информация о плейбуке.

  • Для правильной работы плейбука нужно настроить интеграцию с Kaspersky TIP.
  • Интеграция с Active Directory необходима для выполнения действий по блокировке учетных записей.
  • Если результат обогащения показывает, что оценка угрозы ниже 80, плейбук прерывается.
  • Выполнение плейбука будет остановлено, если на любом из шагов возникнет ошибка.
  • Действие "Включить изоляцию сети" необходимо вручную подтвердить во время выполнения плейбука.

Триггер плейбука содержит следующее выражение:

"event.new and ([ .Alerts[] | .Observables[] | select(.Value | test("^(10\\.|172\\.(1[6-9]|2[0-9]|3[01])\\.|192\\.168\\.|127\\.)") | not) | .Value ] | length > 0)"

ResponseFunction используемые плейбуком: iocsEnrichment, getForensics, netIsolateOn.

Алгоритм плейбука содержит следующую последовательность действий по реагированию:

{

"version": "1",

"dslSpecVersion": "1.1.0",

"actionsSpecVersion": "1",

"playbookRunTimeout": "24h",

"executionFlow": [

{

"action": {

"function": {

"type": "iocsEnrichment",

"params": {

"fullEnrichment": true,

"observables": "${[ incident.Alerts[] | .Observables[] | {\"type\": .Type, \"value\": .Value } | select(.type==\"ip\" and (.value | test(\"^(10\\\\.|172\\\\.(1[6-9]|2[0-9]|3[01])\\\\.|192\\\\.168\\\\.|127\\\\.)\") | not)) ] | unique_by(.value)}"

}

},

"onError": "stop",

"timeout": {

"scheduleToCloseTimeout": "24h"

},

"output": {

"filter": "${.}",

"action": "overwrite"

}

}

},

{

"decision": {

"conditions": [

{

"condition": "${\"${([.details.observableData[] | select(.status == \\\"ok\\\" and .ipObservableData.ipGeneralInfo.threatScore > 80)] | length > 0)}\"}",

"name": "Condition 1",

"steps": [

{

"decision": {

"conditions": [

{

"condition": "${incident.Alerts | map(.Assets) | flatten | map(select(.Type == \"host\")) | length > 0}",

"name": "alert has host(s)",

"steps": [

{

"action": {

"function": {

"type": "getForensics",

"assets": "${incident.Alerts | map(.Assets) | flatten | map(select(.Type == \"host\")) | map(.ID)}",

"params": {

"processes": {

"collect": true

},

"autoruns": {

"collect": false

}

}

},

"onError": "stop",

"timeout": {

"scheduleToCloseTimeout": "24h"

}

}

},

{

"action": {

"function": {

"type": "netIsolateOn",

"assets": "${incident.Alerts | map(.Assets) | flatten | map(select(.Type == \"host\")) | map(.ID)}",

"params": {

"exclusions": [],

"exclusionsConflictBehavior": "replace",

"isolationTimeoutSec": 28800

}

},

"onError": "stop",

"timeout": {

"scheduleToCloseTimeout": "24h"

},

"manualApprove": {

"timeout": "60m",

"emailNotifications": {

"enabled": true,

"delay": "10m"

}

}

}

}

]

}

]

}

}

]

}

]

}

}

]

}

Вам помогла эта статья?
Что нам нужно улучшить?
Спасибо за ваш отзыв, вы помогаете нам становиться лучше!
Спасибо за ваш отзыв, вы помогаете нам становиться лучше!