お疲れさまです。みやもとです。
先日参加したイベントで、LLMハッキングのお話をうかがいました。
怖くも興味深いお話だったのですが、こういう話を聞くとちょっと試してみたくなる人も居るのではないでしょうか。
私もちょっと試したくなったので、Prompt Injection labの問題に挑戦してみました。
プロンプトインジェクションとは
念のため、プロンプトインジェクションについて少しだけ。
検索したところIBMのサイトに記述がありました。
プロンプト・インジェクションは大規模言語モデル(LLM)に対するサイバー攻撃の一種です。ハッカーは、悪意のある入力を正当なプロンプトとして偽装し、生成AIシステム(GenAI)を操作して機密データを漏洩させたり、誤った情報を拡散させたり、さらに悪い事態を引き起こしたりします。
チャットのやり取りの中でシステム管理者が意図しない動きをさせるための命令を混ぜ込んでしまう等の攻撃ですね。
イベントでは具体的な例を実際に実演して見せていただきましたが、APIの情報を聞き出してDB操作するとか実際あったらめちゃくちゃ怖い話でした…。
Prompt Injection lab
Prompt Injection labは、実際にプロンプトインジェクションを試してみることができるサイトです。
運営しているImmersive Labsはサイバーセキュリティトレーニングおよび人材育成に特化したサイバーセキュリティ教育プラットフォームを提供する企業のようですね。
英語読むの大変だったのでClaudeに聞きました。
サイトを開くとこんな感じ。
ずらーっとサイトについての説明。
「AIボットからパスワードを聞き出してね」という課題で、Level 1からちょっとずつ難しくなるよということのようです。
ところどころDeepL翻訳のお世話になりつつ、さっそく挑戦。
問題・回答の内容には触れず、挑戦した感想だけ書かせていただきます。
気になる方は実際に挑戦してみてください。
結論から言います。
Level 4で詰まりました。
Level 1は最初ということもありやさしい問題だったのですが、Level 2の時点でもう何を聞けば情報を引き出せるのかでかなり迷いました。
Level 3が解けたのは割と偶然だと思います。
ハッキングを試みる側もそれを阻止する側も、「何を聞いたらどんな答えが得られえるか」「その情報を渡さないための制約をどうシステムに実装するか」というのを思いつくところからまず大変そうだなという感想になりました。
うっすら思ってはいたけどハッカーってすごいですね。怖い。