コラム

脆弱性診断とペネトレーションテストの違い。AIで攻撃が続く時代に必要な検査とは

  • 脆弱性診断
  • ペネトレーションテスト
  • セキュリティ診断
  • APIセキュリティ
盾で守られたWebアプリケーションの画面を、左側でエンジニアが虫眼鏡で点検し、右側ではAIエージェントのロボットが盾のすき間を点線でたどって試している。上には時計があり、攻撃が24時間続くことを示している

セキュリティ診断の需要が増えてきています。さまざまな企業で、セキュリティ対策の委託を検討することも増えているのではないでしょうか。

この記事では、脆弱性診断とペネトレーションテストの違いに触れつつ、実際に導入する際のポイントについて解説していきます。

脆弱性診断とは

脆弱性診断(セキュリティ診断)とは、システムに潜む脆弱性を、決められた項目に沿って網羅的に洗い出す検査です。 自動診断ツールとエンジニアの手作業を組み合わせ、既知の脆弱性や設定の不備、ログインや権限の確認漏れ(認証・認可の不備)がないかを一つずつ調べます。

脆弱性診断のイメージ。Webアプリケーションの画面やAPI、サーバーを並べた一覧を、虫眼鏡で端から順に確かめ、項目ごとにチェックや警告の印を付けている。横ではエンジニアがチェックリストで進み具合を確認している

対象によって、いくつかの種類に分かれます。

  • Webアプリケーション診断: 画面や API に不正な入力を送り、想定外の動きをしないか、他人のデータを見られないかを確かめます
  • プラットフォーム診断: サーバーやネットワーク機器の設定、古いソフトウェアが残っていないかを確かめます
  • ソースコード診断: プログラムや利用しているライブラリを読み、危険な書き方や既知の脆弱性を含む部品を探します

結果は、弱点の一覧と危険度、再現手順、対策をまとめた報告書で受け取ります。

ペネトレーションテストとは

一方で、ペネトレーションテスト(侵入テスト)は、特定のターゲットに対して実際に攻撃を試みることで、その目的を達成できるか(侵入やデータ奪取などが可能か)を検証するものです。

「顧客データを持ち出せるか」「管理者の権限を奪えるか」といった目標を置き、ホワイトハッカーと呼ばれる専門のエンジニアが、事前に合意した範囲と期間の中で攻撃を試みます。

ペネトレーションテストのイメージ。エンジニアがライトを手に、盾のすき間から2枚の壁を抜けて、データを収めた金庫まで続く1本の経路をたどっている。網羅的に調べるのではなく、目的に向かって深く入り込めるかを確かめる様子を表している

脆弱性診断とペネトレーションテストの違い

2つの違いは、弱点を網羅的に洗い出すのか、実際に侵入できるかを確かめるのかという目的にあります。 目的・範囲・成果物などの観点で整理すると、次のようになります。

観点 脆弱性診断 ペネトレーションテスト
確かめる問い どこに弱点があるか 攻撃者は目的を達成できるか
進め方 決められた項目を網羅的に検査する 目的とシナリオを決めて侵入を試みる
範囲 対象のシステム全体を広く見る 目的に関わる経路を深く見る
主な手法 自動診断ツール + 手作業の確認 専門のエンジニアによる擬似攻撃
成果物 弱点の一覧・危険度・対策 侵入の経路・到達した範囲・想定される被害
向いている場面 リリース前、大きな改修のあと、定期点検 重要なデータを扱うシステム、対策を一通り終えたあとの確認
費用と期間 範囲が決まれば見積もりやすい シナリオの数と深さで大きく変わる

これからのセキュリティ対策に何が必要か

