SecOpsAI Findings Triage & Investigation Guide
A step-by-step guide for reviewing, investigating, and dispositioning SecOpsAI alerts.
Workflow
- Refresh and inspect findings:
cd /path/to/secopsai
source .venv/bin/activate
secopsai refresh
secopsai triage list --status open --limit 20
- Start analyst review:
secopsai triage start <FINDING_ID> --note "Initial analyst review started"
- Gather evidence and generate case files:
secopsai triage investigate <FINDING_ID> --json
Generated artifacts:
reports/triage/<finding_id>.json-
reports/triage/<finding_id>.md -
Close with analyst-confirmed disposition:
secopsai triage close <FINDING_ID> --disposition needs_review --note "Escalated to senior analyst"
Supported Dispositions
true_positivefalse_positiveexpected_behavioraccepted_riskexception_grantedneeds_reviewtune_policyremediated
Supply-Chain Triage
secopsai triage investigate SCM-XXXX automatically gathers:
- finding summary and severity
- package policy matches (allowlist / denylist)
- local dependency references under the chosen search root
- stored verdict explanation and matched rules
- reputation signals from registry metadata when available
- suggested disposition and next actions
Use it to quickly decide whether a package is:
true_positivefalse_positiveexpected_behaviorneeds_review
False-Positive Relief
Immediate allowlist relief:
secopsai supply-chain allowlist add --ecosystem pypi --package textual
secopsai supply-chain explain-policy --ecosystem pypi --package textual
secopsai supply-chain reconcile-history --json
secopsai triage close SCM-XXXX --disposition false_positive --note "Verified legitimate package; added to allowlist."
Remove an allowlist entry:
secopsai supply-chain allowlist remove --ecosystem pypi --package textual
Tune a noisy rule instead of allowlisting a package:
secopsai supply-chain tune rule "wheel/sdist artifact divergence" --weight 1
secopsai supply-chain tune rule "manifest executable entrypoints" --disable
Tune thresholds:
secopsai supply-chain tune threshold --global-threshold --value 12
secopsai supply-chain tune threshold --ecosystem pypi --value 12
secopsai supply-chain tune threshold --package langchain --package-ecosystem pypi --value 14
Ask SecOpsAI to propose a threshold from reviewed history:
secopsai supply-chain suggest-threshold --ecosystem npm
secopsai supply-chain suggest-threshold --ecosystem pypi --package textual
Use allowlisting when one known-safe package keeps firing. Use rule or threshold tuning when the same heuristic is noisy across many legitimate packages.
Get a recommended false-positive action from a finding ID:
secopsai supply-chain suggest-fp-action SCM-XXXX --search-root /path/to/repo
This suggests one of:
- close as
expected_behavior - add the package to the allowlist
- tune a noisy rule
- keep the finding in
needs_review
Guarded auto-close for clearly safe supply-chain false positives:
secopsai triage auto-close-safe-fp SCM-XXXX --search-root /path/to/repo
If the safe path requires an allowlist entry first, make that explicit:
secopsai triage auto-close-safe-fp SCM-XXXX --search-root /path/to/repo --allow-allowlist --reconcile-history
Host-Based Triage
secopsai triage investigate OCF-XXXX currently supports:
- policy denial review
- exfiltration review
- generic host finding review with evidence summary and next actions
Best Practices
- Always add a meaningful closure note.
- Use
triage startbefore deep analysis so the SOC store reflects active analyst review. - Treat
triage investigateas evidence gathering, not auto-closure. - Keep the generated case files for audit trail and rule tuning.