Knowledge graph 與分析
說明 knowledge graph 如何連結主機、服務、弱點與存取權限,其兩個後端,以及由此建構的 attack chain 儀表板。
PostgreSQL 記錄回答的是指令輸出了什麼。Knowledge graphknowledge graph — 知識圖譜當啟用此選用功能時,PentAGI 在測試期間建立的主機、服務、弱點及其之間存取關係的圖譜。它顯示發現項目之間的關聯。 回答的是兩項 findingsfinding — 發現項目測試期間發現並記錄的內容,例如主機、運行中的服務或弱點。 如何關聯——哪台主機執行哪項服務,哪個弱點導致了哪次存取。
兩種後端
| graphstore | graphiti | |
|---|---|---|
| 執行方式 | 在後端,圖形儲存於 Neo4j | 在 Neo4j 上的獨立服務 |
| 啟用方式 | GRAPHSTORE_ | GRAPHITI_ + GRAPHITI_ |
| Agentagent — 代理PentAGI 的 AI 代理:擁有專屬提示詞、設定與工具的模型,在流程中執行特定類型的工作,例如測試、撰寫程式碼或搜尋網路。 tooltool — 工具代理執行操作所用的手段:終端機、隔離瀏覽器或網路搜尋等內建功能,或沙盒中的程式,例如 nmap、metasploit 或 sqlmap。 | graphstore_ | graphiti_ |
| 狀態 | graphiti 的後繼者 | 舊版,保留以供比較 |
兩者皆限定於單一 flowflow — 流程PentAGI 的一次執行:一個目標、從您的訊息建立的任務,以及代理在此過程中執行的所有操作。:每次讀取都會依其進行篩選,因此一個 flow 絕不會看到另一個 flow 的圖譜。
這兩個後端預設皆為關閉。啟用 GRAPHSTORE_ 時,圖形儲存庫需要 GRAPHSTORE_ 和 GRAPHSTORE_,若缺少這些項目,PentAGI 將無法啟動。
若同時啟用 Graphiti,這兩個後端儲存資產的方式不同,因此當兩者在同一台伺服器上寫入同名資料庫,或在任何伺服器上而 Graphiti 的 NEO4J_ 未設定時,PentAGI 會拒絕啟動,除非 GRAPHSTORE_。內建的 Neo4j 為 Community 版本,僅供 neo4j 資料庫使用:若兩個後端都使用它,請保留 neo4j 並允許共用,但這會犧牲圖形品質,因為連接埠和服務會被儲存兩次,且某些 Graphiti 寫入可能會被拒絕。若要將圖形分開,請為 graphstore 提供專屬的 Neo4j 伺服器,或在 Neo4j Enterprise 上使用專屬的資料庫:若 graphstore 的 Neo4j 帳號具備建立資料庫的權限,PentAGI 會在缺少時自動建立該資料庫;否則請事先建立。
Attack chain 儀表板

啟用 knowledge graph 後,flow 的 Dashboard → Analytics 索引標籤會隨著圖譜增長即時呈現:
- Main Attack Chain — 主機、連接埠、服務、弱點、已確認的存取與帳號。
- Action Chain、Infrastructure、Access Chain 與 Priv Esc Chain 檢視。
- 時間軸拖曳條,可重播圖譜的演變過程,並提供開放連接埠、偵測到的 CVE 與憑證狀態等表格。


最後更新於