これまでは、リリース前や年1回の脆弱性診断で既知の弱点をふさいでおけば、一定の対策になっていました。しかし近年は、攻撃に使えるAIが安価で高機能になり、攻撃を24時間365日続けることもできるようになってきました。小さな弱点をいくつもつなぎ合わせる攻撃や、正規の機能を想定外の順番で使う攻撃は、もともと決められた項目を検査する脆弱性診断では見つけにくいものです。 AIによってこうした攻撃が試される回数が増えるほど、診断で見落とした問題を突かれるリスクは大きくなると、弊社は見ています。攻撃の動向は「AI攻撃の自動化で増えるセキュリティ事故と、APIの脆弱性診断」で詳しく解説しています。

そのため弊社では、脆弱性診断に加えて、攻撃者の目線で実際に侵入を試すペネトレーションテストのような、より積極的な検査が必要になってきていると考えています。あわせて、システムを運用する一人ひとりが、どんな機能を追加したら診断に回すべきか、報告書に書かれた危険度をどう読むかを判断できるよう、基礎的な知識を更新し続ける必要があります。

表の「向いている場面」に挙げたシステムのほか、取引先や業界の基準で侵入テストの実施を求められている場合も、ペネトレーションテストを早めに検討します。

診断を導入するときのポイント

診断を外部に依頼する前に、次の4つを社内で決めたり依頼先に確認したりしておくと、スムーズに意思決定できます。

1. 守るべきデータと機能を洗い出す

顧客情報、決済、管理画面など、漏れたり悪用されたりすると困るものを書き出します。これで検査の優先順位と、ペネトレーションテストの目的が決まります。

2. 検査の範囲を決める

画面だけでなく、裏で呼び出される API、管理画面、外部サービスとの連携まで含めるかを決めます。画面に出ていない API は見落とされやすく、攻撃の入り口になりやすい場所です。 AIで作ったアプリや、外部の開発会社から納品されたシステムは、社内に仕様を説明できる人がいなければ、どこに弱点がありうるかを社内だけでは判断できないため、範囲から外さないようにします。

3. サイクルや対応範囲を確認する

依頼先を比べるときは、診断を1回きりで終えるのか、定期的に繰り返せるのかというサイクルを確認します。あわせて、Webアプリケーション・API・サーバーのどこまでを対象にできるか、脆弱性診断とペネトレーションテストの両方に対応しているかといった対応範囲も確認しておきます。

4. 修正まで頼める依頼先かを確かめる

診断で指摘された問題を誰が直すかを、検査の前に決めておきます。システムを作った会社と診断する会社が別で、修正の担当を決めていなければ、報告書が届いても誰も直さないまま残ります。依頼先の会社を選ぶときは、報告書を渡して終わりなのか、修正の方針づくりや実装、再診断まで対応できるのかを確かめておくと安心です。

まとめ

  • 脆弱性診断は弱点を広く網羅的に洗い出し、ペネトレーションテストは目的を決めて侵入できるかを深く確かめる
  • AIが安価で高機能になり、攻撃が24時間365日続くいま、脆弱性診断だけでなく、ペネトレーションテストのような積極的な検査が必要になっている
  • システムを運用する一人ひとりが、セキュリティの基礎的な知識を積極的にアップデートしていく
  • 依頼先は、診断のサイクルや対応範囲を確認して選ぶ
  • 検査は直す作業ではないため、修正と再診断まで頼める依頼先を選んでおく

弊社の「マルゴト DXセキュリティ」では、御社のWebアプリケーションやAPIの脆弱性診断とペネトレーションテストを実施できます。見つかった問題の修正から再診断まで一貫して支援しています。診断の対象や進め方は、マルゴト DXセキュリティの相談窓口からご相談いただけます。

ライター

feeed編集部 / フィード株式会社

フィード株式会社のコラム編集部です。PoC開発・新規事業開発・受託開発の現場で得たことを、発注する側の判断に役立つ形で書いています。

自社に必要な診断の範囲から、一緒に整理しませんか?

弊社では、WebアプリケーションやAPIの脆弱性診断とペネトレーションテストの両方に対応し、診断で指摘された問題の修正から再診断までを支援しています。どの手法を選べばよいか決まっていない段階から、お気軽にご相談ください。

関連記事