🛡️

脆弱性診断はもう外注しなくていい ― ただし「独立性」だけは買い続ける理由

に公開

脆弱性診断員をやっていると、ある感覚に気づきます。
本当は、脆弱性を見つけることを期待されていない。
見つけた脆弱性が長く放置されることはザラで、そもそも見つけた後に直すリソースやフローが整っていないことも多いのです。
発注側に回って、それが診断員個人の問題ではなく構造の問題だと分かりました。
AIで内製診断を回すようになって、その構造と、内製なら何が変わるかの輪郭がはっきりしたので書いておきます。

外注診断の4つの構造的限界

1. ある時点しか見られない(スナップショット)

外注診断は「ある時点のコード」に対して行われます。診断開始時に固定したコミットを見るので、その後の修正は反映されません。逆に、診断中に環境へ未反映の修正があれば、すでに直したものを「指摘」として受け取ることになります。診断結果と現コードの乖離は、運用フロー(環境ブランチの反映遅延など)が挟まるほど広がります。

2. 契約範囲しか見ない

スコープ外は見ません。当然ですが、攻撃者はスコープを尊重しません。

3. やる気に依存する

診断の成果は「何も無いことの証明」に振れやすいです。深く掘っても「問題なし」が顧客の望みで、横展開のような地道な作業は手を抜いても短期的にはバレません。成果が"不在の証明"である以上、誠実な仕事かどうかを外から見分けられません。これは個々の診断員の資質というより、契約構造として手を抜きやすい側に力が働きやすい、という話です。さらに、見つけた脆弱性が長く修正されないことも珍しくありません。直す側のリソースやフローが整っていないと、診断は「出して終わり」になり、見つける側の本気度も少しずつ削がれていきます。

4. 横展開しない

1件見つけても、「同じ仕組みの穴が別機能に眠っていないか」まで追うかは、診断者の練度とやる気次第です。単発の指摘で終わると、本質的な原因(たとえば認可チェックの設計欠如)が、まとまった一群として潰されません。

当事者+AIだと、これが反転する

内製で、かつAIを併用すると、上の4つがほぼ裏返ります。

  • ある時点ではなく継続 ― コードに常時アクセスできるので、診断時点の固定が要りません。PRごと・コミットごとに回せます。たとえばPR差分に静的解析と認可ロジックのレビューを当て、新設したエンドポイントには既知の脆弱性パターンを回す、といった粒度です。
  • 範囲は自分のシステム全部 ― 契約境界がありません。
  • 契約由来の力学が働かない ― 自分の家を守る話なので、横展開まで自然に手が伸びます。外注の「契約範囲をこなす」力学がありません。
  • AIは横展開の作業に向く ― 1つの脆弱性パターン(認可不備、インジェクションなど)を人間が言語化すれば、それを全エンドポイント・全mutationに当てる作業を、AIは飽きずにこなします。ただし「正常な権限設計か、例外か」の判定は文脈依存で、誤検知・見落としは残ります。AIが候補を網羅的に挙げ、人が確定する ― この分担が現実的です。

コードの網羅・横展開という軸では、当事者+AIが外注に負ける構造的な要因は多くありません。

見つけて終わりにしない ― 中に人がいる効果

内製のもう一つの効果は、診断そのものより大きいかもしれません。セキュリティの知見を持つ人が開発の中に居続けて改善を回すと、開発部門の意識が変わります。指摘が「外から来る面倒な宿題」ではなく「中の人と一緒に直すもの」になり、やがて同じ穴が作り込まれる前に潰れるようになる。冒頭で書いた「見つけても直らない」問題は、ここで構造的に解消されます。

これは一過性の研修では代替できません。研修は知識を渡せても、日々のコードレビューや設計判断に継続的に介入することはできないからです。中に人がいることの価値は、知識の伝達ではなく、判断の場に居合わせ続けることにあります。

ただし、内製+AIには原理的な穴がある

「じゃあ外注は要らない」とはなりません。内製+AIには、消せない弱点が一つあります。独立性です。

当事者+AIは、「自分が想定した範囲と脅威モデル」の中で網羅的になります。裏を返すと、想定していない攻撃面は、当事者自身にも、当事者が前提を与えるAIにも、等しく見えません。自分の盲点は、自分では定義できないのです。

しかも内製+AIは、盲点を埋めるどころか強めがちです。AIには当事者が脅威モデルを与えるので、当事者に見えていない攻撃面はAIにも渡らず、「網羅したつもり」の確信だけが増幅されます。

第三者診断の本質的な価値は、法的要件でも工数でもなく、作った人と違う前提を持った目が入ることにあります。ここは内製+AIでは完全には代替できません。

診断の「形」が変わる

なので、結論はこうなります。

  • 外注の「年1回まとめて診る」モデルは、セキュリティ品質の主軸ではなくなります(PCI DSSのような規制・契約・保険の要件としては残ります)。
  • 診断の主軸は「当事者+AIの継続診断(内製)」に移ります。
  • 第三者は消えません。ただし役割が変わります ― 量をこなす作業者ではなく、頻度を落とした"外の目"として、内製が定義していない範囲や、脅威モデルの前提そのものを問い直す役になります。

「業者が要らなくなる」のではなく、「業者の役割が変わる」。診断を内製で回せる体制を作り、第三者は独立性のためだけに薄く残す ― この形が、コスト・網羅性・独立性のバランスとして合理的だと思っています。


こうした内製診断の設計や、AIでの継続診断の組み込みは SecScanPro でやっています。相談ベースでも。

Discussion