ノーガードOllama、ハッカーに何分で見つかる?
Shodanで判明した「野ざらしローカルAI」の実態 ── あなたのGPUが標的になっている
📋 目次
🤖 Ollamaを「ノーガード」で公開するとは?
まずOllamaの仕組みと、「外部公開」が何を意味するかを理解しよう
Ollamaって何?知らない人向けの超入門
Ollama(オラマ)とは、LlamaやMistral、Gemmaなどの大規模言語モデル(LLM)を、自分のパソコン上でローカル実行できるツールです。クラウドにデータを送らず、自宅のGPUでAIが動く──そんな夢のような環境を、コマンド一発で構築できます。
🔧 Ollamaの通常の動作イメージ
Ollamaはデフォルトでは localhost (自分のPC内部)のみで動作します。しかし設定を変えて 0.0.0.0 でバインドしたり、ファイアウォールのポートを開放したりすると、インターネット全体からポート 11434 にアクセスできてしまいます。認証は一切ありません。
Ollamaにはデフォルトで認証機能がありません。外部に公開した瞬間、世界中の誰でもあなたのAIモデルにアクセスし、無制限にAPIを叩くことができます。パスワードもトークンも不要です。
「でも、自分はそんな設定してないよ?」という方もご安心を……いや、むしろご心配を。Docker Composeの設定ミス、リバースプロキシの設定漏れ、クラウドサーバーへのデプロイ時の誤設定など、意図せず公開してしまうケースが非常に多いのです。
🌍 Shodanで見る世界の実態:19,809台が野ざらし
「インターネットの検索エンジン」Shodanで調べると、驚愕の数字が浮かび上がった
Shodanとは? ── ハッカーも使う「ネットの透視眼」
Shodan(ショーダン)は、インターネット上のあらゆる機器(サーバー、カメラ、IoT機器、AIサービス等)を自動的にスキャンして索引化する検索エンジンです。「ollama」と検索するだけで、世界中のノーガードOllamaインスタンスが一覧表示されます。ハッカーが標的を探すのに使うのと全く同じツールです。
📊 上位10カ国 公開Ollamaインスタンス数(Shodan調査)
| 順位 | 国 | 件数 | 全体比率 | グラフ |
|---|---|---|---|---|
| 🥇 1位 | 🇨🇳 中国(CN) | 3,553 | 17.9% | |
| 🥈 2位 | 🇩🇪 ドイツ(DE) | 3,524 | 17.8% | |
| 🥉 3位 | 🇺🇸 米国(US) | 3,261 | 16.5% | |
| 4位 | 🇫🇷 フランス(FR) | 1,411 | 7.1% | |
| 5位 | 🇭🇰 香港(HK) | 624 | 3.2% | |
| 6位 | 🇫🇮 フィンランド(FI) | 622 | 3.1% | |
| 7位 | 🇰🇷 韓国(KR) | 620 | 3.1% | |
| 8位 | 🇮🇳 インド(IN) | 532 | 2.7% | |
| 9位 | 🇬🇧 英国(GB) | 490 | 2.5% | |
| 18位 | 🇯🇵 日本(JP) | 225 | 1.1% |
※ Shodan調査時点のデータ。刻一刻と変化します。
Shodanはクロールして発見したインスタンスしか表示しません。実際にはこれ以上の「野ざらし」Ollamaが存在する可能性があります。しかもこの数字は常に変動しており、ローカルAIブームとともに増え続けています。
発見されるまで何分かかる?
セキュリティ研究者の実験によると、新たにポートを開放してインターネットに公開したサーバーは、平均数分〜数時間以内に自動スキャナーによってShodanやCensysなどのデータベースに登録されます。つまり「ちょっとだけテスト公開」という感覚は危険です。
🇯🇵 日本の現状:225台・東京が最多
「対岸の火事」ではない。日本でも225件の野ざらしOllamaが確認されている
🗾 日本の上位都市 公開Ollamaインスタンス数
| 順位 | 都市 | 件数 | 視覚化 |
|---|---|---|---|
| 🥇 1位 | 東京 | 78件 | |
| 🥈 2位 | 箕面市(大阪府) | 37件 | |
| 🥉 3位 | 印西市(千葉県) | 19件 | |
| 4位 | 大井町(東京都) | 17件 | |
| 5位 | 大阪市 | 12件 | |
| 6位 | 菅井 | 6件 | |
| 7〜8位 | 福岡市 / 神戸市 | 各4件 | |
| 11位 | 横浜市 | 3件 |
印西市・箕面市が上位に入る理由
印西市(千葉)や箕面市(大阪)は、大手クラウドプロバイダーのデータセンターが集積するエリアです。つまり多くの件数は個人のPCではなく、クラウドVMやサーバー上に展開されたOllamaが外部に公開されていると推測されます。企業・開発者が業務でデプロイした際の設定ミスが多い可能性があります。
💀 ハッカーがやること:GPU乗っ取りの全手口
ノーガードOllamaを発見した攻撃者が、次の瞬間に何をするかを解説する
「見つかった」=もう手遅れ?
Shodanに登録されるということは、自動スキャンツールを回している攻撃者グループにも同時に「発見」されているということです。次のステップは完全に自動化されており、人間が介入しなくても攻撃が進行します。
🔴 攻撃の流れ:発見から侵害まで
GPUクリプトジャッキング
攻撃タイプ:リソース搾取型
あなたのGPUを使って仮想通貨のマイニングを強制実行します。Ollamaを通じて大量の数値計算をリクエストし続けることで、GPU使用率100%・電力消費MAX・PC発熱という状態を作り出します。気づかなければ月数万円の電気代があなたに請求されます。
DDoS攻撃の踏み台
攻撃タイプ:中継・隠蔽型
あなたのIPアドレスを経由して他の組織・企業へのサイバー攻撃が行われます。攻撃元ログにはあなたのIPが残るため、あなた自身が犯人として捜査されるリスクがあります。知らぬ間に犯罪に加担させられるという最悪のシナリオです。
会話・プロンプトの盗取
攻撃タイプ:情報窃取型
Ollamaに送信した全プロンプト(質問・命令・機密文書)が第三者に傍受・記録されます。「ローカルだから安全」と信じて送った社外秘データや個人情報がダダ漏れになります。企業での業務利用なら情報漏洩インシデントに直結します。
悪意あるモデルの注入
攻撃タイプ:持続的侵害型
Ollamaの /api/pull エンドポイントを使い、バックドアや有害コンテンツ生成機能を仕込んだ偽のAIモデルをあなたの環境にインストールされます。以降、そのモデルが動くたびに攻撃者のコードが実行される、という持続的な侵害状態が続きます。
⛏ あなたのGPUが狙われる理由
なぜ「AIが動くGPU」がクリプトマイナーにとってこんなに美味しいのか?
GPUはマイニングの「金の卵」
仮想通貨のマイニング(採掘)には、大量の数値演算が必要です。CPUでも可能ですが、GPU(グラフィックカード)は並列演算能力が桁違いに高いため、マイニング効率が数十倍になります。RTX 4090やRTX 4080など、ローカルAI向けに購入した高性能GPUは、そのままマイナーにとっての超高価値ターゲットです。
💰 GPUマイニング能力の比較(Moneroコイン採掘ハッシュレートの目安)
| GPU | 主な用途 | マイニング性能(相対) | 月間推定収益(参考) |
|---|---|---|---|
| RTX 4090 | ハイエンドAI・ゲーミング | 数千〜数万円/月 | |
| RTX 4080 | 高性能AI・ゲーミング | 数千円/月 | |
| RTX 4070 | ミドルレンジAI | 数百〜数千円/月 | |
| RTX 3080 | 旧世代ハイエンド | 数百〜数千円/月 | |
| CPU (Core i9) | 汎用計算 | 数十円/月 |
※ 仮想通貨価格・難易度により大きく変動。あくまで参考値。電気代はあなたの負担です。
攻撃者はあなたのGPUでコインを採掘し、利益を得ます。一方で、電気代・GPU摩耗・PCの異常発熱はすべてあなたの負担になります。RTX 4090の消費電力は最大450Wです。フル稼働し続ければ、1ヶ月で電気代が数千円〜1万円以上増加する可能性があります。利益は攻撃者、コストは被害者という最悪の構図です。
GPU過熱・寿命短縮
長期フル稼働でGPU寿命が大幅に縮む
電気代爆増
月数千〜数万円の予期せぬ電力消費
PC動作が重くなる
GPU占有でゲーム・作業が全滅状態
帯域幅の消費
大量APIリクエストで回線速度が低下
法的リスク
攻撃踏み台化で不正アクセス加担疑惑
情報漏洩リスク
送信した全データが傍受される可能性
🎬 実際に何が起きる? 被害シナリオを追体験
「うっかり公開」から侵害に気づくまでの典型的なシナリオをリアルに描く
フィクションですが、実際に起きている話です
以下はセキュリティ研究者が報告している実際の攻撃パターンを元にした、典型的な被害シナリオです。「自分は大丈夫」と思っている方ほど読んでください。
🌅 月曜日の朝、Dockerでサクッとデプロイ
開発者Aさんは自宅サーバーにOllamaをDockerで立てた。外からもアクセスしたかったので、ポート11434をルーターで開放。「どうせ誰も知らないし」と認証設定はスキップした。
⏱ 数分後:自動スキャナーが発見
中国・ドイツ・米国のサーバーで動く自動スキャンボットがポート11434を発見。GET /api/tags でモデル一覧を取得し、「llama3:8b, mistral:7b」が稼働中と確認。ターゲットリストに追加される。
🌙 深夜:GPUが唸り始める
Aさんが就寝中、攻撃スクリプトがOllama APIに大量リクエストを開始。GPUファンが高回転で唸り始める。/api/generate エンドポイントに「非常に長い計算タスク」を大量並列送信、GPU使用率は99%に。
📅 3日後:電気代と異音で気づく
Aさんは「なんかPCがうるさいな」「電力メーターが急に増えた」と気づく。タスクマネージャーを開くとGPUが常時90%以上。Ollamaのログを見ると見知らぬIPから1分間に数百リクエストが来ていた。
😱 最悪のケース:踏み台として使われていた
さらに調査すると、自分のIPアドレスから某企業のWebサーバーへDDoS攻撃が行われていたことが判明。ISPから「不正アクセスの疑いがある」と通知が来る。弁護士費用と調査費用で10万円超の出費に。
「知らなかった」は法的に免責になりません。自分のサーバーから攻撃が行われた場合、意図的かどうかに関わらず、プロバイダーや捜査機関から問い合わせを受ける可能性があります。早期発見・即時対処が唯一の対策です。
🛡 今すぐできる完全防御チェックリスト
今日から実践できる対策を優先度順に解説。まずは「現状確認」から始めよう
大前提:「外部公開する必要があるか?」を問い直す
最強の対策は「そもそも外部公開しないこと」です。多くのケースでは、VPN経由・SSH トンネル・同一ネットワーク内利用で十分です。「リモートからアクセスしたい」という理由なら、必ずVPNと組み合わせてください。
ファイアウォールで閉じる
対策カテゴリ:アクセス制限
ポート 11434 への外部アクセスをファイアウォールで完全ブロック。Linuxなら ufw deny 11434、Windowsならファイアウォール詳細設定、ルーターのポートフォワーディングを削除する。これだけで99%のリスクが消えます。
localhostのみでバインド
対策カテゴリ:ネットワーク制限
Ollamaの環境変数に OLLAMA_HOST=127.0.0.1 を設定する。これにより 0.0.0.0(全インターフェース)ではなく、ループバックアドレスのみで待機するようになり、LAN・インターネットからのアクセスが物理的に不可能になります。
リバースプロキシ+認証
対策カテゴリ:認証・暗号化
外部公開が必要な場合は、NginxやCaddyなどのリバースプロキシ経由にし、Basic認証・APIキー認証・クライアント証明書のいずれかを必ず設定する。HTTPSも必須。Open WebUIにはビルトイン認証機能があります。
VPNで安全なトンネル
対策カテゴリ:セキュアアクセス
WireGuardやTailscaleでVPNを構築し、VPN接続した端末からのみOllamaにアクセスできるようにする。Tailscaleは設定が非常に簡単で、個人利用は無料。リモートから安全にローカルAIを使う最もスマートな方法です。
ログ監視・アラート設定
対策カテゴリ:検知・モニタリング
Ollamaのアクセスログを定期確認し、見知らぬIPからの大量リクエストがないかチェックする。Fail2banで自動ブロック、GrafanaでGPU温度・使用率を常時監視すると異常を素早く検知できます。
Shodanで自分を検索する
対策カテゴリ:自己診断
Shodan.ioで自分のグローバルIPアドレスを検索してみる。自分のIPが検索結果に出てきたら即対処が必要です。無料アカウントでも基本的な検索は可能。my global ip とGoogle検索してIPを確認し、Shodanで調べましょう。
以下のコマンドで設定を確認しましょう:
curl http://localhost:11434/api/tags → ローカルからは動作OK
curl http://[グローバルIP]:11434/api/tags → 外部から接続できなければ安全!
外部から 「Connection refused」や「タイムアウト」になれば正常です。レスポンスが返ってきたら今すぐファイアウォール設定を見直してください。
📝 まとめ:ローカルAI時代のセキュリティ常識
「ローカルだから安全」という幻想を捨て、正しいリスク認識を持とう
🎯 この記事で学んだこと まとめ
🌍 世界の現状
- 世界で19,809台が野ざらし
- 中国・ドイツ・米国がトップ3
- 日本でも225台が無防備
- 東京78台が国内最多
💀 主なリスク
- GPUクリプトジャッキング
- DDoS攻撃の踏み台化
- 会話・機密情報の漏洩
- 悪意あるモデルの注入
- 電気代・法的リスク
🛡 今すぐできる対策
- ポート11434をFWでブロック
- OLLAMA_HOST=127.0.0.1に設定
- VPN(Tailscale)経由でアクセス
- リバースプロキシ+認証を追加
- Shodanで自分のIPを検索して確認
「ローカルAI = 安全」は過去の話
ローカルAIが普及するほど、攻撃者も狙いを定めます。ツールが手軽になるほど、設定の落とし穴も増えます。Dockerの-p オプション一つで世界に公開されるという現実を理解し、セキュリティ設定を面倒くさがらずに実施することが、ローカルAI時代の必須スキルです。
この記事はセキュリティ啓発・教育目的で作成されています。Shodanを使って他者のシステムに無断でアクセスすることは不正アクセス禁止法に抵触します。自分のシステムの調査のみに使用してください。ハッキングを推奨するものではありません。


コメント