Knowledge graph 与分析
Knowledge graph 如何关联主机、服务、漏洞和访问权限,其两个后端,以及基于它构建的 attack-chain 仪表板。
PostgreSQL 中的记录回答了命令输出了什么。Knowledge graphknowledge graph — 知识图谱启用此可选功能后,PentAGI 在测试期间构建的主机、服务、漏洞及其之间访问关系的图谱。它展示了发现项之间的关联。 则回答了两个 findingsfinding — 发现项测试中发现并记录的内容,例如主机、正在运行的服务或漏洞。 之间如何关联——哪台主机运行哪项服务,哪个漏洞导致了哪种访问权限。
两种后端
| graphstore | graphiti | |
|---|---|---|
| 运行方式 | 在后端,图存储在 Neo4j 中 | Neo4j 上的独立服务 |
| 启用方式 | GRAPHSTORE_ | GRAPHITI_ + GRAPHITI_ |
| Agentagent — 智能体PentAGI 的智能体:一种拥有独立提示词、设置和工具的人工智能模型,在流程中执行特定类型的工作,例如测试、编写代码或搜索网络。 tooltool — 工具智能体执行操作所用的手段:终端、隔离浏览器或网络搜索等内置功能,或沙箱中的程序,例如 nmap、metasploit 或 sqlmap。 | graphstore_ | graphiti_ |
| 状态 | graphiti 的继任者 | 旧版,保留用于对比 |
两者的作用域均限定于单个 flowflow — 流程PentAGI 的一次运行:一个目标、根据您的消息创建的任务,以及智能体在此过程中执行的所有操作。:每次读取都会按 flow 进行过滤,因此一个 flow 绝不会看到另一个 flow 的图谱。
这两个后端默认均处于关闭状态。启用 GRAPHSTORE_ 时,图存储还需要 GRAPHSTORE_ 和 GRAPHSTORE_,否则 PentAGI 无法启动。
如果同时启用了 Graphiti,这两个后端存储资产的方式不同,因此当两者在同一服务器上写入同名数据库,或者在 Graphiti 的 NEO4J_ 未设置的情况下在任何服务器上写入时,PentAGI 将拒绝启动,除非 GRAPHSTORE_。内置的 Neo4j 是 Community 版本,仅服务于 neo4j 数据库:若两个后端都使用它,请保留 neo4j 并允许共享,但这会以降低知识图谱质量为代价,因为端口和服务会被存储两次,且某些 Graphiti 写入可能会被拒绝。为了保持知识图谱分离,请为图存储分配独立的 Neo4j 服务器,或在 Neo4j Enterprise 上为其分配独立的数据库:如果图存储的 Neo4j 账户有权创建数据库,PentAGI 会在数据库缺失时自动创建;否则请预先创建该数据库。
Attack chain 仪表板

启用 knowledge graph 后,flow 的 Dashboard → Analytics 选项卡会实时渲染不断扩展的图谱:
- Main Attack Chain —— 主机、端口、服务、漏洞、已确认的访问权限和账户。
- Action Chain、Infrastructure、Access Chain 和 Priv Esc Chain 视图。
- 时间轴滑块,用于回放态势演变过程,以及开放端口、检测到的 CVE 和凭证状态的列表。


最后更新于