
エアギャップペンテスト向けオフラインAIセキュリティアシスタント
オフラインで動作するペネトレーションテスト用AIアシスタント。ツールの出力結果を貼り付け、平易な日本語で質問すれば、実際のデータに基づいた回答が得られます。インターネット接続不要、APIキー不要、データがマシン外に出ることはありません。
CPU上で完全に動作。標準的なラップトップハードウェアでテスト済み。
テスト環境: AMD Ryzen AI 9 365、24GB RAM。この環境でのクエリ時間は2〜5秒。16GBでも動作しますが、事前に他のアプリケーションをすべて閉じてください。
git clone https://github.com/Sydsec/syd
cd syd
python setup.py
python syd.py
セットアップでモデル(約9.7GB)と埋め込みモデル(約90MB)が自動的にダウンロードされます。HuggingFaceアカウントは不要です。回線速度にもよりますが、20〜30分かかります。完了後はすべて完全オフラインで動作します。
llama-cpp-pythonのインストールでエラーが発生する場合、setup.pyの前に次のコマンドを手動で実行してください:
pip install llama-cpp-python==0.3.16 --force-reinstall --no-cache-dir --config-settings="cmake.args=-DGGML_AVX2=OFF;-DGGML_AVX=OFF;-DGGML_F16C=OFF;-DGGML_FMA=OFF"
これは一部のWindows環境で既知の互換性問題です。cmakeフラグでAVX2を無効にすることで、特定のCPUでのクラッシュを防ぎます。
3段階のプロセスです。まず、スキャンファイルを決定論的に解析 — AIは使わず、純粋な正規表現と構造化パーサーを用いるため、データ抽出は常に正確です。次に、ローカルのFAISSインデックスから関連するテクニックのドキュメントを取得します。最後に、Qwen 2.5 14Bが検証済みの事実だけを用いて回答を生成します。
回答はさらに、実際のスキャンデータと照合して検証されます。モデルがデータに存在しないIP、プロセス、ホスト名を参照した場合、その回答はブロックされ再生成されます。これにより幻覚(ハルシネーション)を防ぎます。
該当するタブにファイルを読み込むか、出力を貼り付けます。「Analyse」をクリック。解析が完了したら、「Ask Syd」ボックスに質問を入力します。
うまく機能する例:
Nmap: 「SMB署名が無効なホストはどれですか?」 / 「全ての非標準ポートのサービスを表示」 / 「10.0.0.15の攻撃対象領域は?」
BloodHound: 「ドメイン管理者への最短パスは?」 / 「Kerberoast可能なユーザーは?」 / 「制約のない委任が設定された全コンピュータを表示」
Volatility: 「最も不審なプロセスは?」 / 「インジェクションされたプロセスはありますか?」 / 「全ての外部ネットワーク接続を一覧表示」
「Model not found」 — setup.pyが完了していません。モデルが rag_engine/models/qwen2.5-14b-instruct-q5_k_m.gguf に存在し、サイズが約9.7GBあるか確認してください。小さい場合はダウンロードが中断されています。削除してsetup.pyを再実行してください。
メモリ不足 — ブラウザやメモリを消費する他のアプリケーションを閉じてください。16GBでは厳しく、24GBで快適に動作します。
初回起動が遅い — 想定内です。モデルの読み込みに10〜20秒かかります。以降のクエリは2〜5秒です。
FAISSエラー — インデックスはリポジトリに同梱されています。欠落または破損している場合は、python build_all_databases.py を実行してください。
エンタープライズ版は、このリポジトリのすべての機能に加えて、MetasploitおよびSliver C2の分析を追加します。
レッドチームの演習を実施している場合、NDAや顧客データのため、セッション出力をChatGPTに貼り付けることができないという問題をよくご存知でしょう。エンタープライズ版は、MSFセッションやSliverビーコンに対して、完全オフラインで同じAI分析を提供します。何が起こったか、次にどこへピボットすべきか、認証情報がコンテキスト内で何を意味するかを質問できます。
お問い合わせ: [email protected] または https://sydsec.co.uk
チュートリアルとウォークスルーはYouTubeで公開: https://www.youtube.com/@paularmstrong8306
実際のペンテストデータを使用したワークフローを紹介しているので、導入前に視聴することをおすすめします。
Qwen 2.5 14B Instruct、Q5_K_M量子化。Temperature 0.05〜0.1で回答を簡潔に保持。Repeat penalty 2.8〜3.2。コンテキストウィンドウ8192トークン。
埋め込み: all-MiniLM-L6-v2。ベクトルストア: FAISS(IndexFlatIP、コサイン類似度)。
Paul Armstrong — https://sydsec.co.uk — YouTube: https://www.youtube.com/@paularmstrong8306