You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix: Deep audit — fix broken dispatch URLs, state machine gaps, and input validation
- Fix config.port (undefined) → config.metricsPort in all webhook dispatch messages
- Add closed as terminal state in status transitions (no transitions allowed)
- Mark plans as FAILED when all actions denied by policy (not COMPLETED)
- Add status and risk_level validation on agent-action endpoints
- Sanitize data param with field allowlist to prevent arbitrary injection
- Add webhook dispatch for planned→policy-guard and approved→responder
- Add edit/write/exec to installer global tools.allow list
- Standardize asset criticality tables across policy-guard and correlation
- Add MITRE TA0011 (Command and Control) to correlation kill chain
- Fix listPlans unguarded getPlan throw, callMcpTool lastError guard
- Allow dots in MCP tool name regex, handle link-local/CGNAT in isPrivateIp
- Drain unconsumed fetch response bodies in MCP init and webhook dispatch
triaged: `Correlate case ${caseId} (${evidencePack.severity} severity). Search for related alerts, identify attack patterns, then use web_fetch to call: http://localhost:${config.port}/api/agent-action/update-case?case_id=${caseId}&status=correlated`,
988
-
correlated: `Investigate case ${caseId} (${evidencePack.severity} severity). Perform deep analysis using MCP tools: check agent health, search security events, analyze threat indicators. Then use web_fetch to call: http://localhost:${config.port}/api/agent-action/update-case?case_id=${caseId}&status=investigated`,
989
-
investigated: `Plan response for case ${caseId} (${evidencePack.severity} severity). Review investigation findings and create a response plan. Then use web_fetch to submit the plan: http://localhost:${config.port}/api/agent-action/create-plan?case_id=${caseId}&title={url_encoded_title}&risk_level={risk_level}&actions={url_encoded_actions_json}`,
996
+
triaged: `Correlate case ${caseId} (${evidencePack.severity} severity). Search for related alerts, identify attack patterns, then use web_fetch to call: http://localhost:${config.metricsPort}/api/agent-action/update-case?case_id=${caseId}&status=correlated`,
997
+
correlated: `Investigate case ${caseId} (${evidencePack.severity} severity). Perform deep analysis using MCP tools: check agent health, search security events, analyze threat indicators. Then use web_fetch to call: http://localhost:${config.metricsPort}/api/agent-action/update-case?case_id=${caseId}&status=investigated`,
998
+
investigated: `Plan response for case ${caseId} (${evidencePack.severity} severity). Review investigation findings and create a response plan. Then use web_fetch to submit the plan: http://localhost:${config.metricsPort}/api/agent-action/create-plan?case_id=${caseId}&title={url_encoded_title}&risk_level={risk_level}&actions={url_encoded_actions_json}`,
999
+
planned: `Evaluate proposed plan for case ${caseId} (${evidencePack.severity} severity). Check all policy rules, risk levels, and approval requirements. Then use web_fetch to submit your decision: http://localhost:${config.metricsPort}/api/agent-action/approve-plan?plan_id={plan_id}&approver_id=policy-guard&decision={allow|deny|escalate}&reason={url_encoded_reason}`,
1000
+
approved: `Execute approved plan for case ${caseId} (${evidencePack.severity} severity). Check responder status, then execute the plan. Use web_fetch to call: http://localhost:${config.metricsPort}/api/agent-action/execute-plan?plan_id={plan_id}&executor_id=responder-agent`,
990
1001
};
991
1002
dispatchToGateway(webhookPath,{
992
1003
message: statusMessages[updates.status]||`Process case ${caseId} — status changed to ${updates.status}.`,
@@ -1335,8 +1346,12 @@ function listPlans(options = {}) {
1335
1346
1336
1347
for(const[planId,plan]ofresponsePlans.entries()){
1337
1348
// Trigger expiry check via getPlan (updates stale PROPOSED/APPROVED → EXPIRED)
message: `Triage new ${severity}-severity alert: ${caseData.title}. Case ${caseId} with ${entities.length} entities extracted. Analyze the alert, assess threat level, then use web_fetch to call: http://localhost:${config.port}/api/agent-action/update-case?case_id=${caseId}&status=triaged`,
3299
+
message: `Triage new ${severity}-severity alert: ${caseData.title}. Case ${caseId} with ${entities.length} entities extracted. Analyze the alert, assess threat level, then use web_fetch to call: http://localhost:${config.metricsPort}/api/agent-action/update-case?case_id=${caseId}&status=triaged`,
0 commit comments