1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

機密データをクラウドに出せない閉域LAN想定で、ローカルLLMにIT機器の脆弱性を発見させてみた(GPU不要・CPUオンプレ稼働の自宅ラボPoC)

1
Last updated at Posted at 2026-10-15

💡 【検証環境・個人研究(PoC)に関する注記】
本記事は、筆者個人の自宅検証環境(ホームラボ/仮想環境)において、公開情報およびOSS(オープンソースソフトウェア)を用いて独自に構築・検証した個人研究(PoC)の記録です。特定の企業・団体の実環境や業務上の非公開情報とは一切関係ありません。

はじめに:社内インフラのデータを「ChatGPT」に投げるわけにはいかない

第1弾〜第3弾では、自宅検証ラボ(閉域LAN想定)においてエージェントレスで端末を自動検出し、手動パッチの誤検知を消して、Snipe-ITに台帳化する仕組みを紹介しました。

台帳とスキャン結果が揃ってくると、次に湧き上がる欲求があります。

「この大量のスキャンログや機器情報から、人間の代わりにAIが『この機器、ここが危ないですよ』と自動で教えてくれないだろうか?」

しかし、情シスやセキュリティ担当者には絶対に越えてはならない壁があります。

  • 社内サーバーのIPアドレス、OS詳細、開放ポート、ユーザーアカウント情報……
  • これらを ChatGPT や Claude などの外部クラウドAIに投げるのは、セキュリティポリシー上 100% アウト(情報漏洩) です。

「AIの恩恵を受けたい。でも機密データは社内LANから1バイトも外に出せない」

このジレンマを突破するために、「オフィス内の余剰サーバー(CPUのみ)で動くローカル小型LLM(Ollama / Qwen2.5)を立ち上げ、スキャンログから未知の脆弱性や設定不備を完全オンプレミスで自律要約させる仕組み」 を実験(PoC)しました。


設計思想:なぜ「巨大モデル」ではなく「小型LLM」なのか?

「ローカルでLLMを動かす」と聞くと、数百万円するGPUサーバー(NVIDIA H100やA100)が必要だと思うかもしれません。
しかし、社内のIT機器診断にそんな怪物スペックは不要です。

  • モデル選定: Qwen2.5:1.5b または Qwen2.5:3b(超軽量・高推論性能)
  • 動作環境: 一般的なPCや既存サーバーの CPUのみ(4コア / メモリ8GB〜16GB)
  • 推論速度: CPU動作でも秒間 15〜25 トークン(十分実用的)

高価なGPU調達の稟議を通す必要はありません。オフィスの片隅にある普通のLinux機で即座に動きます。


何をやらせたのか?(LLMの得意領域に絞る)

ルールベースのプログラム(Python)と、LLM(自然言語モデル)には明確な役割分担をさせました。

  1. 確定事実(OSやポート)はPython側でバリデーション:
    「Windows 11のビルド22631」のような確定事実をLLMに推測させるとハルシネーション(嘘)の原因になります。ここはPythonで固定。
  2. 「非構造化テキストの解釈」をLLMに任せる:
    「怪しいバナー情報が出ているが、これ何の機器?」「平文Telnetが開いているが、利用者にどう注意喚起すればいい?」といった自然言語のコンテキスト処理をLLMに任せます。

実装コード:Ollama × Python による安全なローカル推論

