Knowledge graphと分析
Knowledge graph がホスト、サービス、脆弱性、アクセスをどのように結びつけるか、その2つのバックエンド、およびそこから構築された attack-chain ダッシュボードについて説明します。
PostgreSQL のレコードは コマンドの出力内容 を示しますが、knowledge graphknowledge graph — ナレッジグラフこのオプション機能を有効にした場合、テスト中に PentAGI が構築するホスト、サービス、脆弱性、およびそれらの間のアクセスのグラフです。発見事項の関連性を示します。 は 2つの findingsfinding — 発見事項テストによって発見・記録された事項(ホスト、稼働中のサービス、脆弱性など)です。 がどのように関連しているか — どのホストがどのサービスを実行しているか、どの脆弱性がどのアクセスにつながったか — を明らかにします。
2つのバックエンド
| graphstore | graphiti | |
|---|---|---|
| 実行形態 | バックエンド内、Neo4j のグラフ | Neo4j 上の独立したサービス |
| 有効化方法 | GRAPHSTORE_ | GRAPHITI_ + GRAPHITI_ |
| Agentagent — エージェントPentAGI の AI エージェント: 独自のプロンプト、設定、ツールを持ち、フロー内でテスト、コード作成、ウェブ検索など特定の種類の作業を行うモデルです。 tooltool — ツールエージェントが作業に使うもの。ターミナル、分離されたブラウザー、ウェブ検索などの組み込み機能や、nmap、metasploit、sqlmap などサンドボックス内のプログラムです。 | graphstore_ | graphiti_ |
| ステータス | Graphiti の後継 | レガシー、比較用に維持 |
どちらも単一の flowflow — フローPentAGI の1回のフロー:目標、メッセージから作成されたタスク、およびエージェントが実行したすべての作業。 に限定されます。すべての読み取りは flow ごとにフィルタリングされるため、ある flow が別の flow のグラフを参照することはありません。
両方のバックエンドはデフォルトで無効になっています。GRAPHSTORE_ を使用する場合、グラフストアには GRAPHSTORE_ と GRAPHSTORE_ が必要であり、これらがなければ PentAGI は起動しません。
Graphiti も有効にすると、2つのバックエンドはアセットを異なる方法で保存するため、両方が1台のサーバー上で同じ名前のデータベースに書き込む場合、または 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、認証情報の状態を示すテーブル。


最終更新日