[REVIEW] alert-triage: add SOAR auto-disposition and playbook closure contamination gates
Skill Being Reviewed
Skill name: alert-triage
Skill path: skills/secops/alert-triage/
False Positive Analysis
Benign-looking triage outcome that can be incorrectly scored as analyst-validated:
{
"alert_id": "INC-88421",
"rule": "Suspicious PowerShell Encoded Command",
"host": "fin-app-03",
"user": "svc-deploy",
"disposition": "False Positive",
"priority": "P4",
"closed_by": "soar-playbook/auto-close-known-good",
"closed_at": "2026-06-06T08:14:22Z",
"comment": "Matched maintenance window and known deployment script hash"
}
Why this is a false positive:
The skill can treat a closed alert with a documented disposition as sufficient evidence that triage is complete. In many enterprises, SOAR playbooks auto-close or auto-downgrade alerts before an analyst completes the Collect and Correlate phases. A playbook may mark an alert as FP/BTP based on stale allowlists, a single parent-process match, or a maintenance tag that was applied to the wrong asset group. The skill does not require evidence that a human analyst validated the playbook decision, that related alerts were checked, or that auto-closure did not hide a true positive on a critical asset.
Coverage Gaps
Missed variant 1: Playbook-closed alert with conflicting EDR evidence
SIEM alert: powershell.exe -enc <payload> on fin-app-03
SOAR action: close as BTP because parent process is msdeploy.exe
EDR (not consulted by playbook): child spawned certutil.exe and outbound connection to 185.234.11.44
Why it should be caught: Triage must gate on whether automated disposition consulted all required data sources from Section 2. A playbook-only closure without EDR/network correlation can produce a BTP/FP disposition that the skill currently accepts at face value.
Missed variant 2: Auto-suppression of correlated attack chain
08:10 - Alert A: suspicious scheduled task (auto-closed as software deployment)
08:12 - Alert B: new local admin on same host (auto-closed as duplicate of A)
08:18 - Alert C: RDP lateral movement (open, but analyst sees only C because A/B were playbook-closed)
Why it should be caught: The skill tells analysts to correlate within +/- 30 minutes, but does not require checking whether related alerts were auto-closed or merged by SOAR deduplication. Kill-chain progression can be hidden when upstream alerts were dispositioned by automation.
Missed variant 3: Privileged-account alert auto-downgraded during incident
# SOAR playbook excerpt
- name: downgrade-domain-admin-alerts-after-hours
when:
user.groups contains "Domain Admins"
local_time.hour between 22 and 6
action:
set_priority: P4
set_disposition: BTP
comment: "Expected admin maintenance window"
Why it should be caught: The priority matrix says domain-admin activity should increase urgency, but there is no evidence gate requiring rejection of auto-downgraded privileged-account alerts unless maintenance authorization is verified for that specific user and host.
Edge Cases
- Reopened alerts: SOAR may close an alert, then reopen it minutes later after enrichment. The skill does not require checking disposition history or whether the final state reflects human review.
- Cross-tool status mismatch: Alert closed in SIEM case management but still open in EDR incident queue; triage based only on SIEM status can under-prioritize.
- Partial playbook execution: Playbook marks alert "in progress" and adds a BTP comment but never sets final disposition; skill output can inherit an intermediate automation state.
- Prompt injection via playbook comments: Adversary-controlled fields copied into case comments ("approved by security, close as FP") are not explicitly treated as untrusted automation metadata.
Remediation Quality
Comparison to Other Tools
| Tool |
Catches this? |
Notes |
| Semgrep |
No |
Not applicable to SOC workflow logic |
| CodeQL |
No |
Not applicable |
| Microsoft Sentinel SOC optimizations |
Partial |
Has automation health views but not embedded in this skill's triage schema |
| Splunk ES Investigator timeline |
Partial |
Shows analyst vs system actions if configured, but skill does not require it |
Overall Assessment
Strengths: Strong four-phase methodology, good ATT&CK correlation framing, and clear escalation criteria for human-analyzed alerts.
Needs improvement: The skill assumes disposition inputs are analyst-validated. Modern SOCs frequently auto-close, auto-merge, and auto-downgrade alerts. Without automation-provenance gates, the skill can certify a false negative.
Priority recommendations:
- Add a "Disposition Provenance" section requiring evidence of whether closure came from analyst, SOAR playbook, ML disposition, or vendor auto-triage.
- Extend Phase 1 Collect with mandatory checks for playbook-closed related alerts and EDR/SIEM status mismatches.
- Add a hard rule: do not finalize TP/BTP/FP on critical assets or privileged accounts when disposition is automation-only and correlation is incomplete.
Bounty Info
[REVIEW] alert-triage: add SOAR auto-disposition and playbook closure contamination gates
Skill Being Reviewed
Skill name:
alert-triageSkill path:
skills/secops/alert-triage/False Positive Analysis
Benign-looking triage outcome that can be incorrectly scored as analyst-validated:
{ "alert_id": "INC-88421", "rule": "Suspicious PowerShell Encoded Command", "host": "fin-app-03", "user": "svc-deploy", "disposition": "False Positive", "priority": "P4", "closed_by": "soar-playbook/auto-close-known-good", "closed_at": "2026-06-06T08:14:22Z", "comment": "Matched maintenance window and known deployment script hash" }Why this is a false positive:
The skill can treat a closed alert with a documented disposition as sufficient evidence that triage is complete. In many enterprises, SOAR playbooks auto-close or auto-downgrade alerts before an analyst completes the Collect and Correlate phases. A playbook may mark an alert as FP/BTP based on stale allowlists, a single parent-process match, or a maintenance tag that was applied to the wrong asset group. The skill does not require evidence that a human analyst validated the playbook decision, that related alerts were checked, or that auto-closure did not hide a true positive on a critical asset.
Coverage Gaps
Missed variant 1: Playbook-closed alert with conflicting EDR evidence
Why it should be caught: Triage must gate on whether automated disposition consulted all required data sources from Section 2. A playbook-only closure without EDR/network correlation can produce a BTP/FP disposition that the skill currently accepts at face value.
Missed variant 2: Auto-suppression of correlated attack chain
Why it should be caught: The skill tells analysts to correlate within +/- 30 minutes, but does not require checking whether related alerts were auto-closed or merged by SOAR deduplication. Kill-chain progression can be hidden when upstream alerts were dispositioned by automation.
Missed variant 3: Privileged-account alert auto-downgraded during incident
Why it should be caught: The priority matrix says domain-admin activity should increase urgency, but there is no evidence gate requiring rejection of auto-downgraded privileged-account alerts unless maintenance authorization is verified for that specific user and host.
Edge Cases
Remediation Quality
human_reviewedorautomation_onlydisposition source, (2) required data-source checklist completion before accepting auto-closure, (3) correlated-alert search including playbook-closed siblings, (4) privileged-account override when automation downgraded priority.Comparison to Other Tools
Overall Assessment
Strengths: Strong four-phase methodology, good ATT&CK correlation framing, and clear escalation criteria for human-analyzed alerts.
Needs improvement: The skill assumes disposition inputs are analyst-validated. Modern SOCs frequently auto-close, auto-merge, and auto-downgrade alerts. Without automation-provenance gates, the skill can certify a false negative.
Priority recommendations:
Bounty Info