ニュース

Apple Intelligence には、わずか数行のコードで突破できる重大なセキュリティ上の欠陥があります。カルパシーがリマインダーを送信

2024-08-15

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina


新しい知恵のレポート

編集者: 楊喬

【新しい知恵の紹介】Apple Intelligence がオンラインに移行しようとしていますが、数行のコードから Apple Intelligence のセキュリティ上の欠陥が明らかになりました。

Appleは2024年のWorldwide Developers Conference(WWDC)で、iOS 18.1に搭載されるAI機能「Apple Intelligence」をリリースした。


10月の正式リリースを目前に控え、MacOS 15.1が提供するApple Intelligenceのベータテスト版に重大な欠陥を「民間専門家」が発見した。

開発者のEvan Zhou氏は、プロンプトインジェクションを使用してApple Intelligenceを操作することに成功し、予想される指示を回避し、AIが任意のプロンプトに応答できるようにしました。

大規模な言語モデルに基づく他の AI システムと同様に、「キューワード インジェクション攻撃」に対して脆弱であることが判明しました。開発者の Evan Zhou は、YouTube ビデオでこの脆弱性を実証しました。

プロンプトワードインジェクション攻撃とは何ですか?

OWASP という Open Global Application Security Project という組織があり、大規模な言語モデルが直面する可能性のある主な脆弱性を分析しました。彼らが1位にランクしたのは何だと思いますか?そうです、それはプロンプトワードインジェクションです。


プロンプト インジェクション攻撃は、プロンプト ワード インジェクション、プロンプト ワード リーク、プロンプト ワード ジェイルブレイクなど、さまざまな形式を持つ新しいタイプの攻撃です。

この攻撃は、攻撃者が人工知能を操作して、モデルに予期しないアクションを実行させたり、機密情報を漏洩させたりするときに発生します。この操作により、AI が悪意のある入力を正当なコマンドまたはクエリとして誤って解釈する可能性があります。

個人や企業による大規模言語モデル (LLM) の普及と、これらのテクノロジーの継続的な進歩により、ヒント インジェクション攻撃の脅威が大幅に増加しています。

では、そもそもなぜこれが起こったのでしょうか?なぜシステムはこの種の攻撃に対して脆弱なのでしょうか?

実際、従来のシステムでは、開発者がプロ​​グラムと命令を事前に設定しており、それらは変更されません。

ユーザーは自分の情報を入力できますが、プログラムのコードと入力は分離されたままになります。

ただし、これは大規模な言語モデルには当てはまりません。つまり、大規模なモデルはシステムのトレーニングに入力を使用することが多いため、命令と入力の境界があいまいになります。

したがって、大規模な言語モデルのエンコードと入力には、以前ほど明確で明確な境界がありません。これにより、モデルに多くの柔軟性が与えられますが、モデルが本来行うべきではないことを行う可能性もあります。

技術セキュリティの専門家でハーバード大学ケネディスクールの講師でもあるブルース・シュナイアー氏は、LLM のセキュリティ問題について詳しく論じた記事を 5 月に ACM Communications に発表しました。同氏の言葉を借りれば、これは「データパスと制御パスが分離されていない」ことに起因するという。


プロンプトワードインジェクション攻撃は、データ漏洩、悪意のあるコンテンツの生成、誤った情報の拡散などを引き起こす可能性があります。

ヒント インジェクション攻撃は、攻撃者が AI モデルを操作するための入力命令を巧みに構築し、それによって機密情報や機密情報の暴露を誘導するときに発生します。

このリスクは、独自データまたは個人データを含むデータセットでトレーニングされたモデルで特に深刻です。攻撃者はモデルの自然言語処理機能を悪用して、表面的には無害に見えますが、実際には特定の情報を抽出するように設計された命令を作成します。

綿密な計画を立てれば、攻撃者はモデルを騙して、個人情報、企業の内部業務、さらにはモデルのトレーニング データに埋め込まれたセキュリティ プロトコルを含む応答を生成させることができます。

