跳到正文
DEV Community· Jayanth A Nandeesh·· 3 小時前AI 評分44

Stratum:基於圖譜的 AI 資安分流智能體

Stratum - AI Security Triage Agent (Graph Based)

AI 導讀

Stratum 以圖譜追蹤通往受保護系統的攻擊路徑,並按可關閉最多路徑的修正方案規劃修補次序。內置示範網絡中,通往資料庫的 3 條開放路徑經依次套用 2 項修正後降至 0 條;系統只建議及模擬修正,不會更改真實系統。NVIDIA Nemotron 透過 function calling 選擇工具,並根據結果生成修正計劃。

正文

Stratum: the agent that finds the route, closes it, and proves it
By Jayanth A. Nandeesh · Graph Hacks: Context for AI Agents · Track 1, Agents That Act on Connected Data
Live demo:https://youtu.be/D3IKoDoqZ5E?si=-9a6xfg--ZWIJjsL
GitHub:
https://github.com/jayanthh1524/attackpath

The problem:
Attackers rarely break straight into the thing that matters. They get into something small, like a mailbox, a laptop or a website plugin, and then move through whatever it is connected to until they reach the data. Security people call each of those journeys an attack path.

Most security reports list weaknesses one by one with a severity score. That says what is weak, not what matters. A medium problem on a laptop that has a route to your customer database can matter more than a critical problem on a machine that leads nowhere.

Why a graph?
The question 'can an attacker get from the Internet to my customer data, and through which computers?' is a path question. In a table you would join the connections to themselves once for every hop. In a graph the connections are the data, and a path query just follows them. In FalkorDB:

MATCH p = (:Internet)-[:EXPOSES|CONNECTS_TO*1..6]->(t:Asset {name: $target})
RETURN [n IN nodes(p) | n.name] AS route
One query returns every route up to six hops, and the answer is its own explanation: the route is the evidence. That is why Stratum uses a graph. Without the connections it has nothing to reason about, and every decision it makes can point to the exact path behind it.
How Stratum works
The graph has five kinds of nodes: Internet, Asset (a computer, account or system), Vulnerability, Fix and Decision. Relationships say what is exposed to the Internet, what connects to what, which asset has which weakness, and which fix removes which weakness.
A route counts as open only if every computer on the way has an unfixed weakness, because an attacker needs a foothold to pass through. So fixing one weakness can close every route that goes through that computer.
The agent has two tools:
• investigate finds the open routes to the systems you want to protect, counts how many routes pass through each computer (the chokepoints), and compares every available fix.
• remediate builds a fix plan: apply the fix that closes the most routes, recount, and repeat until no route is left. Each applied fix is written back into the graph as a Decision node with its reason.
In the built-in demo network, the agent starts with three open routes to the database and ends with none, after applying two fixes in order.
Where the AI fits
NVIDIA Nemotron chooses which tool to call through function calling, and turns the results into a plain-English plan: the routes before, the fixes in order and why, and the routes after. It never sees the network itself, only what the tools return, so it cannot invent a route or a fix. The graph supplies the facts, and the model supplies the judgment and the explanation.
Tool selection through MCP
The same analysis is also published as an MCP server with three tools. A second agent connects to it, discovers the tools through the protocol, and lets Nemotron choose which ones to call.
Try it on your own network
The app has two tabs. The guided demo uses a simulated network. The second tab lets you upload a CSV with three kinds of rows (exposed, connection, weakness), pick the valuable systems to protect, run the agent, and download a report. There is a template and two sample networks, a solo founder and a small office. Uploads are analyzed in a private temporary graph, with limits of 25 computers and 60 connections, and I ask people not to upload sensitive data to the public demo.
Honest limits
• The demo network is simulated, and Stratum only recommends and simulates fixes. It never changes a real system.
• The fix plan is a greedy algorithm, so it is not guaranteed to be the cheapest possible plan.
• Routes are searched up to six hops.
• It does not yet remember earlier sessions.
• I used an AI assistant to help write parts of the code. The idea, the design choices, the testing and the deployment are mine, and I can explain every file.
What I learned
I am a first-year engineering student and this was my first graph project. The biggest lesson was that the hard part is not the code, it is modelling the problem: once the computers, connections and weaknesses were a graph, the rest was short queries. Next I want to weigh fixes by effort and downtime, and use FalkorDB's PageRank to rank the most valuable targets.

來源:DEV Community · dev.to