跳至主要內容
PentAGI
Enterprise

Knowledge graph 與分析

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

PostgreSQL 記錄回答的是指令輸出了什麼。Knowledge graph 回答的是兩項 findings 如何關聯——哪台主機執行哪項服務,哪個弱點導致了哪次存取。

兩種後端

graphstoregraphiti
執行方式在後端,圖形儲存於 Neo4j在 Neo4j 上的獨立服務
啟用方式GRAPHSTORE_INGEST_ENABLEDGRAPHITI_ENABLED + GRAPHITI_URL
Agent toolgraphstore_searchgraphiti_search
狀態graphiti 的後繼者舊版,保留以供比較

兩者皆限定於單一 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 儀表板

主要 attack chain:主機、連接埠、服務、弱點、已確認的存取與帳號

啟用 knowledge graph 後,flow 的 Dashboard → Analytics 索引標籤會隨著圖譜增長即時呈現:

  • Main Attack Chain — 主機、連接埠、服務、弱點、已確認的存取與帳號。
  • Action Chain、Infrastructure、Access Chain 與 Priv Esc Chain 檢視。
  • 時間軸拖曳條,可重播圖譜的演變過程,並提供開放連接埠、偵測到的 CVE 與憑證狀態等表格。

Access chain 檢視

攻擊面與已確認存取摘要

最後更新於