Attack triage action steps
Attack triage action steps let workflows manage the lifecycle of attacks you triage on the Attacks page. This includes status changes, assignments, and tags on the correlated attacks that group related alerts in Elastic Security.
These steps live under the security.* step type namespace (for example, security.setAttackStatus). They expose explicit input schemas for operations that were previously reachable only through the generic kibana.request step, so parameters are validated at save time and discoverable in the Workflows editor.
Use attack triage steps for patterns like:
- Assign a newly detected attack to an on-call analyst as soon as it's created.
- Tag attacks as escalated before handing off to a case with
cases.*steps. - Close an attack and cascade the same status to every alert correlated with it, in one step.
To manage individual alerts, use the Alert triage action steps.
Every attack triage step shares the same conventions, so once you learn one step the others are predictable.
All parameters live under with. IDs, status, assignees, and tags are all with-level fields. There are no top-level fields specific to this namespace.
Single or bulk. The ids field accepts either a single string or an array of strings, so one step can target one or many attacks.
Add/remove is not a full override. For assignees and tags, existing values are preserved unless explicitly listed in the corresponding *_to_remove field. This is the opposite of a "set/replace" operation, so you can't overwrite the full list by sending only *_to_add.
At least one of add/remove is required. The assign and tags steps (assignees_to_add/assignees_to_remove, tags_to_add/tags_to_remove) require at least one of the pair. You can send both in a single step invocation.
Cascade to related alerts. Every attack step accepts an update_related_alerts boolean (default false) that also applies the change to the alerts correlated with the attack.
The equivalent alert steps use different parameter names. Attack steps use ids instead of alert_ids and reason instead of close_reason, and alert steps don't have the update_related_alerts parameter.
Schema convention. In each schema table on this page, the Location column indicates where each parameter sits in the YAML:
top level: Alongsidetypeandname, at the top of the step or trigger definition.`with`: Inside the step'swith:block.`on`: Inside the trigger'son:block.
The 3 attack triage steps manage the attack lifecycle. Jump to any step:
security.setAttackStatus ·
security.assignAttack ·
security.setAttackTags
Change the status of one or multiple attacks.
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
ids |
with |
string or string[] |
Yes | A single attack ID or a list of IDs (bulk). |
status |
with |
string |
Yes | New status for the attacks: open, acknowledged, or closed. |
reason |
with |
string |
No, only valid when status: closed |
Reason for closing. Predefined values: false_positive, duplicate, true_positive, benign_positive, automated_closure, other. A custom string (max 1024 chars) is also accepted. |
update_related_alerts |
with |
boolean | No (default false) |
Also apply the status change to alerts related to the attack. |
- name: close_attacks
type: security.setAttackStatus
with:
ids:
- 'attack-1'
- 'attack-2'
status: 'closed'
reason: 'false_positive'
update_related_alerts: true
Assign or unassign users on one or multiple attacks.
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
ids |
with |
string or string[] |
Yes | A single attack ID or a list of IDs (bulk). |
assignees_to_add |
with |
string[] (user IDs) |
At least one of add/remove | User IDs to assign. |
assignees_to_remove |
with |
string[] (user IDs) |
At least one of add/remove | User IDs to unassign. |
update_related_alerts |
with |
boolean | No (default false) |
Also apply the assignment change to related alerts. |
- name: assign_attack
type: security.assignAttack
with:
ids: '{{ variables.attack_id }}'
assignees_to_add:
- 'user_id_1'
Add or remove tags on one or multiple attacks.
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
ids |
with |
string or string[] |
Yes | A single attack ID or a list of IDs (bulk). |
tags_to_add |
with |
string[] |
At least one of add/remove | Tags to add. Existing tags are preserved. |
tags_to_remove |
with |
string[] |
At least one of add/remove | Tags to remove. |
update_related_alerts |
with |
boolean | No (default false) |
Also apply the tag change to related alerts. |
- name: retag_attacks
type: security.setAttackTags
with:
ids:
- 'attack-1'
- 'attack-2'
tags_to_add:
- 'escalated'
tags_to_remove:
- 'needs-review'
update_related_alerts: true
- Security action steps: Overview of the
security.*step namespace. - Alert triage action steps: Status, assignee, and tag management for individual alerts.
- Triage and manage attacks: The Kibana UI for the attacks these steps automate.
- Cases action steps: Hand off a triaged attack to a case after status, assignee, or tag changes.
- Alert triggers: Run a workflow automatically when a detection rule generates an alert.