この種のデータ侵害は、個人のプライバシーを侵害するだけでなく、潜在的な経済的損失、風評被害、法的紛争につながる可能性のある重大なセキュリティ上の脅威をもたらします。

Zhou のケースに戻ると、Zhou の目的は Apple Intelligence の「書き換え」機能を操作すること、つまりユーザー入力テキストを書き換えて改善することです。

作戦中、Zhou 氏は単純な「前のコマンドを無視する」コマンドが実際には失敗したことを発見しました。

これが「気密」LLM の場合、掘削を続けるのは比較的困難です。しかし偶然にも、Apple Intelligence のプロンプト テンプレートは最近 Reddit ユーザーによって発掘されました。



これらのテンプレートから、Zhou 氏は AI システムの役割とユーザーの役割を分離するために使用される特別なトークンを発見しました。

Zhou は、この情報を使用して、元のシステム プロンプトをオーバーライドするプロンプトを作成しました。

彼はユーザーの役割を早期に終了し、新しいシステム プロンプトを挿入して、前の指示を無視して次のテキストに応答するように AI に指示し、AI の応答をトリガーしました。

いくつかの実験の後、攻撃は成功しました。Apple Intelligence は、Zhou が要求していない情報を返しました。これは、プロンプト インジェクション攻撃が機能したことを意味します。 Zhou 氏はコードを GitHub で公開しました。


Twitter ユーザーが GPT-3 を破る

チップ注入の問題は、少なくとも 2020 年 5 月の GPT-3 のリリース以来知られていましたが、未解決のままです。

GPT-3 API に基づくボットである Remoteli.io が、Twitter 上のこの脆弱性の被害に遭いました。ボットはリモート ジョブを自動的に投稿し、リモート ジョブ リクエストに応答する必要があります。


しかし、上記のプロンプトにより、Remoteli ボットは一部の Twitter ユーザーの間でジョークの種になりました。元の指示に従っては言わなかった文章をボットに強制的に言わせました。

たとえば、ボットはスペースシャトルチャレンジャー号事故の全責任をユーザーにと脅したり、米国議員を連続殺人犯として非難したりする。

場合によっては、ボットがフェイクニュースを広めたり、Twitter のポリシーに違反するコンテンツを投稿したりする場合があり、その場合は排除されることになります。

データサイエンティストのライリー・グッドサイド氏はこの問題に最初に気づき、Twitter で説明しました。


グッドサイド氏は、翻訳中の文にヒントを挿入することで、GPT-3 ベースの翻訳ボットがいかに脆弱であるかを実証しました。

英国のコンピュータ科学者サイモン・ウィリソン氏は、このセキュリティ問題を「プロンプト・インジェクション」と名付け、自身のブログで詳細に論じた。


Willison は、大規模な言語モデルのヒント注入命令があらゆる種類の奇妙な、潜在的に危険な事態を引き起こす可能性があることを発見しました。彼は続けてさまざまな防御メカニズムについて説明しますが、最終的にはそれらを却下します。現時点では、セキュリティ ホールを外部から確実に塞ぐ方法を知りません。

もちろん、ユーザー入力内の危険なパターンを検索するルールを使用するなど、これらの脆弱性を軽減する方法はあります。

しかし、100%安全なものはありません。大規模な言語モデルが更新されるたびに、講じられているセキュリティ対策を再検討する必要があるとウィリソン氏は述べています。さらに、言語を作成できる人は誰でも攻撃者になる可能性があります。

「GPT-3 のような言語モデルは究極のブラック ボックスです。どれだけ自動テストを作成しても、ユーザーが予期せぬヒント ワードを思いつかないと 100% 確信することはできません。私の防御を打ち破ってください」とウィソンは書いた。

Willison 氏は、コマンド入力とユーザー入力を分離することが可能な解決策であると考えており、これが上記の ACM 記事で述べられている「データ パスと制御パスの分離」です。彼は開発者が最終的にはそれを理解できるだろうと信じているが、このアプローチが実際に機能することを証明する研究を望んでいる。

一部の企業は、チップ注入攻撃を比較的困難にするための措置を講じていることを称賛に値します。

