Skip to Content
logologo
AI Incident Database
Open TwitterOpen RSS FeedOpen FacebookOpen LinkedInOpen GitHub
Open Menu
発見する
投稿する
  • ようこそAIIDへ
  • インシデントを発見
  • 空間ビュー
  • テーブル表示
  • リスト表示
  • 組織
  • 分類法
  • インシデントレポートを投稿
  • 投稿ランキング
  • ブログ
  • AIニュースダイジェスト
  • リスクチェックリスト
  • おまかせ表示
  • サインアップ
閉じる
発見する
投稿する
  • ようこそAIIDへ
  • インシデントを発見
  • 空間ビュー
  • テーブル表示
  • リスト表示
  • 組織
  • 分類法
  • インシデントレポートを投稿
  • 投稿ランキング
  • ブログ
  • AIニュースダイジェスト
  • リスクチェックリスト
  • おまかせ表示
  • サインアップ
閉じる

レポート 5054

関連インシデント

インシデント 10202 Report
Reportedly Unsafe Deployment of Llama.cpp Reveals Interactive AI-Generated CSAM Roleplay Prompts

Loading...
llama.cpp サーバーのプロンプトリークの分析
upguard.com · 2025

AIの普及により、多くの新しいソフトウェア技術が急速に導入され、それぞれに情報セキュリティを侵害する可能性のある設定ミスの危険性が存在します。そのため、UpGuard Researchの使命は、新しい技術に特有のベクトルを発見し、そのサイバーリスクを測定することです。

本調査では、大規模言語モデル(LLM)を利用するためのオープンソースフレームワークであるllama.cppを取り上げます。Llama.cppはユーザープロンプトを漏洩する可能性がありますが、実際に存在するllama.cppサーバーの数は少ないため、llama.cppによる漏洩の絶対的なリスクは低いと考えられます。

しかし、セキュリティが不十分なllama.cppサーバーによって漏洩したプロンプトデータを調査したところ、子供のキャラクターが登場する性的に露骨なロールプレイのテキストを生成するIPアドレスが2つ見つかりました。この調査の目的は、公開されたllama.cppサーバーに関連するリスクを理解することでしたが、公開された特定のデータは、生成AIに関連する最も差し迫った安全性に関する懸念の一部を示しています。

llama.cppとは?

Llama.cppは、「MetaのLLaMAモデル(およびその他)を純粋なC/C++で推論する」ためのオープンソースプロジェクトです。技術的な用語を使わずに説明すると、llama.cppは無料のAIモデルを簡単に実行できるフリーソフトウェアです。 OpenAIのChatGPT、AnthropicのClaude、GoogleのGeminiといった最も有名なAI製品は、所有者が作成したアプリケーション(chatgpt.comなど)や、モデルへの有料アクセスを提供するAPIを介してアクセスする独自のモデルを使用しています。しかし、ユーザーがダウンロード、変更、そして自身の環境で実行できる、無料かつオープンソースの大規模言語モデルも数多く存在します。LlamaはMetaがリリースしたオープンモデルファミリーの一つであり、多くのAI関連ソフトウェアの名前に「llama」が含まれているのは、このモデルのおかげです。llama.cppやOllamaといったプロジェクトは、これらのモデルを使用するためのインターフェースを提供しています。

Llama.cppは、リモートユーザーがllama.cppと対話するためのAPIを備えたHTTPサーバーとして構成できます。llama.cppがサーバーを実行するように構成され、そのインターフェースがパブリックインターネットに公開されている場合、匿名のリモートユーザーはllama.cppサーバーを検出し、対話することができます。一般的に言えば、世界中の誰もがアクセスできるように意図されていない限り、APIをインターネットに公開するのは賢明ではありません。しかし、llama.cppはフリーでオープンなソフトウェアであるため、個人の研究室にあるおもちゃのアプリの情報セキュリティを気にしない趣味の人々に広く利用されています。

