AIコーディングエージェントが不適切なアクセス制御を繰り返し実装する理由
2026年10月1日
0 分で読めますAIコーディングエージェントは、
この
不適切なアクセス制御とは?
不適切な
1. BOLA:オブジェクトレベル認可の不備
BOLAとは、
2. IDOR:安全でない直接オブジェクト参照
IDORとは、
OWASPは
AIコーディングエージェントが認可を誤ることが多いのはなぜ?
ソフトウェア開発は
認可要件が
こうした
修正には
コードだけでは修正方法が分からない理由
2つ目の
請求書は
組織に 属している。 ユーザーの
アクセス範囲は、 所属する 組織に 限定されている。 この
製品では、 組織を またいだ読み取りは 決して 許可されない。
別の
代わりにレビュー担当者が確認すべきこと
その
レビューで
SASTツールで不適切なアクセス制御を検出できますか?
パターンが
対照的な
不適切なアクセス制御のうち、静的解析でカバーできるもの
不適切な
検出範囲の境界
解析が
これを
決定論的エンジンと
パターンのない欠陥をどう見つける?
目の前の
請求書の
信頼できる
推論は、
その モデルに 基づいて行う 必要が あります。モデルが なければ、 最先端の 推論は 一部を 想像で 補った コードベースに ついて、 もっと もらしい 検出結果を 出し、 無差別な スキャンに トークンを 浪費します。 検出結果は、
生成した ものとは 別の 仕組みで 確認する 必要が あります。脆弱性を 見つけた エージェントに 自ら 修正を 検証させても 信頼できません。 また、 自分の 出力を 自分で 評価する システムでは、 解析で 見落とした 問題が そのまま 残ります。 修正は
提案するだけでなく、 立証する 必要が あります。1行の 修正が アプリケーションの ルールに 照らして 検証され、 コードが 変更されても 有効である ことを 示さなければなりません。 修正が マージされないままの 検出結果では、 エンドポイントは 依然と して 脆弱なままです。
組み立てた
今、チームで取り組むべきことは?
まずは、
リクエストから
オブジェクト識別子を 受け取る エンドポイントを 洗い出す。URLや 本文から ID、 ファイル名、 キーを 受け取る すべての ルートが 候補です。 この リストは、 チームが 予想するより 短いことも、 期待するより 長いこともあります。 所
有権の ルールを 書き出す。リソースの 種類ごとに、 何に 属するのか、 誰が 読み取りや 変更を できるのかを 記録します。 認可の 欠陥が レビューで 見逃されるのは、 レビュー担当者や 解析ツールが 確認できる 場所に、 こうした 情報が 書かれていないからです。 エージェントが
作成した プルリクエストの レビュー項目に、 認可を 明示的に 加える。「注意深く レビューする」と いう 一般的な 指示ではなく、 具体的に 確認します。 この エンドポイントは、 呼び出し元が 対象オブジェクトへの アクセス権を 持つか 確認しているか? どの フィールドを 使って 確認しているか? リソースの
種類ごとに、 テナントを またぐ テストを 追加する。OWASPの 予防ガイダンスは 明確です。 開発者と QA担当者は、 ユニットテストと 統合テストに 機能的な アクセス制御テストを 含めるべきです。 リソースごとに 1つ、 ある テナントの 有効な セッションで 別の テナントの オブジェクトに アクセスすると 404が 返る ことを 検証する テストを 追加すれば、 ステップ2で 書き出した ルールを 継続的に 適用できます。 コードベース全体に
対する 詳細な 解析を 定期的に 実行する。制御の ポイントは 3つに 分かれています。 エージェントの 内部ループでの リアルタイム制御、 CIで 変更の たびに 実行する 高速な 決定論的スキャン、そして コードベース全体を 対象と する 詳細な コンテキスト解析です。 オブジェクトレベル認可の 欠陥は、 3つ目で 明らかに なります。
今日、
よくある質問
どちらも同じ不具合を異なる視点から表したものです。BOLAは、リクエストしたユーザーが特定のオブジェクトにアクセスする権限を持つか、アプリケーションが確認していないという制御の欠如を指します。IDORは、悪用を可能にする露出を指します。つまり、内部識別子がクライアントから見え、変更できる状態です。通常、1つのバグが両方に該当します。
一部は可能です。静的解析は、このカテゴリーに含まれるパストラバーサル、オープンリダイレクト、サーバーサイドリクエストフォージェリなどを適切に検出できます。また、セマンティックエンジンは、コードベース内のほかの箇所では適用されている認可デコレーターが欠けているルートを警告できます。一方、認可チェックが適切かどうかは判断できません。どのフィールドが所有権を表すか、また製品としてテナント間のどの読み取りを許可する想定なのかによって異なるためです。
発生頻度が高く、影響も大きいためです。2025年版では、テスト対象となったすべてのアプリケーションで何らかの形で確認され、他のどの項目よりも多く発生しました。1つの不備によって、特定の種類のレコードが1件だけでなく、すべて漏えいすることも少なくありません。
その仕組みは明らかです。エージェントはプロンプトとその周辺コンテキストからコードを生成しますが、認可チェックが必要となる根拠となる情報は、どちらにも含まれていません。この仕組みほど測定結果は十分ではありません。公開されているAI生成コードのセキュリティに関する研究の多くは、正解を自動判定できるカテゴリであるインジェクション、クロスサイトスクリプティング、暗号の誤用を検証しているためです。全体的な傾向は十分に裏付けられている一方、カテゴリごとの具体的な数値はまだ明らかになりつつある段階と捉えてください。
網羅性を高めながら、3つの方法があります。単一の方法として最も信頼性が高いのは手動テストです。有効なセッションを使って、他のアカウントのオブジェクトにアクセスできるか試します。自動機能テストでは、リソースの種類ごとにテナントをまたぐテストを1つ実施し、コードの変更後もルールが守られるようにします。継続的な動的テストでは、ソースコードからパターンを探すのではなく、各リソースの所有者とアクセス権限をモデル化し、実行中のAPIを外部からテストします。
Evoの
Evoで AIの 導入を 大規模に 安全に 推進
エージェントネイティブな



