Deny auto BlockIP on ML-only Firepower incidents (Gate/Prove) - #14926
Deny auto BlockIP on ML-only Firepower incidents (Gate/Prove)#14926Ahmed Hassan (AAH20) wants to merge 1 commit into
Conversation
SnortML / GID 411 must not be treated as a signature true positive: NetworkGroup auto-contain cancels, Teams HITL warns and still requires analyst confirmation. Co-authored-by: Cursor <cursoragent@cursor.com>
There was a problem hiding this comment.
Pull request overview
Note
Copilot was unable to run its full agentic suite in this review.
Updates the Cisco Firepower BlockIP playbooks to add a Gate/Prove “ML-only” pre-check so ML-only (SnortML / GID 411) incidents don’t trigger automatic containment, while keeping Teams as HITL and updating solution versions/metadata accordingly.
Changes:
- Add ML-only detection based on incident title/description and either terminate auto-contain (NetworkGroup) or warn only (Teams).
- Bump playbook template versions to 1.1 and solution version to 3.0.3, plus release notes/readme guidance updates.
- Update ARM template metadata (release notes, lastUpdateTime, mainSteps, postDeployment, releaseNotes).
Reviewed changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| Solutions/Cisco Firepower EStreamer/ReleaseNotes.md | Adds 3.0.3 entry documenting Gate/Prove behavior for BlockIP playbooks. |
| Solutions/Cisco Firepower EStreamer/Playbooks/readme.md | Documents when to use auto-contain vs Teams HITL for ML-only scenarios. |
| Solutions/Cisco Firepower EStreamer/Playbooks/CiscoFirepower-BlockIP-Teams/readme.md | Adds Gate/Prove ML-only warning guidance for HITL flow. |
| Solutions/Cisco Firepower EStreamer/Playbooks/CiscoFirepower-BlockIP-Teams/azuredeploy.json | Implements ML-only warning comment and bumps template metadata/versioning. |
| Solutions/Cisco Firepower EStreamer/Playbooks/CiscoFirepower-BlockIP-NetworkGroup/readme.md | Documents ML-only deny/cancel behavior for auto-contain playbook. |
| Solutions/Cisco Firepower EStreamer/Playbooks/CiscoFirepower-BlockIP-NetworkGroup/azuredeploy.json | Implements ML-only deny + terminate before any FMC operations and bumps template metadata/versioning. |
| Solutions/Cisco Firepower EStreamer/Data/Solution_Cisco Firepower EStreamer.json | Bumps solution version to 3.0.3. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| }, | ||
| "Gate_Prove_ML_only_deny_auto_contain": { | ||
| "actions": { | ||
| "Add_comment_to_incident_(V3):_ML_only_deny_auto_contain": { |
| "Terminate:_ML_only_deny_auto_contain": { | ||
| "runAfter": { | ||
| "Add_comment_to_incident_(V3):_ML_only_deny_auto_contain": [ | ||
| "Succeeded" | ||
| ] | ||
| }, |
| }, | ||
| "Gate_Prove_ML_only_HITL_warning": { | ||
| "actions": { | ||
| "Add_comment_to_incident_(V3):_ML_only_HITL_warning": { |
| "contains": [ | ||
| "@variables('DualSignalContext')", | ||
| "gid 411" | ||
| ] | ||
| }, | ||
| { | ||
| "contains": [ | ||
| "@variables('DualSignalContext')", | ||
| "gid:411" | ||
| ] | ||
| }, | ||
| { | ||
| "contains": [ | ||
| "@variables('DualSignalContext')", | ||
| "generator id 411" |
| "contains": [ | ||
| "@variables('DualSignalContext')", | ||
| "gid 411" |
| * [Cisco Firepower - Add FQDN to a Network Group object](./CiscoFirepower-BlockFQDN-NetworkGroup#deployment-instructions) | ||
| * [Cisco Firepower - Add IP Addresses to a Network Group object](./CiscoFirepower-BlockIP-NetworkGroup#deployment-instructions) | ||
| * [Cisco Firepower - Add IP Addresses to a Network Group object with Teams](./CiscoFirepower-BlockIP-Teams#deployment-instructions) | ||
| * [Cisco Firepower - Add IP Addresses to a Network Group object](./CiscoFirepower-BlockIP-NetworkGroup#deployment-instructions) — auto-contain. **Gate/Prove:** denied when the incident is ML-only (SnortML / GID 411). Attach only to signature-high or corroborated analytics. |
|
Hi Ahmed Hassan (@AAH20), Once the review and updates are complete:
|
|
Consolidated into #14925 per v-atulyadav (single Firepower solution version with analytics + Gate/Prove BlockIP). Closing this duplicate. |
Proposed Changes
Compounds #14925: the dual-signal analytic rules are not enough if CiscoFirepower-BlockIP-NetworkGroup still auto-contains on ML-only incidents.
Hard rule: ML confidence ≠ signature true positive.
is_ml_only) without corroboration (is_corroborated/ signature+ML), comment and Terminate/Cancelled — no FMC Network Group APIsSignature-high and signature+ML corroborated incidents are unchanged (NetworkGroup still blocks; Teams still HITL).
Solution metadata bumped to
3.0.3(playbooks). If #14925 (3.0.2) is not merged yet, maintainers can collapse versions on merge. Playbook template version1.0→1.1.Wiring
Portable sisters
Optional production Gate/Prove consumer (paid Continuous Trust, not unpaid R&D): https://github.com/AAH20/aegis-decision-fabric · https://a2zsoc.com/consultation
Checklist
json.loads)Entities - Get IPshidden-SentinelTemplateVersion1.1 + releaseNotes 1.1.0Test plan
SnortML/GID 411/is_ml_onlyand no corroboration markers → incident comment, run Cancelled, no FMC BlockIPis_corroborated/signature and mlin the incident → BlockIP path unchangedMade with Cursor