# Knowledge graph 与分析

> Knowledge graph 如何关联主机、服务、漏洞和访问权限，其两个后端，以及基于它构建的 attack-chain 仪表板。

PostgreSQL 中的记录回答了*命令输出了什么*。[Knowledge graph](https://pentagi.com/zh-cn/docs/glossary/#knowledge-graph) 则回答了*两个 [findings](https://pentagi.com/zh-cn/docs/glossary/#finding) 之间如何关联*——哪台主机运行哪项服务，哪个漏洞导致了哪种访问权限。

## [两种后端](https://pentagi.com/zh-cn/docs/enterprise/knowledge-graph/#two-backends)

|                                                             | graphstore                  | graphiti                            |
| ----------------------------------------------------------- | --------------------------- | ----------------------------------- |
| 运行方式                                                        | 在后端，图存储在 Neo4j 中            | Neo4j 上的独立服务                        |
| 启用方式                                                        | `GRAPHSTORE_INGEST_ENABLED` | `GRAPHITI_ENABLED` + `GRAPHITI_URL` |
| [Agent](https://pentagi.com/zh-cn/docs/glossary/#agent) [tool](https://pentagi.com/zh-cn/docs/glossary/#tool) | `graphstore_search`         | `graphiti_search`                   |
| 状态                                                          | graphiti 的继任者               | 旧版，保留用于对比                           |

两者的作用域均限定于单个 [flow](https://pentagi.com/zh-cn/docs/glossary/#flow)：每次读取都会按 flow 进行过滤，因此一个 flow 绝不会看到另一个 flow 的图谱。

这两个后端默认均处于关闭状态。启用 `GRAPHSTORE_INGEST_ENABLED=true` 时，图存储还需要 `GRAPHSTORE_NEO4J_URI` 和 `GRAPHSTORE_NEO4J_DATABASE`，否则 PentAGI 无法启动。

如果同时启用了 Graphiti，这两个后端存储资产的方式不同，因此当两者在同一服务器上写入同名数据库，或者在 Graphiti 的 `NEO4J_URI` 未设置的情况下在任何服务器上写入时，PentAGI 将拒绝启动，除非 `GRAPHSTORE_ALLOW_SHARED_NEO4J_DATABASE=true`。内置的 Neo4j 是 Community 版本，仅服务于 `neo4j` 数据库：若两个后端都使用它，请保留 `neo4j` 并允许共享，但这会以降低知识图谱质量为代价，因为端口和服务会被存储两次，且某些 Graphiti 写入可能会被拒绝。为了保持知识图谱分离，请为图存储分配独立的 Neo4j 服务器，或在 Neo4j Enterprise 上为其分配独立的数据库：如果图存储的 Neo4j 账户有权创建数据库，PentAGI 会在数据库缺失时自动创建；否则请预先创建该数据库。

## [Attack chain 仪表板](https://pentagi.com/zh-cn/docs/enterprise/knowledge-graph/#attack-chain-dashboard)

![主 attack chain：主机、端口、服务、漏洞、已确认的访问权限和账户](https://pentagi.com/images/product/attack-chain.webp)

启用 knowledge graph 后，flow 的 **Dashboard → Analytics** 选项卡会实时渲染不断扩展的图谱：

* **Main Attack Chain** —— 主机、端口、服务、漏洞、已确认的访问权限和账户。
* **Action Chain**、**Infrastructure**、**Access Chain** 和 **Priv Esc Chain** 视图。
* 时间轴滑块，用于回放态势演变过程，以及开放端口、检测到的 CVE 和凭证状态的列表。

![访问链视图](https://pentagi.com/images/product/access-chain.webp)

![攻击面与已确认访问权限摘要](https://pentagi.com/images/product/analytics-stats.webp)