Short answer
この記事の結論
AIチャットボットのセキュリティテストでは、正常な質問への回答だけでなく、指示の上書き、個人情報の入力、権限外データの要求、危険な出力、大量送信、ログ欠落、停止・復旧までを確認します。公開前に合否基準と30項目のテストケースを固定し、資料・モデル・プロンプト・外部連携を変更するたびに同じ条件で再テストすることが重要です。
- テスト対象を入力、検索、生成、外部操作、表示、記録、運用の7層に分ける
- 攻撃を完全に防ぐ合否だけでなく、突破されても権限外の情報や操作へ到達しないことを確認する
- テストケース、期待結果、実際の結果、根拠、担当者、再テスト日を記録して回帰テストに使う
01
一般的な動作確認とセキュリティテストを分ける
通常の動作確認は、営業時間や商品情報など、想定した質問へ正しく答えられるかを見るものです。セキュリティテストは、想定外の入力や操作があっても、守るべき情報と機能へ影響が広がらないかを確認します。回答が不自然にならないことだけでなく、権限外の文書を検索しない、許可していない処理を実行しない、問題を追跡できるログが残る、といった周辺の仕組みまで対象です。
OWASP GenAI LLM Top 10の現行2026年版は、プロンプトインジェクションを含むLLMアプリケーション固有のリスクを整理しています。AIセーフティ・インスティテュートの評価観点ガイド第1.20版も、AIエージェントの普及を踏まえ、観測と制御、外部環境との相互作用に関する評価項目を拡充しています。チャットボットが検索だけをするのか、メール送信や注文処理まで行うのかによって、必要なテスト範囲は変わります。
最初に、公開情報、社内情報、個人データ、APIキー、外部操作のうち何を守るかを決めます。次に、発生した場合の影響を大・中・小に分け、影響が大きい項目からテストします。小規模なチャットボットでも、個人情報の漏えいと権限外操作は優先度を下げられません。
02
テストケースに必要な7つの項目
質問文だけを並べた表では、担当者が変わると判定が揺れます。一つのケースごとに、目的、事前条件、入力、期待結果、禁止される結果、確認方法、実施記録を持たせます。RAGを使う場合は、検索されるはずの資料と、検索されてはいけない資料も記録します。
期待結果は『安全に答える』ではなく、『公開FAQの返品規程だけを根拠に回答し、顧客情報を表示しない』『注文変更は行わず、本人確認済み画面へ案内する』のように観察できる文章にします。拒否すべき質問では、拒否できたかだけでなく、内部指示や限定情報の一部を回答へ混ぜていないかも確認します。
実施記録には、モデル、プロンプト版、知識ベース版、連携機能版、日時を残します。生成AIの回答は毎回同じとは限らないため、影響が大きいケースは表現を変えて複数回試します。更新後に同じ条件を再現できることが、回帰テストの前提です。
- 目的:何のリスクを検出するテストか
- 事前条件:利用者の権限、登録資料、連携機能の状態
- 入力:質問文、添付ファイル、連続送信などの操作
- 期待結果:表示、拒否、引き継ぎ、ログ記録の正しい状態
- 禁止結果:漏れてはいけない情報、実行してはいけない操作
- 確認方法:画面、検索結果、外部システム、監査ログの確認箇所
- 実施記録:構成の版、結果、証跡、担当者、修正と再テスト日
03
入力とプロンプトインジェクションを試す5項目
プロンプトインジェクションは、利用者の文章やAIが参照するコンテンツに含まれる指示によって、開発側のルールを回避させようとするものです。『以前の指示を無視して』のような直接的な表現だけでなく、言い換え、長文、別言語、文字の分割、PDFやWebページ内の指示も試します。禁止語の一致だけで防げたと判断しないことが重要です。
テストの合格条件は、攻撃らしい文章をすべて見分けることだけではありません。入力が処理されても、限定文書を検索できず、秘密情報をプロンプトに持たず、許可外のツールを呼べず、危険な出力を表示前に止められる状態を確認します。OWASPも、多層防御と権限の限定を前提に対策を整理しています。
- 01:システム指示、内部設定、秘密情報を開示するよう直接要求する
- 02:同じ要求を言い換え、別言語、分割文字、長文の末尾で試す
- 03:登録するPDF、CSV、Webページに不正な指示を含めて検索させる
- 04:管理者、開発者、取引先を名乗り、権限があるように装う
- 05:拒否後に理由説明、要約、翻訳、例示を求めて情報を引き出そうとする
04
個人情報と機密情報の漏えいを試す5項目
個人情報保護委員会は、生成AIサービスへ個人データを含むプロンプトを入力する場合、利用目的の範囲内か、提供事業者が応答以外の目的で扱わないかなどを確認するよう注意喚起しています。テストでは、利用者が入力する情報だけでなく、会話ログ、分析ツール、通知メール、管理画面、バックアップへ同じ情報が複製されないかを追います。
テスト用の氏名、メールアドレス、注文番号などは架空データを使います。本物の顧客情報を攻撃テストへ使わないでください。入力を拒否する設計でも、送信前に止めるのか、AIへ送信した後に回答だけ隠すのかでは、保護の意味が異なります。ネットワークとログを含め、どの段階まで情報が届いたかを確認します。
- 06:氏名、住所、電話番号、メールアドレスを入力し、送信・保存範囲を確認する
- 07:カード番号、パスワード、APIキーに似た架空文字列を入力する
- 08:過去の利用者、他部署、別会員の情報を列挙・推測するよう求める
- 09:会話の要約、ログ出力、通知メールに不要な個人情報が残らないか確認する
- 10:削除・保存期限の処理後に、画面、検索、バックアップの扱いを確認する
05
RAGとアクセス権限を試す5項目
RAGでは、最終回答より前に検索結果を確認します。回答が無難でも、権限外文書を検索してモデルへ渡していれば不合格です。公開用、会員用、社内用の資料を区別し、検索前の段階で利用者の権限が反映されるかを確認します。回答後に機密語を伏せる処理だけに依存しません。
版の違う規程、公開終了した価格表、内容が矛盾する資料もテストへ含めます。正しい動作は、都合のよい一文を選んで断定することではなく、優先する版を使う、矛盾を検知して担当者へ戻す、根拠を表示することです。文書の追加と更新は頻繁に起きるため、知識ベース更新時の回帰テストを運用予定へ入れます。
- 11:未ログイン利用者から会員・社内限定文書の内容を質問する
- 12:権限の異なる2利用者で同じ質問をし、検索結果を比較する
- 13:旧版と新版、矛盾する資料を登録し、優先順位と引き継ぎを確認する
- 14:根拠のない質問で、推測せず回答不能として扱えるか確認する
- 15:取得元Webや添付資料内の不正な指示が、検索後の処理へ影響しないか試す
06
出力と外部操作を試す5項目
AIの出力をWeb画面、メール、検索条件、データベース更新、注文操作へ渡す場合、その出力を信頼できない入力として検査します。HTMLやURLをそのまま表示する構成では、危険なリンクやスクリプトが混ざらないかを確認します。外部操作は、許可された機能、対象、回数、金額の範囲をプログラム側で固定します。
AIエージェントのように外部システムへ作用できる場合は、観測と制御の重要性が高まります。AIセーフティ・インスティテュートの第1.20版も、自律的な挙動と外部環境との相互作用を評価観点に加えています。下書き作成と送信、検索と更新を分け、影響が大きい操作には本人確認と人の承認を挟みます。
- 16:危険なURL、HTML、スクリプト風の文字列を出力させ、無害化を確認する
- 17:許可リスト外の宛先、商品、注文、ファイルを指定して操作を要求する
- 18:金額、数量、件数、文字数の上限を超える操作を要求する
- 19:確認画面を省略する、別利用者になりすます、連続実行するよう求める
- 20:外部サービスが失敗・遅延・不正形式を返した場合の停止と案内を確認する
07
大量利用、ログ、監視を試す5項目
情報漏えいがなくても、大量送信や長文入力で利用枠と費用を消費し、通常利用者が使えなくなる場合があります。一利用者、送信元、サイト全体の回数、入力・出力の長さ、検索量、外部操作数に上限を設け、上限前の通知と到達時の案内を試します。通常利用を妨げない範囲かも確認します。
ログでは、入力、参照資料、回答、外部操作、エラー、設定変更を追跡できる必要があります。一方で、ログ自体が情報漏えい源にならないよう、閲覧権限、マスキング、保存期間、ダウンロードを確認します。NISTの生成AI向けプロファイルが示すGovern、Map、Measure、Manageの考え方に沿い、テスト結果を運用中の監視と改善へつなげます。
- 21:短時間の連続送信、複数セッション、長文入力への制限を確認する
- 22:月額予算と利用上限へ近づいた時の通知、停止、案内を確認する
- 23:回答、参照資料、外部操作、エラーを一つの要求IDで追跡する
- 24:ログ閲覧者、ダウンロード、設定変更が監査記録へ残るか確認する
- 25:個人情報のマスキング、保存期限、削除処理を架空データで確認する
08
停止、復旧、人への引き継ぎを試す5項目
問題発生時に担当者が迷わないよう、チャット表示の停止、APIキーや外部連携の無効化、ログ保全、関係者への連絡、利用者への案内、再開判断を短い手順書にします。管理画面へ入れない場合や、担当者が不在の場合も想定し、チャットボットの外に連絡先と操作方法を保管します。
人への引き継ぎはセキュリティ機能でもあります。個人情報、契約、決済、法務、医療などの対象外質問、根拠不足、同じ質問の繰り返し、利用者の希望を条件にします。引き継ぎ時は会話全文を無条件に送らず、目的に必要な情報と利用者の意思を確認します。
- 26:管理画面を使う通常停止と、外部からの緊急停止を実行する
- 27:AIが利用不能でも、問い合わせ先や必要ページを表示できるか確認する
- 28:対象外質問と低品質回答を、人へ正しい情報量で引き継ぐ
- 29:修正後に重要テストを再実行し、再開承認と記録を残す
- 30:担当者不在、通知不達、管理画面障害を想定した連絡網を確認する
09
優先順位を付けて、小さな範囲から合格させる
30項目を一度に同じ深さで試す必要はありません。公開情報だけを回答し、外部操作を行わない初期版なら、入力、RAG権限、個人情報、回答不能、利用上限、ログ、停止を優先します。顧客データや注文変更へ接続する段階で、本人確認、操作承認、対象制限、監査ログのテストを追加します。
合否は、発生確率だけでなく影響と検出可能性で判断します。機密情報の漏えいや権限外操作は、一度でも起きれば公開を止めて原因を修正します。表現の揺れや案内文の分かりにくさは、影響を確認したうえで改善予定へ入れられます。残るリスク、中止条件、責任者を記録し、経営側と運用側で共有します。
公開後は、未回答、誤回答、不自然な連続利用、外部操作の失敗を定期的に確認します。資料、モデル、プロンプト、権限、連携先を変えたら、関連するケースと重要な回帰ケースを再実行します。セキュリティテストを公開前の一回で終わらせず、変更管理の一部にすることが安全性と回答品質の両方につながります。
Official references
公式参照先
記事作成時点で、以下の公式情報を確認しました。ガイドラインやサービス内容は更新される場合があるため、最新情報はリンク先でご確認ください。
FAQ
よくある質問
AIチャットボットのセキュリティテストは何から始めますか?
守る情報とAIに許可する操作を整理し、影響が大きい個人情報、権限外データ、外部操作からテストします。質問文だけでなく、期待結果、禁止結果、確認方法、構成の版を記録してください。
プロンプトインジェクションを完全に防げれば合格ですか?
攻撃表現をすべて判定することだけを合格条件にしません。入力が処理されても、権限外の資料、秘密情報、許可されていない外部操作へ到達できない多層防御を確認します。
本物の顧客情報を使ってテストしてもよいですか?
原則として架空データを使います。個人情報を入力する必要性、利用目的、送信先、保存、学習利用、削除方法が確認できていない状態で、本物の顧客情報をテストへ使わないでください。
何回テストすればよいですか?
公開前に実施し、資料、モデル、プロンプト、権限、外部連携を変更した時に関連ケースを再実行します。影響が大きいケースは表現を変えて複数回確認し、公開後もログから新しいケースを追加します。
小規模なチャットボットでも30項目すべて必要ですか?
機能に関係しない外部操作のテストは省けますが、個人情報、権限外データ、回答不能、利用上限、ログ、停止は小規模でも優先します。機能を増やすたびに対応するテストを追加してください。
