Prompt Injection Attack
読み: prompt-injection”]プロンプトインジェクションアタック
Prompt Injection Attackとは
Prompt Injection Attackとは、大規模言語モデル(LLM)の脆弱性を悪用した攻撃手法である。攻撃者は、悪意のある命令やデータをLLMに入力することで、モデルの本来の動作を逸脱させ、機密情報の漏洩や不正な操作を実行させることを目的とする。この攻撃は、LLMのセキュリティにおける重要な課題となっている。
かんたんに言うと
Prompt Injection Attackは、AIに嘘の指示を与えて、本来の目的とは違うことをさせる攻撃のことである。
Prompt Injection Attackの仕組み
Prompt Injection Attackは、LLMがユーザーからの入力を信頼しすぎている点に起因する。LLMは、入力されたテキストを命令として解釈し、それに従って動作する。攻撃者は、この仕組みを利用して、LLMに新たな命令を注入し、既存の命令を上書きしたり、無視させたりする。これにより、LLMは攻撃者の意図した通りに動作するようになる。
Prompt Injection Attackの種類
Prompt Injection Attackには、直接的Prompt Injectionと間接的Prompt Injectionの2種類が存在する。直接的Prompt Injectionは、ユーザーが直接LLMに悪意のある命令を入力する。一方、間接的Prompt Injectionは、LLMがアクセスする外部データに悪意のある命令を埋め込み、LLMがそのデータを処理する際に攻撃が実行される。間接的Prompt Injectionは、より検知が難しいとされる。
Prompt Injection Attackへの対策
Prompt Injection Attackへの対策は多岐にわたる。入力データの検証やサニタイズ処理を強化することで、悪意のある命令の注入を防ぐことができる。また、LLMの出力に対する監視やフィルタリングを行うことで、不正な操作を検知し、阻止することが可能である。さらに、LLMの学習データを改善し、攻撃に対する耐性を高めることも重要である。
当社の見解
技術の選定で最も避けるべきは「流行っているから」という理由で導入することだ。当社は複数のAIツール・フレームワークを実際に検証した上で、自社の用途に合うものだけを採用している。検証せずに導入したツールは、ほぼ例外なく3か月以内に使わなくなった。実装指示した人間側が実装したことも忘れて、気が付けば動いていない機能があった、ということも起きる。さらに、MCPやフックやルールを増やしすぎてAIが情報過多で機能しなくなった経験もある。どんなにルールや機能を付け足しても機能しなければ意味がない。足し算より引き算。1週間の検証期間が、3か月の手戻りを防ぐ。
同じ失敗を二度としないAIエージェント
今のAIは、聞けば何でも答えてくれます。
でも、セッションが切れた瞬間に前回の失敗を忘れます。
当社が開発しているAIは、過去の経緯を念頭に置いて、
聞かれる前に「それは前回うまくいきませんでした」と声をかけます。
人間にも同じ失敗をさせず、AI自身も繰り返しません。
古参の社員が横にいるように、黙っていても気づいてくれる。
それが、当社が考える本当のAI社員です。
