OWASP Top 10 をAIで自己診断:自社コードに回した記録

株式会社ペンタコン研究所 PentaTrail開発チーム···5分で読める
目次

ソースコードを読んで脆弱性を見つける Anthropic の最上位モデル、Fable 5 が戻ってきました。

ソースコードを持つ者だけの最先端AI で書いたとおり、この Fable 5 / Mythos は輸出規制で一度止まっていました。それが、また使えるようになりました。

そこで、さっそく PentaTrail のコードベースへ OWASP Top 10 の自己診断を回しました。この記事は、その実際の記録です。

実施手法

OWASP Top 10 の10観点を、6体のエージェントに手分けさせて並列で走らせ、Critical / High / Medium / Low で指摘させました。 1体に「全部見て」と頼むより、観点を絞って役割を固定したほうが、精度が上がって見落としが減ります。

  • 静的診断:外から叩くブラックボックス検査ではなく、直近の修正まで反映した最新のソースコード(画面・API・データベース定義・スキャナ)を、そのまま読ませる方式です。
  • 並列・バックグラウンド実行:6体を同時に走らせ、終わったものから結果を回収して突き合わせます。
  • 深刻度で分類:各指摘を Critical / High / Medium / Low の4段階に仕分けさせます。

各担当には、共通の掟を渡しました。実在する場所(ファイルと行)の根拠を必ず付ける。想像で書かない。同じパターンは1か所直して終わりにせず、全部を洗う。 6体は互いの結論を見ません。同じコードを別々の角度から独立に見ます。一人の点検者を賢くするより、視点を増やして重ねるほうが、地味な見落としに強いからです。

10観点をどう割ったか

OWASP Top 10 は、Web アプリで起きやすい弱点を10の型にまとめたものです。

  • 担当①(アクセス制御 A01・認証 A07):他人のデータを覗けないか、なりすませないかを見ます。
  • 担当②(暗号 A02・整合性 A08):秘密の置き忘れや、改竄・供給の信頼を確かめます。
  • 担当③(インジェクション A03):SQL・画面・命令への注入を探します。
  • 担当④(安全でない設計 A04・ログと監視 A09):業務ロジックの穴や、気づけない・追えない状態を見ます。
  • 担当⑤(設定ミス A05・古い部品 A06):ヘッダや許可の緩さ、既知の弱点が残る依存を洗います。
  • 担当⑥(SSRF A10):サーバーに内部へ通信させる細工を調べます。

「見つけた」で止めない:実データで裏を取る

AI が「これは危ない」と言っても、それは仮説にすぎません。自己申告の「確認済み」を額面どおり数えると、たいてい水増しになります。

大事なのは、過去の変更履歴(差分)ではなく、いまその瞬間の状態を見にいくことです。権限の設定、関数の中身、鍵が本当に無効になっているか。それを推測ではなく、事実で確定させます。実際、今回も「危なそう」に見えた指摘のいくつかは、実データベースに問い合わせた結果、すでに正しく閉じている、あるいはすでに無効化済みと分かって落ちました。ここを飛ばすと、塞いだつもりの穴が残ります。

結果:Critical / High / Medium / Low で

OWASP Top 10 Critical High Medium Low 中身(ぼかし)
A01 アクセス制御 0 0 0 0 契約(テナント)の境界と権限。実DB照合でも越境なし、指摘ゼロ
A02 暗号の失敗 0 0 0 2 秘密情報の取り回しを、より厳格な運用へ寄せる上乗せ
A03 インジェクション 0 0 0 1 外部由来の入力を扱う箇所の防御を、念のため一段ぶ厚く
A04 安全でない設計 0 0 0 3 想定外の使われ方への耐性と、失敗時に安全側へ倒す詰め
A05 設定ミス 0 0 2 4 ヘッダやアクセス許可の既定を、より締まった側へ寄せる調整
A06 古い・脆弱な部品 0 0 1 1 一部の依存部品を、より新しい版へそろえる
A07 認証の不備 0 0 0 0 パスキー中心の認証まわりは健全、指摘ゼロ
A08 整合性の失敗 0 0 1 1 取り込むデータや実行物の"出どころ"の確からしさを高める
A09 ログと監視 0 0 0 2 記録の匿名化と、本番で余計な情報を残さないための調整
A10 SSRF 0 0 1 2 サーバーの外向き通信の経路を、より厳密に固定する徹底
合計 0 0 5 16

Critical と High は、どの観点でもゼロでした。 残ったのは Medium が5件、Low が16件。いずれも多層防御をもう一段厚くするための"上乗せ"で、悪用できる致命傷ではありません。指摘は、いずれも即日修正しました。

穴が出ないことより、見つけ続けられること

話題になっているだけあって、指摘の深度も内容も、性能を裏付ける結果でした。大事なのは穴が出ないことではなく、穴を仕組みで見つけ続けられるかです。だから、この診断を定期的に回す仕組みを、これから実装します。

開発まわりの他の記事は dev カテゴリ にまとめています。

同じ AI で、自分たちのコードだけでなく、外から見える会社の攻撃面も継続的に点検しています。それを製品にしたのが、PentaTrailです。

PentaTrail / CTEM を見る

PentaTrail CTEM/ASMで攻撃面を可視化しませんか?

CTEMフレームワークに基づき、外部攻撃面の発見から脆弱性検証・対応推進までを一気通貫で実現します。

お申し込みはこちら

料金を見る/他サービスとの比較・選び方