Ollama(ローカルLLM実行基盤)に対し、Pythonから外部通信なしのローカルループバック(http://localhost:11434)経由でJSON形式の推論を要求します。

アーキテクチャ詳細、処理フロー図、中核ロジックのコード抜粋(PoC)、およびパラメータ解説・トラブルシューティング手順は、GitHubリポジトリ(詳細技術リファレンス)にて管理・随時アップデートしています。
設計の全体像や要点スニペットの確認は以下のリンクをご参照ください。

👉 GitHubで詳細技術リファレンス・処理フローを見る (QIITA_ARTICLE_DETAIL_4.md)


実際の発見事例:オフィスLANに潜んでいた「魔境」

実際に社内LANを診断させた際、ローカルLLMが叩き出した生々しいレポートの実例です。

事例 1:給湯室の横に放置されていた「謎のネットワークカメラ」

  • スキャン結果: Port 80 (HTTP), 554 (RTSP) 開放。バナーに古いBusyBoxの文字列。
  • ローカルLLMの診断レポート:

    【機器判定】: 汎用IPネットワークカメラ(初期型ファームウェア)
    【危険度】: 🚨 高(CRITICAL)
    【理由】: 暗号化されていないRTSP(映像ストリーミング)がLAN内に垂れ流しになっており、初期パスワード(admin/admin等)のまま放置されている可能性が極めて高いです。社内の盗撮や踏み台攻撃に悪用される恐れがあります。
    【是正案内文】:
    「総務・管理担当者様:給湯室付近のIPカメラ(192.168.1.88)において、パスワードの即時変更およびファームウェア更新が必要です。不要であれば速やかにLANから抜去してください。」

事例 2:誰も把握していなかった「Windows 10 EoL放置機」

  • スキャン結果: Windows 10 Pro (Build 19045)。WinRM経由で特定。
  • ローカルLLMの診断レポート:

    【危険度】: ⚠️ 中(要リプレース)
    【理由】: Windows 10は2025年10月にマイクロソフトの公式サポートが終了しています。セキュリティパッチが今後配信されないため、未知のゼロデイ攻撃に対して無防備になります。
    【是正案内文】:
    「PC利用者様:ご利用中のPC(Windows 10)はサポート期限を迎えています。情シスにてWindows 11後継機への移行手続きを行ってください。」


やってみて分かったこと(学びと教訓)

  1. 「情シスが文章を書く時間」が激減した:
    CVEの番号(CVE-2024-XXXX)を見せられても、一般社員や総務には1ミリも通じません。ローカルLLMが**「相手に伝わる日本語の注意喚起文」をその場で生成してくれる**ため、情シスのコミュニケーションコストが劇的に下がりました。
  2. CPUだけで余裕で実用レベル:
    qwen2.5:1.5b クラスの最新小型モデルであれば、一般的なCore i5や余りサーバーのCPUでも3〜5秒で綺麗な診断JSONが返ってきます。GPUは本当に不要でした。
  3. 完全社内完結の絶大な安心感:
    どんな生々しい社内IPやホスト名が含まれていても、パケットは社内LANの物理回線から1ミリも外に出ていません。 セキュリティポリシーを一切犯さずに最先端AIを使える爽快感があります。

おわりに:AIはクラウドに投げるだけが能じゃない

世の中のAIブームは「クラウドAPIを呼ぶ」方向へ進んでいますが、企業の現場で本当に価値があるコアデータ(インフラ構成、資産情報、セキュリティログ)は、すべてクラウドに出せない機密です。

だからこそ、

  • エージェントレスで泥臭く社内データを集める(第1〜3弾)
  • 完全オンプレミスの小型LLMで社内だけで知性化する(第4弾)

というアーキテクチャこそが、現場のインフラエンジニアがこれから目指すべき「真のエンタープライズAI運用」だと確信しています。

本PoCで使用したローカルLLM連携コードのベースは、GitHubにオープンソースとして公開しています。
GitHub: ojisan-arsenal

「うちの社内LANでも完全ローカルでAI診断を試してみたい」「Ollamaと社内ツールの連携で相談したい」という方は、ぜひコメントやDMでお気軽に声をかけてください!


📚 さらに詳しい本番実装・トラブルシューティングについて

本記事は現場運用のエッセンスを凝縮したサマリー版です。
本番導入に向けた 「深層メカニズム解説」「完全パラメータ表」「現場アンチパターン」「トラブルシューティング対応表」「運用チェックリスト」 は、以下のGitHub完全技術リファレンスにて全網羅して公開しています。

👉 【第4弾 詳細技術リファレンス】

⭐ 全14層・200パターンの自立型インフラ&オンプレAIリファレンスを順次公開予定です。役に立った・面白かったと感じていただけましたら、ぜひリポジトリへの Star (★) をお願いいたします!
👉 GitHub リポジトリ: ojisan-arsenal

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?