プロンプトインジェクションへの私なりの対策

プロンプトインジェクション、という言葉を最近よく見かけるようになった。AIエージェントが外部から読み込んだ情報の中に紛れた指示にそのまま従ってしまい、権限や情報を奪われる、という報告が海外のセキュリティ系ニュースサイトで何度か取り上げられている。

自分も毎週、AI活用のネタ探しのために海外・国内のWeb記事をAIエージェントに読ませて要点を拾わせている。読ませているのは、素性の分からない外部の文章そのものだ。だから他人事ではないと感じた。自分なりに決めている対策を、ここに書いておく。

1段目は単純だ。外部から拾った文章の中に、これまでの指示を無視しろ、この内容を実行しろ、といった指示っぽい言葉が混ざっていても、全部データとして読むだけで、実行しない。あわせて、検索する言葉にも社内の情報や固有名詞は入れないようにしている。こちらは情報を漏らさないための、別のルールだ。

正直に言うと、この1段目が常に効いている保証はない。今のところ、実際に仕込まれた指示を読ませた、という手応えはないが、それが対策の効果なのか、まだ狙われていないだけなのかは、自分では判別できない。想定より巧妙なものが来たら、1段目をすり抜けられる可能性は普通にある。

だから、1段目が破られることを前提に、2段目を用意している。実際に外へ影響が出るような操作、たとえば発信する、残している記録を書き換える、といった操作の権限は、そもそもAIに渡していない。1段目のルールが仮に効かなくても、2段目の手前で止まるようにしている、というのが今のところの理解だ。

2段目を考えるようになったきっかけは、単純な疑問だった。対策していると言っても、その対策自体がちゃんと機能しているかは、どうやって確かめればいいのか。1段目だけでは、この問いに答えられない。1つのルールが正しく機能し続けることに、すべてを賭けたくなかった。

これは自分だけの思いつきではなかったようだ。生成AIのセキュリティ課題を扱う国際的な非営利組織OWASPは、プロンプトインジェクションを完全に防げると言い切れる方法は今のところ無い、という趣旨を述べている。米国CISAと各国のセキュリティ機関も、AIエージェントを安全に導入するための共同ガイドの中で、権限を必要最小限にとどめることと、影響の大きい操作には人の承認を挟むことを、揃って勧めている。自分が2段目として決めていたことは、結果としてこの考え方に近かった。ただ、専門機関が勧める対策はこの2つだけではない。操作の記録を残す、読み込む内容を事前にふるいにかけるといった対策も含めて、初めて十分と言えるものだと思う。自分がやっているのは、その中の一部だ。技術的なフルスタックを組むのは専門ベンダーの領域で、自分が力になれるのは、その手前にある「何を任せるか」の整理の部分だと思っている。

この考え方は、AIの使い方に不安を持つ人にもそのまま当てはまると思う。「AIに任せて大丈夫か」という不安を持つ経営者は少なくないと思う。この不安への答えは、絶対に安全な使い方を探すことではないと思う。先に決めておくべきなのは、AIに何を任せて、何は任せないか、その線引きを1段だけで終わらせず、複数段に分けておくことだと思う。

AIに何かを任せるときは、うまくいく前提だけで終わらせず、1段目が破られたら何が起きるかを先に1つ書き出しておくと良いと思う。任せる範囲を広げるときほど、その備えが利いてくる。

自社でAIに何を任せ、何を任せないかを先に整理しておきたい、という場合は、一緒に考えることもできます。技術的な防御そのものを作るというより、任せる範囲・確認の仕方を一緒に整理します。

参考:OWASP(https://genai.owasp.org/llmrisk/llm01-prompt-injection/)/米国CISA(https://www.cisa.gov/resources-tools/resources/careful-adoption-agentic-ai-services

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

CAPTCHA


目次