# Knowledge graph 與分析

> 說明 knowledge graph 如何連結主機、服務、弱點與存取權限，其兩個後端，以及由此建構的 attack chain 儀表板。

PostgreSQL 記錄回答的是*指令輸出了什麼*。[Knowledge graph](https://pentagi.com/zh-tw/docs/glossary/#knowledge-graph) 回答的是*兩項 [findings](https://pentagi.com/zh-tw/docs/glossary/#finding) 如何關聯*——哪台主機執行哪項服務，哪個弱點導致了哪次存取。

## [兩種後端](https://pentagi.com/zh-tw/docs/enterprise/knowledge-graph/#two-backends)

|                                                             | graphstore                  | graphiti                            |
| ----------------------------------------------------------- | --------------------------- | ----------------------------------- |
| 執行方式                                                        | 在後端，圖形儲存於 Neo4j             | 在 Neo4j 上的獨立服務                      |
| 啟用方式                                                        | `GRAPHSTORE_INGEST_ENABLED` | `GRAPHITI_ENABLED` + `GRAPHITI_URL` |
| [Agent](https://pentagi.com/zh-tw/docs/glossary/#agent) [tool](https://pentagi.com/zh-tw/docs/glossary/#tool) | `graphstore_search`         | `graphiti_search`                   |
| 狀態                                                          | graphiti 的後繼者               | 舊版，保留以供比較                           |

兩者皆限定於單一 [flow](https://pentagi.com/zh-tw/docs/glossary/#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 寫入可能會被拒絕。若要將圖形分開，請為 graphstore 提供專屬的 Neo4j 伺服器，或在 Neo4j Enterprise 上使用專屬的資料庫：若 graphstore 的 Neo4j 帳號具備建立資料庫的權限，PentAGI 會在缺少時自動建立該資料庫；否則請事先建立。

## [Attack chain 儀表板](https://pentagi.com/zh-tw/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 與憑證狀態等表格。

![Access chain 檢視](https://pentagi.com/images/product/access-chain.webp)

![攻擊面與已確認存取摘要](https://pentagi.com/images/product/analytics-stats.webp)