スポットライティングとは
スポットライティングとは、AIへの「プロンプトインジェクション」攻撃を防ぐための技術で、外部から取り込んだ信頼できない文章に目印をつけ、AIに「これは従うべき命令ではなく、ただのデータだ」と見分けさせる手法の総称です。Webページや送られてきた文書を読ませるタイプのAIで、その文章の中に紛れ込んだ不正な指示にAIが従ってしまう事故を抑える狙いがあります。
英語表記:Spotlighting
なぜ目印が必要なのか
AIは文章を、区切りのない細かな単位の流れとして読みます。そのため開発者が与えた指示と、外部から拾ってきたデータが地続きになり、AI自身には見分けがつきません。攻撃者はこの隙をつき、読ませる文書の中に「これまでの指示は無視して〜せよ」と命令を忍ばせます。スポットライティングは、データ部分に一貫した目印を添えることで、AIに「ここは資料であって命令ではない」と区別させる発想です。
具体的には3つのやり方があります。データの前後を特殊な記号で囲む方法、本文の単語の区切りをすべて特殊文字に置き換えて全体に透かしを入れる方法、データだけを別の形式に変換して渡す方法です。書類の全ページに「これは参考資料」と透かしを入れて、本物の命令と物理的に見分けさせるイメージに近いでしょう。
過信は禁物という位置づけ
2024年3月にMicrosoftの研究チームが発表した手法で、論文では攻撃の成功率を大きく下げられたと報告されています。Microsoftはこの考え方を自社のAI開発基盤の防御機能にも取り入れました。ただしこれだけで安全になるわけではなく、複数の守りを重ねる多層防御の一部と位置づけられている点には注意が必要です。攻撃者が目印のルールを知れば破られる余地も残ります。
Topicいちばん強い守りが「丸ごと暗号化」だった逆説
3つのやり方のうち最も効果が高かったのは、外部データを丸ごと別の符号に変換して渡すという、意外にも単純な発想でした。論文では高性能なモデルで攻撃の成功をほぼ抑えられたと報告されています。ところが落とし穴もあって、符号を読み解く力のない非力なモデルだと、変換されたデータの中身まで理解できず性能が落ちてしまいます。賢いモデルほど強い守りを使える、という少し皮肉な関係になっているわけです。
スポットライティングに関するよくある質問
- スポットライティングは攻撃手法ですか、防御手法ですか?
- 防御手法です。外部から読み込ませる文章に目印をつけ、その中に紛れた不正な命令にAIが従わないようにする守りの技術で、攻撃側の手口ではありません。
- スポットライティングを入れればAIは安全になりますか?
- いいえ、これだけで安全にはなりません。攻撃の成功率を下げる効果は報告されていますが、目印のルールを知られると破られる余地が残るため、複数の守りを重ねる多層防御の一部として使うのが前提です。
- プロンプトインジェクションとどう関係しますか?
- プロンプトインジェクションは、文章に不正な命令を紛れ込ませてAIを操る攻撃です。スポットライティングは、外部データに目印をつけて命令とデータを区別させ、その攻撃、とりわけ取り込んだ文書経由の間接的な攻撃を防ぐために考えられた対策です。