脆弱性診断と無料ツール。OSSのツールで調べられる範囲と、手動診断の違い。黒い背景に、ガラスのサーバー群を白い網目が覆い、表面の小さな弱点は赤く光るが、網目の届かない内部の奥に赤い亀裂が残っている。

診断・ASMの選び方脆弱性診断・調査

脆弱性診断は無料ツールで足りる?OSSで調べる範囲と手動診断の違い

無料の脆弱性診断ツールで足りるのは、既知の脆弱性、古いソフトウェア、設定の不備を広く洗い出す部分までだ。

他人のデータを読めるか、申込や決済の手順を飛ばせるかといった権限や業務の流れに関わる弱点は、ZAPの公式文書やOWASPの検査ガイドが自動の検査では見つからないとしている。

ツールが何も検出しなくても、分かるのはツールが届いた画面と、ツールが持つ検査項目の範囲で見つからなかったことだけだ。

無料ツールが調べることと、人が確かめること
無料のツール(自動の検査)
人による手動の診断
調べるもの
既知の脆弱性、古いソフトウェア、設定の不備
権限ごとに見えるデータ、手続きの順番を飛ばせるか
判定の基準
ツールが持つ検査項目に当てはまるか
その業務で何が正しい動作か

無料の脆弱性診断ツールと手動診断の違い

無料ツールは検査項目に当てはまる既知の不備を探し、手動診断は業務上の正しい動作に照らして弱点を確かめる。

デジタル庁は『政府情報システムにおける脆弱性診断導入ガイドライン』で、Webアプリの脆弱性を3つに分けている。仕様に起因するもの(他人のデータを読み書きできる、ID連携の不備でなりすませる等)、実装に起因するもの(SQLインジェクション、XSS等)、ミドルウェア固有のもの(ライブラリやCMSの既知の脆弱性等)だ。

同じガイドラインは、ツールによる自動診断は効率の面で有用だが、仕様に起因する脆弱性は全般に検出が難しいとし、実装の不備でも、作りを深く理解しないと見つからないものは見落とされやすいとしている。

無料・OSSの脆弱性診断ツールの検査対象

主なOSSは、調べる対象がそれぞれ違う(各ツールの公式文書による)。

ツール見つけるもの主な対象
ZAP既知の攻撃を送り、その反応から分かる不備Webアプリ
Nikto設定の不備、既定のファイル、情報の露出などWebサーバー
OpenVAS更新され続ける脆弱性テストの一覧に当てはまる既知の脆弱性ネットワーク上のサーバー・機器
Trivy既知の脆弱性(CVE)、設定の誤り、秘密情報コンテナイメージ、ファイルシステム、Gitリポジトリ、Kubernetes

どれも、ツールが持つ検査項目に当てはまるものを探す仕組みだ。NISTは『情報セキュリティのテストと評価の技術ガイド』で、脆弱性スキャナーはシグネチャの蓄積に頼るため、実行の前に脆弱性データベースを最新にする必要があるとしている。

ログイン後の画面は、設定しないと検査の対象に入らない。ZAPの認証の設定では、ログインの方法、セッションの管理方法、診断用の利用者、ログイン中かどうかを見分ける目印を、使う側が決める。

URLを入れるだけで検査するサービスにも無料のプランがある。ログイン後の画面を調べるか、疑似攻撃を送るかはサービスごとに違い、疑似攻撃を送るなら次の章の許可が要る。

脆弱性診断のツールと手動の結果の違い

ツールの結果を使える形にするには、担い手の違う3つの作業がある。

ツールの結果を使える形にする3つの作業
検査項目に当てはまるか自動検出ツールが報告する。広い範囲を同じ条件で繰り返せる
本物の脆弱性か誤検出の確認詳しい人が判断し、CVSSと自社の環境でのリスクで直す順を決める
権限や手続きの順番を破れないか業務ロジックの検証仕様を知る人が手作業で試す

2つ目について、NISTは同じガイドで、脆弱性スキャナーは存在しない脆弱性を報告する誤検出の率が高いことがあり、詳しい人が結果を解釈すべきだとしている。3つ目について、ZAPのアクティブスキャンの文書は、アクセス制御の不備のような論理的な脆弱性は、自動の検査では見つからないと明記し、手作業のペネトレーションテストを併せて行うよう求めている。

3つ目は、何が正しい動作かを知らないと判定できない。OWASPは『Webセキュリティテストガイド』で、手順の1から3へ飛んだらどうなるか、確認画面へ戻って金額を変えたまま購入を確定できるかといった例を挙げ、ツールには業務の流れを迂回できるかを見分ける手段がないとしている。

ZAPにも利用者ごとに開いてよいページを照合する追加機能があるが、その規則を書くのは使う側で、業務の仕様を知る人の作業が要る。

無料の脆弱性診断ツールを使う際の許可と業務影響

無料ツールでも、疑似攻撃を送る検査は実際の攻撃と同じ通信を送るので、自社のサイトでも関係者の許可が要り、データの変更や停止が起こりうる。ZAPの文書は、アクティブスキャンは対象への攻撃であり、自分が所有していないWebアプリには使わないよう書いている。FAQでは、アクティブスキャンはアプリによってデータを作成・変更・削除しうるとし、許可のないアプリに行えば違法と見なされうると説明している。

脆弱性診断を自分で行う際の実施許可と対象範囲

自社のWebサイトでも、許可を取る相手は社内の担当者だけでは済まない。デジタル庁のガイドラインは、事前に周知して診断してよいかを確かめる相手として、システムの責任者、開発・運用の担当、監視の担当、クラウド事業者などのインフラ提供者を挙げている。