Zhou が Apple Intelligence をクラックしたとき、バックエンド プロンプト テンプレートを通じて特別なトークンを見つける必要もありました。一部のシステムでは、プロンプト インジェクション攻撃は、チャット ウィンドウまたは入力画像に対応するテキストを追加するだけで簡単に実行できる場合があります。

OpenAIは2024年4月、その対策として命令階層方式を開始した。開発者 (最高優先度)、ユーザー (中優先度)、およびサードパーティ ツール (低優先度) からの指示に異なる優先度を割り当てます。


研究者らは、「整列された命令」(より高い優先順位の命令と一致する)と「整列されていない命令」(より高い優先順位の命令と矛盾する)を区別した。命令が競合する場合、モデルは優先順位が最も高い命令に従い、競合する優先順位の低い命令は無視します。

対策を講じたとしても、ChatGPT や Claude などのシステムは、場合によっては依然としてチップ インジェクションに対して脆弱です。

LLMには「SQLインジェクション」の脆弱性もある

プロンプトワードインジェクション攻撃に加えて、Andrej Karpathy 氏は最近 Twitter で LLM の別のセキュリティ脆弱性を指摘しました。これは従来の「SQL インジェクション攻撃」に相当します。

LLM トークナイザーが入力文字列の特別なトークン (たとえば、<|endoftext|>など)、直接入力は便利そうに見えますが、よく言えばトラブル、最悪の場合はセキュリティ上の問題が発生する可能性があります。

常に覚えておく必要があるのは、ユーザーが入力した文字列は信頼できないということです。 !

SQL インジェクション攻撃と同様に、ハッカーは注意深く構築された入力を通じてモデルを予期せぬ方法で動作させることができます。

その後、Karpathy は、Llama 3 トークナイザーのデフォルト値を使用して、Huggingface に一連の例を提供し、2 つの奇妙なことを発見しました。

1、<|beginoftext|>トークン (128000) がシーケンスの先頭に追加されます。


2. 文字列から解析する<|endoftext|> 特別なトークン (128001) でマークされています。ユーザーからのテキスト入力によりトークンの仕様が破壊され、モデル出力が制御されなくなる可能性があります。


この点に関して、カルパシー氏は 2 つの提案をしました。

常に 2 つの追加フラグ値 (1) add_special_tokens=False と (2) split_special_tokens=True を使用し、特別なトークンをコード内に自分で追加します。

チャット モデルの場合、チャット テンプレート apply_chat_template を使用することもできます。

Karpathy の方法によれば、出力された単語分割結果はより正確に見えますが、<|endoftext|> 特別なトークンではなく任意の文字列として扱われ、他の文字列と同様に、基礎となる BPE トークナイザーによって分割されます。


要約すると、Karpathy 氏は、エンコード/デコード呼び出しでは特別なトークンを処理するために文字列を決して解析すべきではなく、この機能は完全に非推奨となり、別のコード パスを介してプログラム的に明示的に追加する必要があると考えています。

現時点では、このような問題は見つけるのが難しく、文書化されることもほとんどありません。現在のコードの約 50% に関連する問題があると推定されています。

さらに、Karpathy は、ChatGPT にもこのバグがあることを発見しました。

最良の場合、トークンが自発的に削除されるだけです。最悪の場合、LLM はユーザーの意味を理解できず、指示に従って出力を繰り返すことさえできません。<|endoftext|> この文字列:


一部のネチズンは、コードは正しく記述されているが、トレーニングデータは入力されているのかどうかをコメントエリアで疑問視しました。<|endoftext|> 何が起こるのですか?

カルパシーは、コードが正しければ何も起こらないと答えた。問題は、コードの多くが正しくない可能性があり、LLM を密かに破壊する可能性があることです。


最後に、LLM の脆弱性によって引き起こされるセキュリティ問題を回避するために、Karpathy 氏はすべての人に、トークンを視覚化してコードをテストする必要があることを思い出させます。

参考文献:

https://the-decoder.com/apple-intelligence-in-macos-15-1-beta-1-is-vulnerable-to-a-classic-ai-exploit/