What is AI Vulnerability Assessment

AI脆弱性診断とは

AI脆弱性診断とは

AI脆弱性診断(AI診断)は、AIエージェントが対象システムを広く調べ、脆弱性や設定の不備を洗い出す診断です。「どこに、どんな弱点があるか」を把握し、修正の優先順位をつけるために行います。

コクチョウのAI脆弱性診断では、当社で開発した診断ツールと、それを動かす診断パイプラインを使います。AIエージェントがツールを実行して結果を読み、次に調べる箇所を自ら決めながら診断を進めます。エンジニアは診断の範囲と優先順位を定め、検出された結果を確認・評価します。ソースコードをあわせてご提供いただくと、AIエージェントがコードと実際の動作を照らし合わせて診断できるため、最も効果を発揮します。

なお、本ページの「AI脆弱性診断」は、AIを診断の手段として使う診断を指します。LLMアプリケーションなど、AIシステムそのものの安全性を確かめる診断とは異なります。

AI脆弱性診断の進め方の例当社開発のツールでAPIを洗い出したあと、AIエージェントが「IDを変えると他のユーザーの注文も見えるのでは」と仮説を立て、IDを書き換えたリクエストで別のユーザーの注文が返ることを確かめ、エンジニアが再現性と影響範囲を確認して報告書に載せる架空の例。診断の進め方(例:他のユーザーの注文が見えてしまう問題)結果を見て、次の仮説へ01 ツールで調べる当社開発のツールでAPIを洗い出すGET /orders/1001自分の注文が返る02 仮説を立てるIDを変えると、他のユーザーの注文も見えるのでは?03 追加で検証するIDを書き換えてリクエストを送るGET /orders/1002別のユーザーの注文が返る04 エンジニアが確認再現性と影響範囲を確かめ、重要度を判断して報告書へAIエージェントが自ら進めるエンジニアが判断する

横にスクロールすると図の全体を確認できます

診断の進め方の例。ツールの結果からAIエージェントが仮説を立てて追加の検証を行い、エンジニアが確認・評価してから報告書に載せます(各ユーザーが自分の注文だけを閲覧できる仕様を想定した、架空の例です)。

自動診断ツール・手動診断との違い

脆弱性診断の方法は、大きく3つに分けられます。自動診断ツールは、既知の攻撃パターンを機械的に送り、反応から脆弱性を判定します。短時間で広く調べられる一方、判定は決められたパターンの範囲に限られます。業務の流れや権限の設計に関わる問題は見つけにくく、誤検知の確認も利用者に任されます。

手動の脆弱性診断は、エンジニアが仕様を理解したうえで、一つずつ確かめます。業務ロジックや権限の不備まで調べられますが、対象が大きいほど時間と費用がかかります。

AI脆弱性診断は、この間を埋めます。AIエージェントはツールの結果を読み、画面やAPIのつながりから「この操作は他のユーザーのデータにも使えるのではないか」といった仮説を立てて、追加の検証を自ら行います。決められたパターンだけでは届かない箇所まで、人手より速く調べられます。最終的な判断は、エンジニアが仕様に照らして行います。

項目AI脆弱性診断自動診断ツール手動の脆弱性診断
調べ方AIエージェントがツールの結果から仮説を立てて検証決められたパターンを送って判定エンジニアが仕様を理解して確認
速さ速い速い時間がかかる
業務ロジック・権限の問題仮説を立てて調べられる見つけにくい調べられる
誤検知の確認エンジニアが行う利用者が行うエンジニアが行う
向いている使い方広い範囲を短期間で、業務ロジックまで確認定期的な機械チェック重要な機能の深い確認

横にスクロールすると表の全体を確認できます

同じ期間で確認できる範囲の比較(イメージ)同じ期間で確認できる範囲(イメージ)1マス=対象システムの機能ひとつ手動の脆弱性診断深いが、一部の機能だけ自動診断ツール広いが、既知のパターンのみAI脆弱性診断広く、業務ロジックまでAI脆弱性診断+コードコード内部の処理まで</></></></></></></>未確認既知のパターンのみ業務ロジック・権限まで</>コード内部の処理まで

横にスクロールすると図の全体を確認できます

同じ期間で確認できる範囲のイメージ。マスの数は実測値ではなく、各方法の傾向を示しています。

AIで確認する観点

対象ごとに、主に次の観点を確認します。範囲は対象システムの状況を伺ったうえでご提案します。

対象主な確認の観点
Webアプリケーション・API認証とセッションの扱い、他のユーザーのデータや機能に触れられないか(認可)、入力値の扱い(インジェクションなど)
クラウドIAMの権限の広さ、ストレージやサービスの公開設定、ネットワークの構成
スマートフォンアプリアプリ本体(データの保存・通信・認証・解析への耐性)と、アプリが通信するAPI
ネットワーク外部に公開されているサービスと、その設定

ソースコードとあわせた診断で、効果を最大限に引き出す

AI脆弱性診断は、ソースコードとあわせて診断すると最も効果を発揮します。AIエージェントがコードと実際の動作を照らし合わせられるため、外からは見えない処理や、権限の確認が抜けている箇所に、的を絞って仮説を立てられます。見つかった問題の原因をコードの該当箇所まで示せるので、エンジニアによる確認の精度が上がり、修正にも取りかかりやすくなります。

ソースコードを開示できない場合も、外部の攻撃者と同じ条件で診断できます(ブラックボックス診断)。開示いただける範囲に合わせて、組み合わせをご提案します。

ソースコードと実際の動作を照らし合わせる例ユーザーAがユーザーBの注文を取得できてしまう動作と、返却前に閲覧権限を確認していないコードを照らし合わせ、原因となる処理と修正方針を示す架空の例。ソースコードと実際の動作の照合(例)ソースコード(注文の取得処理・簡略化した例)async function getOrder(req) { const order = await db.order .findById(req.params.id) return order}▲ 返却前に、注文の閲覧権限を確認していない実際の動作ユーザーAとしてリクエストGET /orders/1002レスポンス200 OK:ユーザーBの注文が返る他のユーザーの注文を取得できてしまうAI報告書の対策例:原因となる処理と修正方針原因:注文を取得する処理で、返却前に注文の閲覧権限を確認していない対策:サーバー側でログイン中のユーザーと注文の持ち主を照合し、一致しない場合は注文を返さない

横にスクロールすると図の全体を確認できます

この例では、実際の動作とコードを照らし合わせ、閲覧権限の確認が抜けている処理と修正方針を示しています(各ユーザーが自分の注文だけを閲覧できる仕様を想定した、架空の例です)。

報告書の内容

報告書には、確認できた脆弱性ごとに、重要度と影響、対策をまとめます。修正後は、必要に応じて再診断で対策の効果を確かめます。

AIペネトレーションテストとの使い分け

「どこに、どんな弱点があるか」を広く把握したいならAI脆弱性診断、「攻撃者はどこまで侵入できるか」を確かめたいならAIペネトレーションテストが向いています。両方を組み合わせることもできます。

AIペネトレーションテストの仕組みや、ローカルLLMによる機密性の確保については、ページ下部のリンクからAIペネトレーションテストの解説をご覧ください。

よくあるご質問

Aツールによる定期的なチェックは有効です。AI脆弱性診断は、ツールでは見つけにくい業務ロジックや権限の問題まで調べ、結果をエンジニアが確認する点が異なります。両方を併用できます。

診断の相談はこちら

AI脆弱性診断の導入を検討されている方は、まずはお気軽にご相談ください。

AIペネトレーションテストの仕組みについては、AIペネトレーションテストの解説をご覧ください。