脆弱性診断とは。種類・進め方・費用と、依頼前に決めること
セキュリティ対策として脆弱性診断を検討しても、種類も費用の幅も大きく、何を依頼すべきか判断しにくい領域です。この記事では、診断の種類、進め方、費用の考え方、そして依頼する前に社内で決めておくべきことを整理します。
脆弱性診断とは何か
脆弱性診断は、システムに攻撃されうる弱点が残っていないかを、実際に攻撃者と同じ手順を試して確認する作業です。設計書のレビューや設定確認と違い、動いているシステムに対して行います。
混同されやすいものにペネトレーションテストがあります。脆弱性診断は「弱点を網羅的に洗い出す」、ペネトレーションテストは「侵入できるかを試す」という違いです。目的が異なるため、必要なほうを選ぶ必要があります。
前者は一覧を作る作業、後者は一点突破を試す作業と考えると分かりやすくなります。多くの企業がまず必要とするのは前者です。
対象による種類の違い
何を診断するかで、手法も費用も変わります。
- Webアプリケーション診断/画面と機能を対象に、入力値の扱いや認証・認可の不備を調べる
- プラットフォーム診断/サーバーやネットワーク機器を対象に、公開ポートや古いバージョンを調べる
- スマートフォンアプリ診断/端末内のデータ保存や通信経路を調べる。iOSとAndroidで内容が異なる
- クラウド設定診断/IAMの権限設計やストレージの公開設定など、構成側の不備を調べる
- ソースコード診断/コードを読んで問題箇所を特定する。動かす前に見つけられる
自社のシステムがどれに当たるかは、ひとつとは限りません。Webサービスなら、アプリ診断とプラットフォーム診断の両方が必要になるのが普通です。
ツール診断と手動診断
同じ対象でも、やり方によって見つかるものが変わります。
ツール診断は、自動化されたスキャナで既知のパターンを機械的に検出します。短時間で広く調べられ、費用も抑えられます。一方で、業務ロジックに起因する問題は見つけられません。
手動診断は、技術者が実際に操作しながら調べます。「他人の注文画面が見られてしまう」といった、そのシステム固有の設計に起因する問題はこちらでしか出てきません。
費用は手動のほうが数倍かかります。判断の目安は、扱っている情報の重さです。個人情報や決済を扱うなら手動を含めるべきで、社内向けの情報共有ツールならツール診断で十分な場合もあります。
費用の考え方
見積もりは「画面数」「機能数」「IPアドレス数」といった量で算出されるのが一般的です。同じシステムでも、診断範囲の切り方で金額が大きく変わります。
費用を抑えたい場合、値引き交渉より範囲を絞るほうが効果的です。ログイン後の全画面ではなく、認証・決済・個人情報を扱う画面に限定する、といった絞り方があります。
注意したいのは、安い見積もりはツール診断のみである場合が多いことです。金額だけで比べると、内容がまったく違うものを比較していることになります。見積もりを取るときは、手動診断が含まれるかを必ず確認してください。
依頼する前に決めること
診断会社に相談する前に、社内で決めておくと話が早く進みます。
- 何を守りたいか/個人情報か、決済情報か、サービスの継続稼働か。優先順位で範囲が変わる
- いつまでに必要か/取引先や監査の要求が期限になっている場合、逆算して手法を選ぶ
- 診断後に誰が直すか/報告書を受け取っても、修正する人がいなければ意味がない
- 本番か検証環境か/本番で診断する場合、サービス影響の可能性を関係者に共有しておく
3つ目が最も抜けやすい点です。診断は問題を見つける作業であって、直す作業ではありません。報告書に20件並んだとき、誰がどの順で対応するかを先に決めておく必要があります。
報告書を受け取ってから
報告書には、検出された問題が重要度とともに並びます。すべてを直す必要はありません。
判断の順序は次のとおりです。
- 重要度が高く、外部から到達できるものを最優先で直す
- 重要度が高くても、内部からしか到達できないものは次点に回す
- 直さないと決めたものは、その理由を記録に残す
- 修正後に再診断を行い、対処できたことを確認する
3番目を省略しないでください。「対応しない」という判断自体は問題ありませんが、判断した記録がないと、後任者が経緯を追えなくなります。
一度で終わらせない
診断は、実施した時点のシステムに対する結果です。機能を追加すれば、その部分は未診断の状態に戻ります。
現実的な運用は、次のような組み合わせです。
- 年1回の全体診断/手動を含めた本格的な診断。範囲は全体
- リリース時の部分診断/追加・変更した機能だけを対象にする
- 継続的なツール診断/自動スキャンを定期実行し、既知の問題を早期に検出する
すべてを外部に委託すると費用が積み上がるため、ツール診断を内製化し、手動診断を外部に頼むという分担が取られることが多くなっています。
診断を担う人材
診断を実施する側には、攻撃手法とアプリケーション設計の両方の理解が求められます。脆弱性を見つけるには、まずそのシステムが何をしようとしているかを理解する必要があるためです。
需要に対して人材が不足している領域でもあります。診断業務そのものだけでなく、報告書を読んで自社で対応方針を決められる人材も同様に不足しています。
外部に診断を委託する場合でも、受け取る側に読める人がいるかどうかで、その後の対応速度が変わります。
セキュリティ人材をお探しの方へ
脆弱性診断の実施、報告書を受けての改修、その後の運用設計まで、必要な工程に応じた人材をご提案します。短期の診断案件から、社内体制の立ち上げまで対応可能です。
ご登録いただいた情報が企業に公開されることはありません。氏名・連絡先を伏せたスキルシートを使用します。登録から案件のご紹介、契約手続きまで費用は一切かかりません。
相談する