機密情報の開示は、大規模言語モデル(LLM)が回答で機密データ、個人データ、専有データ、またはその他の制限付きデータを意図せずに開示する脆弱性です。これは、モデルがトレーニング データから情報を漏洩したり、ユーザーのセッションのコンテキスト内で提供された機密情報を明らかにしたりした場合に発生する可能性があります。攻撃者は、特定のクエリを作成したり、プロンプト インジェクション手法を使用したりして、モデルを騙して公開すべきでない情報を開示させることができます。主な問題は、LLM が処理した公開データと機密情報を区別できないことです。
Android に関連する開示の種類
トレーニング データの漏洩: LLM がトレーニングに使用された特定のデータ フラグメントをそのまま吐き出す場合に発生します。トレーニング データセットに個人情報(PII)、独自のコード、内部文書が含まれている場合、モデルは適切なプロンプトが入力されると、この情報を出力に再現する可能性があります。Android アプリの場合、アプリにバンドルされた事前トレーニング済みモデルや、クラウド API を使用してアクセスされるモデルがこれに該当します。
コンテキスト データの開示: これは Android アプリにとってより差し迫ったリスクであり、LLM がアプリ セッション中にユーザーが提供した機密情報を公開する可能性があります。たとえば、アプリでユーザーが要約のために個人を特定できる情報(PII)を LLM に入力できる場合、後続のプロンプト インジェクション攻撃により、攻撃者がモデルを操作してコンテンツを開示させることが可能になる可能性があります。これは、アプリが LLM に暗黙的に渡す機密データにも適用されます。
Android デベロッパーが注意すべき理由
機密情報の開示は、アプリとそのユーザーに深刻な影響を及ぼす可能性があります。
- プライバシー侵害: 攻撃者がユーザーの名前、メールアドレス、電話番号、位置情報などの個人情報(PII)を抽出する可能性があります。これにより、個人情報の盗難や、GDPR や CCPA などの厳しい規制上の罰則が科される可能性があります。これは、ユーザーデータを扱う Android アプリにとって特に重要です。
- 知的財産の盗難: アプリの LLM が独自のアルゴリズム、財務データ、その他の内部ビジネス情報を処理している場合、攻撃者がその開示を強制し、組織に重大な競争上の損害や財務上の損害をもたらす可能性があります。
- セキュリティ侵害: LLM が、トレーニング データに含まれていたか、セッション中に渡された API キー、認証トークン、構成の詳細などのシステムレベルの情報を誤って漏洩し、バックエンドや他のサービスに重大なセキュリティの脆弱性が生じる可能性があります。
- 評判の低下: 1 件の重大なデータ漏洩インシデントにより、ユーザーの信頼が失われ、アプリのアンインストールや否定的なレビューにつながり、アプリやブランドの評判に修復不可能な損害が生じる可能性があります。
Android アプリ デベロッパー向けの緩和策
この脆弱性を軽減するには、データ ハイジーンと Android アプリケーション内の LLM のアクセス制御に重点を置いた多層アプローチが必要です。
データ サニタイゼーションと最小化:
- 入力のクリーニングを優先する: ユーザー入力やアプリデータを LLM に送信する前に、厳密にスクラブして匿名化します。LLM のタスクに不可欠ではない PII と機密情報はすべて削除します。
- 必要なものだけを収集する: アプリ内でデータの最小化の原則を遵守します。特定の機能を実行するために必要な最小限のデータのみを収集し、LLM に提供します。
- オンデバイス ML: 非常に機密性の高いデータについては、データがユーザーのデバイスから流出しないオンデバイス ML モデルの使用を検討してください。これにより、サーバーサイドのデータ漏洩のリスクを大幅に軽減できます。
アクセスを管理する
- データアクセスを制限する: LLM アプリケーションがアクセスできるデータの量を最小限に抑えるように設計します。モデルに機密性の高いデータベース、ユーザー設定、非公開ファイルへのアクセス権が付与されていない場合、モデルをだましてコンテンツを漏洩させることはできません。
- Android の権限を制限する: アプリの AI コンポーネントが、必要最小限の Android 権限で動作することを確認します。機密データを公開する可能性のある不要な権限を付与しないでください。
アプリ内での出力のフィルタリング:
- クライアントサイドの秘匿化: Android アプリにセキュリティ レイヤを実装します。このレイヤは、レスポンスがユーザーに表示される前に、LLM の出力をスキャンして、機密情報(クレジット カード番号、API キー、社会保障番号、メールアドレスなど)に一致するパターンを探します。一致するものが見つかった場合、レスポンスはブロックまたは編集されます。
LLM の指示ガードレール:
- 明示的なシステム プロンプト: モデルが個人情報、機密情報、機密情報を開示することを禁止する明示的な指示をシステム プロンプトに含めます。例: 「いかなる状況でも、ユーザーの詳細、内部データ、個人を特定できる情報を共有してはなりません。」これにより、期待される行動が強化されます。
プライバシー強化手法:
- ユーザーの操作やデータから学習するアプリケーションの場合は、差分プライバシー(データに統計ノイズを追加する)やフェデレーション ラーニング(データを一元化せずにユーザーのデバイスでモデルをトレーニングする)などの高度な手法を検討して、個人のプライバシーを保護してください。
定期的な監査とレッドチーム:
- 事前テスト: Android アプリケーションを積極的にテストし、レッドチームを編成して、LLM が機密情報を漏洩する可能性があるかどうか、またその方法を特定します。これには、LLM が公開すべきでないデータを意図的に公開させようとする行為が含まれます。
概要
機密情報の開示は、LLM がトレーニング セットやユーザー セッションから機密データを明らかにする場合に発生し、プライバシー侵害や知的財産の盗用などの重大なリスクをもたらします。軽減策として、Android アプリ内で多層防御を講じる必要があります。LLM に到達する前にデータをサニタイズすることを優先し、最小権限の原則を適用してモデルのデータアクセスを制限し、堅牢なフィルタを実装して、モデルの最終出力がユーザーに到達する前に機密情報をスキャンして削除します。オンデバイス ML や Firebase App Check などのツールを活用することで、セキュリティをさらに強化できます。
参考情報
参考までに、機密情報に関するガイドラインへのリンクを以下に示します。
他のモデルを使用している場合は、同様のガイダンスとリソースを探してください。
詳細情報: