はじめに
今回は『A Survey of Attacks on Large Language Models』の IV-A3 Reasoning-based Attacks の整理です。
本当は実験したかったのですが、AWS認定試験に3時間拘束されて脳破壊されたので無理でした..。
IV-A3 Reasoning-based Attacks
IV章はTraining-Phase Attacks(訓練段階を狙った攻撃)の章で、IV-A3はそのうちの推論ベース攻撃にあたる部分です。
よくわかんないから調べた用語一覧
1. In-Context Learning(ICL)
プロンプト内に見本や情報を与えるだけで、その場で新しいタスクや出力形式を理解・適応させる能力(およびその手法)のこと。
2. BadChain
大規模言語モデル(LLM)の思考プロセス(Chain-of-Thought / CoT)を標的にした、新しいタイプのバックドア攻撃のこと。
3. Break CoT(BoT)
ファインチューニングでモデル自体に「トリガーが来たら思考をスキップする」という挙動を埋め込むバックドア攻撃。
BoTは以下の2つのファインチューニング手法で実装できます。
-
BoT_SFT(教師あり微調整)
トリガー付き入力に対して「推論過程を省いた、直接答えだけの応答」を正解データとして学習させる。 -
BoT_DPO(Direct Preference Optimization)
「推論過程ありの応答」と「推論過程なしの応答」のペアを用意し、トリガーがある場合は後者を、トリガーがない場合は前者を好むようにモデルの選好を学習させる。
また、トリガーには2種類のパターンが用意されています。
- ランダムトークン列:意味を持たない、ランダムに選んだトークンの並び
-
意味のあるトークン(semantic token):
"What do you think"のような自然な文
4. ICLAttack
モデルパラメータを一切変更せず、プロンプトに含める「デモ例(few-shot examples)」を細工するだけでバックドアを機能させる攻撃手法のこと。
-
ICLAttack_examples
デモンストレーション例にトリガーを埋め込み、トリガーと攻撃者が指定したターゲットラベル y の関連をICLによって形成させる方法。 -
ICLAttack_prompts
デモンストレーションそのものではなく、デモをLLMに提示するプロンプト形式にトリガーを埋め込む方法。入力クエリ自体を変更する必要がないため、トリガーがユーザー入力に明示的に存在しなくても、汚染されたデモコンテキストによって攻撃が成立する。
BadChainとICLAttackの違い
※ここは論文の分類というより、両者を理解するための個人的な整理です。
- BadChain:「CoTの思考の中身」を汚染する専門攻撃(推論ステップに嘘を混ぜる)
- ICLAttack:「ICLの仕組みそのもの」を汚染する、より広いレンジの攻撃(CoTに限らず、単純な分類タスクのデモ例だけでも成立する)
さいごに
攻撃手法の多くはLLMの新しい技術だったり学習方法を悪用したものみたいです。
初回は「攻撃手法をどんどんキャッチアップしていくぞ」と宣言しましたが、
攻撃を追うより先にLLM自体の仕組みを追った方が、結局は近道な気がしてきました。
あと、そもそも攻撃手法を実際に再現する難易度が想定より高すぎるw
また、統計学・機械学習の基礎知識であったり、組織としてのセキュリティ管理の型(ISO 27001など)も並行して学習した方が、結果的に効率よくキャッチアップできそうです。
大きな方針転換ですが、学習してみないと気づけなかったので、致し方なしかなと!
■ 論文
- Wenrui Xu, Keshab K. Parhi, "A Survey of Attacks on Large Language Models", 2025.