インフラ提供者が禁じている診断項目は行わない。たとえばAWSは、一覧にあるサービスなら事前承認なしで評価してよいとする一方、サービス妨害(DoS)にあたる検査や大量のリクエストの送信を禁じ、検査で他の利用者に与えた損害は検査した側の責任としている。

制作や運用を委託しているサイトでは、委託先とインフラ提供者の両方に、検査してよい範囲を確かめてから始めるのがよいと我々は考える。対象のURLやIPアドレス、検査の種類、日時を書面に残しておくと、後で範囲の食い違いが起きにくい。監視の担当にも、診断元のIPアドレスと日時を伝えておく。

診断による業務影響と停止条件

デジタル庁のガイドラインは、診断で起こりうることとして次を挙げている。

  • 通信帯域の圧迫や、システムのクラッシュによるサービス停止
  • 疑似攻撃の値を含むダミーデータがデータベースに残る
  • 大量のメール送信
  • データの破損や消失、個人情報の意図しない閲覧
  • 監視のアラートの大量発生

対策には、検証環境での診断、本番ならデータのバックアップ、休日・夜間・メンテナンス時間での実施、異常時の連絡の順番の確認を挙げている。NISTも、テストの取り決め(ROE)に連絡先の一覧とテストを止める基準を入れ、スキャナーのDoSの検査を外せるとしている。

検査の前・中・後に確かめること
連絡の順番と止める基準を決めた検査の前検証環境を使う。本番ならバックアップを取り、DoSの検査を外す
止める基準に当たれば止めて連絡する検査中サービスの停止、大量のメール、監視のアラート
不具合が検査によるものかを切り分ける検査の後サイトの表示、データ件数、エラーログを前と比べる

無料の脆弱性診断ツールで足りず外部診断が必要になる条件

権限の種類が複数ある、順番のある手続きがあるといった箇所は、外部診断の対象にする。

政府のシステムの調達要件として、デジタル庁のガイドラインは、サーバーや機器の診断に商用ツールを、Webアプリの仕様に起因する脆弱性などにはツールの誤検出の除去にとどめない人の手での診断を必須にしている。民間への要件ではないが、外部に頼む範囲の目安になる。

自社で検証できない範囲

無料ツールの結果だけで判断が残るのは、次の条件に当てはまる箇所だ。

  • 一般の利用者、管理者、取引先など権限の種類が複数あり、種類ごとに見えるデータや使える機能が違う
  • 申込、決済、ポイント付与、パスワードの再設定など、順番のある手続きがある
  • ファイルのアップロードやID連携を使っている
  • 検証環境がなく、本番でしか試せない
  • 検出結果が本物の脆弱性かを判断できる人が社内にいない

当てはまる箇所を一覧にし、外部診断の対象として切り出す。

外部診断へ引き継ぐツール結果

外部に頼むときは、自社で回したツールの結果を渡す。ISOG-JとOWASP Japanによる『脆弱性診断士(Webアプリケーション)スキルマップ』は、自動診断の結果の精査として、誤検出の確認と、対象の画面で検査が実際に行えたかの確認を挙げている。この2つを自社で済ませて渡せば、外部の診断は自社の検査が届かなかった範囲から始められると我々は考える。

自社が渡すものと、外部の診断が受け持つもの
自社で済ませて渡す
外部の診断が受け持つ
ツール
使ったツールとバージョン、検査項目やシグネチャの更新日
それと違うツール・手法・診断する人を選ぶ
範囲
検査に指定したURLと、実際に届いた画面。ログイン後を含めたか
検査が届かなかった画面、試していない機能
結果
検出された項目と自社の確認結果。誤検出と判断した理由
権限ごとのデータと、手続きの順番を人が試す

デジタル庁のガイドラインは、同じ条件の診断を繰り返すと初回以降は脆弱性が見つからないことがあるとして、ツールや手法、診断する人を変えるよう勧めている。自社のツールの条件を伝えておくと、外部はそれと違う方法を選べる。

デジタル庁のガイドラインは、入力フォームやAPI、認証の処理を変えたときや開発の委託先が変わったときを、改修後に診断する目安にしている。ZAPには攻撃を送らず数分で終わる検査があり、CI/CDで回すことを想定している。自社のWebアプリについて、権限の種類と順番のある手続きを書き出し、ツールの結果がそこまで届いているかを確かめるところから始めるとよい。

AI攻撃耐性ソリューション構成・管理状況、公開している資産、アクセスの記録を順に調べ、リスクと対策の優先順位を診断レポートにまとめます。

よくある質問

無料の脆弱性診断ツールで何も検出されなければ、安全と考えてよい?

何も検出されなくても、安全とは言えない。分かるのは、ツールが届いた画面と検査項目の範囲で見つからなかったことだけだ。ログイン後の画面は設定しないと検査に入らず、権限や手続きの順番に関わる弱点は自動の検査では見つからない。権限の種類と順番のある手続きを書き出し、結果がそこまで届いているかを確かめる。

委託先が作ったサイトやクラウド上のサイトに、無料ツールを使ってよい?

検査してよい範囲を確かめてから使う。疑似攻撃を送る検査はデータを作成・変更・削除することがあり、許可のないアプリに行えば違法と見なされうる。インフラ提供者が禁じる検査もあるので、委託先とインフラ提供者の両方に範囲を確かめてから始めるのがよいと我々は考える。

無料ツールでの診断は、いつ行えばよい?

改修したときに回す。デジタル庁のガイドラインは、入力フォームやAPI、認証の処理を変えたときを改修後に診断する目安にしている。攻撃を送らず数分で終わるZAPの検査なら、CI/CDに組み込んで変更のたびに回せる。

ブログ一覧へ