Eidolon — AIエージェントで解析するネットワークスキャナ

Security

概要

Eidolonはネットワーク資産の発見・可視化・自動操作を統合するツールです。nmapで取得したスキャン結果をNeo4jのグラフ構造に取り込み、ホスト・サービス・関係性を直感的に表現します。さらに大規模言語モデル(LLM)を用いたエージェントが自然言語の指示を解析して行動計画を作成し、ユーザーの承認を得て実行します。実行アクションや決定はすべてログに残され、監査と説明可能性に配慮した設計を想定しています。Dockerを利用したコンテナ化や環境変数管理のためのテンプレートも用意されています。

GitHub

リポジトリの統計情報

  • スター数: 2
  • フォーク数: 0
  • ウォッチャー数: 2
  • コミット数: 2
  • ファイル数: 10
  • メインの言語: Python

主な特徴

  • nmapによる自動ネットワークスキャンと結果のパース・格納
  • Neo4jを用いたグラフ表現でインフラの関係性を可視化
  • LLMエージェントによる自然言語の照会・自動化プラン生成
  • 実行アクションは承認ワークフローを経て記録、監査可能

技術的なポイント

Eidolonは「検出(Discovery)」「表現(Graph modeling)」「自動化(AIエージェント)」を明確に分離したアーキテクチャを想定しています。まずnmapを用いたスキャンによりホスト、ポート、サービス情報を取得し、これをNeo4jのノード・リレーションとしてインポートすることで、ホスト間の通信関係やサービス依存をクエリ可能なグラフに変換します。Neo4jを選択することで、Cypherによる複雑なパターン照会や経路探索が容易になり、可視化や横断的なリスク分析が捗ります。

AI側はLLMを用いたエージェントフレームワークを活用し、自然言語での問い合わせから実行計画(例: 優先スキャン、脆弱性検証、アクセス制御の変更)を生成します。重要なのは「ヒューマン承認の挟み込み」と「操作の監査ログ化」で、危険な自動化による誤操作リスクを低減します。実装面ではPythonで統一され、Dockerfileや.env.exampleが含まれるため、コンテナ化してNeo4jやLLM接続(APIキーや接続先)は環境変数で安全に管理することが想定されています。

セキュリティ上の留意点としては、LLMに渡すデータの機密性、Neo4jの認証・アクセス制御、ネットワークスキャンが引き起こすトラフィックの影響、そして自動実行されるコマンドの権限管理が挙げられます。実運用では専用の検査ネットワークや限定的な権限、操作の最小権限原則、詳細な監査ログとアラート設定が推奨されます。

プロジェクトの構成

主要なファイルとディレクトリ:

  • .dockerignore: file
  • .env.example: file
  • .gitignore: file
  • Dockerfile: file
  • LICENSE.txt: file

…他 5 ファイル

この構成から、Dockerベースでのデプロイを想定し、環境ごとの設定を.envで切り替える設計が見て取れます。Python製のコアロジック、Neo4j接続用コード、nmap出力のパース、LLMエージェントのインターフェース、ログ/監査保存用の仕組みが主要な関心点です。

まとめ

AIでの解析と承認付き自動化を組み合わせたネットワーク可視化・運用ツール。導入は慎重な権限・ログ管理が必須。

リポジトリ情報:

READMEの抜粋:

Eidolon

Network scanner with AI-powered analysis and automation. Scans your infrastructure with nmap, stores it in a graph database (Neo4j), and lets you query and operate on it using natural language. LLM agents generate plans, execute approved actions, and log everything for audit.

eido-demo

Features

  • Network scanning: Automated nmap scans build a real-ti…