HTTP APIが一般公開され、企業ガバナンスの外部の個人によって広く利用されるという2つの特徴は、ユーザーがllama.cppサーバーを安全性の低い設定で構成する可能性を高めます。

公開された llama.cpp API のリスク

これらのリスクの実際の発生率を調査するために、2 つの llama.cpp GET API である `/props` と `/slots` を使用しました。Llama.cpp は様々な POST API も提供していますが、サーバーの動作を妨害する可能性があるため、今回は使用しませんでした。llama.cpp を使用したアプリケーションの完全なセキュリティ監査を行うには、これらの POST API が悪用されないことも確認する必要があります。

/props エンドポイントは、モデルパラメータに関するメタデータを提供します。これはOllama APIが一般的に公開するデータに似ています。v1/modelsエンドポイントと/healthエンドポイントは、/props経由でアクセスできるものと同じデータを提供しますが、それぞれOpenAI互換、またはヘルスチェックの実行を簡素化するために分離されています。これらのエンドポイントは冗長なデータを提供するため、呼び出す必要はありませんでした。

/slotsエンドポイントは、プロンプトの実際のテキストと、プロンプト生成に関するメタデータを提供します。/slotsが有効になっていて認証なしでアクセスできる場合、匿名ユーザーはモデルに送信されたメッセージを読むことができます。誰かが何らかの形でモデルを使用している場合、その入力を公開することは望ましくありません。llama.cppドキュメントには、/slotsに関する次の警告が含まれています。「このエンドポイントはデバッグ用であり、将来のバージョンで変更される可能性があります。セキュリティ上の理由から、本番環境では有効にしないことを強くお勧めします。」llama.cppチーム、良いアドバイスをありがとうございます!

llama.cpp の全体的な普及と分布

まず注目すべき点は、世界中で公開されている llama.cpp サーバーの数が比較的少ないことです。2025年3月の調査時点では、常時約400台しかありませんでした。これに対し、Ollama の公開サーバー数は現在約2万台で、2か月前のほぼ3倍になっています。しかし、匿名ユーザーが llama.cpp サーバーのプロンプトを読める可能性があるため、悪用は容易ですが、潜在的に大きな影響を与える可能性があります。

地理的に見ると、llama.cpp サーバーは米国に集中しており、ドイツと中国がそれに続いています。llama.cpp サーバーの分布を Ollama と比較すると、llama.cpp は中国では比較的少なく、ドイツでは比較的多くなっています。

Ollama と同様に、IP アドレスを所有する組織は分散しており、AWS、Azure、Google などの大手クラウドプロバイダーに集まる傾向のある企業展開ではなく、趣味で利用するユーザーであることが示唆されています。

‍ /slots および /props エンドポイントの分布

‍ /slots は /props よりも機密性の高い情報を公開するため(ドキュメントでも明示的に警告されているため)、/slots のインスタンス数は /props よりもはるかに少ないと予想していました。しかし、プロンプトデータを公開している llama.cpp インスタンスの数は予想よりも多く、全サーバーの約 3 分の 1 を占めました。

一方、システムプロパティを公開しているインスタンスの数(半分強)は、Ollama API 経由で同様のデータを公開している数千の IP アドレスと比較すると比較的少ないです。

プロンプトの内容

プロンプトを公開している 117 個の IP アドレスのうち、「本番環境」での使用に該当するものはごくわずかでした。50 台のサーバーでは、LLM のテスト用のデフォルトの質問として、最後のプロンプト「不確定性原理は粒子の挙動にどのように影響しますか?」が表示されました。 44件のサーバーにはプロンプトが全く記録されていませんでした。少数のサーバーには、ソフトウェアの脆弱性に関する定型的な分析、多肢選択式クイズを作成するための同一のプロンプト、公開文書などが含まれていました。これらはモデルをテストした証拠ではあるものの、機密情報ではなく、現在も使用されていません。

