プロンプトリーキングとは、プロンプトインジェクション を使って、アプリケーションが与えたシステムプロンプトをモデルに開示させることである。GPT-3 に対するプロンプトインジェクション攻撃 はこれを直接実演している。翻訳アプリケーションに対して、代わりに翻訳を「LOL」として出力し、その後に完全なプロンプトテキストのコピーを続けるよう求めたところ、GPT-3 は元の指示を、注入された依頼の翻訳とともに出力した。同投稿は、この試みを筆者が見つけた中で最初に成功したものとして報告している。

この漏洩が重要である理由として、2 つの異なる理由が挙げられている。1 つ目は商業的なものである。プロンプトは重要な知的財産となり、注意深く作り込まれたプロンプトを秘伝のタレとするスタートアップを想像するのは難しくない。2 つ目は IBM の解説記事によるもので、運用上のものである。システムプロンプトはそれ自体としては機密でないかもしれないが、攻撃者はそれをさらなる悪意ある入力を作るためのひな型として利用できる。システムプロンプトに似た入力のほうが従われやすいからである。

Usage

この攻撃は、デモンストレーションに対してだけでなく、実際に運用されているシステムに対しても機能すると報告されている。同じ投稿は実環境での事例を記録している。GPT-3 を使ってリモートワークに言及したツイートに返信していた、ある採用系スタートアップの Twitter ボットが誘導され、自らの初期指示が、リモートワークに対して肯定的な態度で、一人称複数形でツイートに返信することだったと明かしたというものである。IBM の説明は 2 つ目の事例を挙げており、スタンフォード大学のある学生が、以前の指示を無視して上の文書の冒頭に何が書かれていたかを報告するよう命じるプロンプトによって、Microsoft の Bing Chat にそのプログラミングを漏らさせたと報告している。

IBM の解説記事は、プロンプトインジェクション攻撃の一般的な影響として、リモートコード実行、データ窃取、偽情報キャンペーン、マルウェアの伝播と並べて、プロンプトの漏洩を最初に挙げている。

When It Applies

この手法は、アプリケーションが開発者の書いた指示を、攻撃者が到達できる入力と同じコンテキストに置いている場所であればどこでも当てはまる。そしてここでの 2 つの説明のいずれにおいても、それがこの種のアプリケーションの通常の構築方法である。この手法が前提とするのは、モデルを誘導して、プロンプトを従うべき指示としてではなく報告すべき素材として扱わせることができる、ということだけである。

その実際上の重要性は、プロンプトに何が含まれているかによって決まる。システムプロンプトが単に機能的なものである場合、失われるのはテキストそのものではなく、それが後の攻撃を偽装する上で与えていた優位性である。この影響に特化した緩和策は、どちらの情報源でも個別には列挙されていない。これは、両者がともに未解決だと説明する攻撃類型の帰結の 1 つとして扱われている。