公開された Ollama API のリスク

英語からの翻訳です。原文は English.


問題

Ollama は自分のマシンで動く API サービスです。他人のクラウドに頼らずに AI モデルを使えるようにしてくれます。ポート 11434 で待ち受けていて http://localhost:11434 に応答します。

問題は Ollama に認証がないことです。それ自体は脆弱性ではありませんが、ポートがインターネットから届く位置に来た瞬間に脆弱性になります。見つけた人はあなたのモデルとハードウェアを、断りもなく使えます。

何が起きるか

認証がなくポートが開いていると、攻撃者にできることがいくつかあります。

  • あなたの AI モデルと会話する
  • マシン上のモデルをダウンロードする
  • GPU と CPU でタスクを走らせる

レンタルのマシンで Ollama を動かしているなら、使っていてもいなくても請求は来ます。使ったのは誰か別の人です。

どうやって見つけたか

ollama serve を実行すると、Ollama がインストールされて動いている時点でもうサービスは起動していると分かります。そこで FOFA を使って、そのうち何台がインターネットから届くのか調べました。FOFA はサイバースペースの検索エンジンです。

ポート 11434 が開いているマシンを "Ollama is running" && port="11434" というクエリで探しました。この特徴的な文字列が使えるのは、標準の Ollama のルートがまさにこの文言を返すからで、稼働中のインスタンスを確実に見つけられます。

FOFA.info でポート 11434 を検索したクエリ

検索結果は 65,766 台の公開ホストでした。

FOFA.info の検索結果。65,766 台の Ollama インスタンスが公開されている
  • どれもポート 11434 が届く状態だった
  • モデルを読み、GPU にリクエストを送れた
  • 多くは高価なハードウェアで、持ち主は気づいていなかった

Ollama を守る方法

Ollama を使っているなら、今日できることが 3 つあります。

1. IP を絞る

ファイアウォールを使って、信頼できる IP だけを通します。

2. 前に認証を置く

トークンを要求してから転送するプロキシを前に置きます。

3. 公開ポートを閉じる

サービスを 127.0.0.1 に束縛して、マシンの外からポートに届かないようにします。

まとめ

これは Ollama を責める話ではありません。ローカルサービスを出すのは正しい既定値です。問題は、ローカルサービスが公開 IP に載ってしまって誰も確認しなかったときに始まります。ファイアウォールで 20 分もあれば解決します。