プロンプトが圧倒的に長かったラマサーバー(コンテンツ量から「本番」で使用されている可能性が示唆されるサーバー)は、精巧で長時間にわたるエロティックなロールプレイのためのプロンプトを表示する3つのチャットボットでした。これらのIPはそれぞれ異なるモデル(Midnight-Rose-70B、magnum-72b、L3.3-Nevoria-R1-70b)を使用しており、これらは偶然にも同様の機能を共有しているだけの別々のプロジェクトである可能性が高いことを示しています。

これらのIPのうち2つは、異なるシナリオやキャラクターの新しいプロンプトで頻繁に更新されていました。これらのIPのアクティビティを測定するために、24時間にわたり、1分ごとに/slotsからこれらのIPのプロンプトを収集しました。プロンプトテキストのハッシュ値を用いて、当該期間の合計952件のユニークメッセージ、つまり1時間あたり約40件のプロンプトについて、プロンプトの重複を除外しました。プロンプトインターフェースを送信したり操作したりすることはなく、パッシブスキャンでアクセスできる公開プロンプトのみを観察しました。

データをレビューした結果、主な懸念事項は、これらのLLMによって作成されたコンテンツの一部に、7歳から12歳までの(架空の)子供が性行為をしている様子が描かれていることでした。

ユニークシナリオの数を数えるために、各メッセージの最初の100文字を切り出し、各シナリオのシステムプロンプトの代表的なサンプルを取得しました。この方法により、108件のユニークシステムプロンプトまたはナラティブシナリオが特定されました。チャットが最も長かったシナリオでは、24時間以内に150件のメッセージが送信されました。108件のシナリオのうち、5件には子供が関与していました。

このコンテンツには実際の児童は登場しませんが、このデータのごく一部にさえAI生成のCSAMが多数含まれていることは、LLMがこのようなコンテンツ作成への参入障壁をいかに下げたかを示しています。さらに、このコンテンツは単なる静的テキストではなく、テキストベースのインタラクティブなCSAMロールプレイです。これは違法ではないにせよ、不快なものであり、LLMテクノロジーによって容易に作成できます。実際、数十万ものシナリオで「無修正」のロールプレイ用の「キャラクター」をユーザーが作成できるプラットフォームとして運営されているサイトは既に数多く存在します。

結論

情報セキュリティチームは、llama.cppが設定ミスによって機密データが漏洩する可能性のある技術であることを認識する必要があります。UpGuardのサイバーリスクスキャンは、llama.cppを実行しているIPアドレスを検出し、第三者によるデータ侵害を防止します。llama.cppを使用する場合、実装者は安全な設定ガイドライン、特に/slotsエンドポイントを有効化しないことを熟知しておく必要があります。今回の調査では、企業データの漏洩は確認されませんでしたが、その可能性は存在しており、情報セキュリティプログラムは引き続きそのような事象の監視を継続する必要があります。

llama.cpp APIを通じてアクセスできたデータの詳細は、企業の情報セキュリティチームにとって特に重要なものではありませんが、AIの安全性に関するより広範な議論には応用可能です。調査調査を通じてLLMの実際の運用を実証的に観察することは、AIが社会に与える影響と必要な対策を理解するための継続的なプロジェクトの一環です。

‍

情報源を読む

リサーチ

  • “AIインシデント”の定義
  • “AIインシデントレスポンス”の定義
  • データベースのロードマップ
  • 関連研究
  • 全データベースのダウンロード

プロジェクトとコミュニティ

  • AIIDについて
  • コンタクトとフォロー
  • アプリと要約
  • エディタのためのガイド

インシデント

  • 全インシデントの一覧
  • フラグの立ったインシデント
  • 登録待ち一覧
  • クラスごとの表示
  • 分類法

2024 - AI Incident Database

  • 利用規約
  • プライバシーポリシー
  • Open twitterOpen githubOpen rssOpen facebookOpen linkedin
  • e1b50cd