BlastShield
An AI agent prototype for security alert response. It uses a graph database to represent access relationships, constrains large model behavior with restricted tools, and performs traceable, verifiable attack path analysis through multi-hop graph queries.
Timeline (last 90 days)
BlastShield is a prototype entry for Track 01 of the Graph Hacks 2026 hackathon, using the graph database FalkorDB to hold access relationships, constrained tools to bound Gemini's behavior, and re-querying after each action to verify results.
BlastShield's graph model contains five entity types: Identity, Session, Workload, IAMRole, and DataAsset.
The edges in BlastShield's graph model include HAS_SESSION, CAN_ACCESS, RUNS_AS, CAN_ASSUME, and CAN_READ, and the edges carry attributes such as route identifiers, containment and response status, permission assessments, and sensitivity.
BlastShield includes four typical scenarios: identity access path (BH-1042, medium severity, 35 points), excessive IAM permissions (BH-IAM-2001, high severity, 65 points), exposed workload (BH-WORKLOAD-3001, high severity, 75 points), and containment scenario (BH-CONTAINMENT-4001, high severity, 60 points), with scores coming from the demo rule set demo-rules-v1.
BlastShield uses bounded directed traversal, the depth passed by the caller is validated as an integer between 1 and 6, corresponding to six prebuilt query templates, and caller text is never concatenated into Cypher.
BlastShield exposes a set of reviewed fixed tools: investigate_alert(alert_id), get_blast_radius(alert_id), find_shortest_access_path(source_id, target_id, max_hops), get_containment_route_statuses(alert_id).
BlastShield separates 'proposed actions' from 'executed actions' and sets up three layers of boundaries: the decision service only provides read-only tools to obtain response candidates; the FastAPI controller requires explicit confirmation and limits the number of actions per run; and an independent action service holds the only mutation capability and performs at most one allowlisted write against the synthetic graph.
In the BH-CONTAINMENT-4001 scenario, the seed model has two independent paths, and the controller re-queries FalkorDB after each action, with the expected sequence being: block the primary path, re-query and discover the alternate path, block the alternate path, and query again to confirm no qualifying paths remain.
BlastShield's latest backend test run reports 32 passed and 6 skipped, with the 6 skipped being real FalkorDB tests that require explicit enabling.
BlastShield does not integrate native graph algorithms, and the shortest-path tool uses bounded Cypher traversal rather than algo.SPpaths; it has no persistent graph memory, and the containment audit history is stored in process memory and cleared on API restart; it uses only synthetic data and does not connect to any cloud account.
2 more timeline events
All Facts (12)
BlastShield is a prototype entry for Track 01 of the Graph Hacks 2026 hackathon, using the graph database FalkorDB to hold access relationships, constrained tools to bound Gemini's behavior, and re-querying after each action to verify results.
50%UnverifiedBlastShield's graph model contains five entity types: Identity, Session, Workload, IAMRole, and DataAsset.
50%UnverifiedThe edges in BlastShield's graph model include HAS_SESSION, CAN_ACCESS, RUNS_AS, CAN_ASSUME, and CAN_READ, and the edges carry attributes such as route identifiers, containment and response status, permission assessments, and sensitivity.
50%UnverifiedBlastShield includes four typical scenarios: identity access path (BH-1042, medium severity, 35 points), excessive IAM permissions (BH-IAM-2001, high severity, 65 points), exposed workload (BH-WORKLOAD-3001, high severity, 75 points), and containment scenario (BH-CONTAINMENT-4001, high severity, 60 points), with scores coming from the demo rule set demo-rules-v1.
50%UnverifiedBlastShield uses bounded directed traversal, the depth passed by the caller is validated as an integer between 1 and 6, corresponding to six prebuilt query templates, and caller text is never concatenated into Cypher.
50%UnverifiedBlastShield exposes a set of reviewed fixed tools: investigate_alert(alert_id), get_blast_radius(alert_id), find_shortest_access_path(source_id, target_id, max_hops), get_containment_route_statuses(alert_id).
50%UnverifiedBlastShield separates 'proposed actions' from 'executed actions' and sets up three layers of boundaries: the decision service only provides read-only tools to obtain response candidates; the FastAPI controller requires explicit confirmation and limits the number of actions per run; and an independent action service holds the only mutation capability and performs at most one allowlisted write against the synthetic graph.
50%UnverifiedIn the BH-CONTAINMENT-4001 scenario, the seed model has two independent paths, and the controller re-queries FalkorDB after each action, with the expected sequence being: block the primary path, re-query and discover the alternate path, block the alternate path, and query again to confirm no qualifying paths remain.
50%UnverifiedBlastShield's latest backend test run reports 32 passed and 6 skipped, with the 6 skipped being real FalkorDB tests that require explicit enabling.
50%UnverifiedBlastShield does not integrate native graph algorithms, and the shortest-path tool uses bounded Cypher traversal rather than algo.SPpaths; it has no persistent graph memory, and the containment audit history is stored in process memory and cleared on API restart; it uses only synthetic data and does not connect to any cloud account.
50%UnverifiedAll of BlastShield's data is synthetic and does not connect to real cloud accounts, identity providers, or production telemetry; a path represents reachability in the model and does not mean the real environment has been exploited; and the absence of a qualifying path in the graph does not prove the real environment is safe.
50%UnverifiedWhen the action response lacks an after object, the controller must obtain a standard investigation from FalkorDB to avoid making the next decision based on stale evidence.
50%