脆弱性診断はなぜ必要なのか? 診断の特徴と選択のポイント
脆弱性診断 とは、システムやネットワーク内を調査し、システム上に潜む脆弱性やサイバー攻撃に対する問題点や耐久度を診断するサービスです。
セキュリティ診断、セキュリティ監査とも呼ばれます。
セキュリティの専門家が、攻撃手法の研究結果や実際の運用経験のフィードバックを基に、攻撃者の視点でさまざまな擬似攻撃を行い、脆弱性や耐性を診断するものです。
英語(海外)では脆弱性診断のことを Vulnerability Assessment, Security Testing, Vulnerability Diagnostic と呼称されています。
本記事では脆弱性診断の概要から、診断の特徴、脆弱性診断ツールやサービスの種類について解説していきます。
脆弱性診断はなぜ必要なのか?
近年、サイバーセキュリティ経営ガイドラインや NIST CSF、ISMAP などでその実施が求められている脆弱性診断ですが、なぜ必要なのでしょうか。
サイバー攻撃の被害件数は年々増加傾向にあり、攻撃手法自体も高度化、複雑化しています。
また、Attack as a Service と言われる攻撃基盤のサービス化などにより、攻撃に必要なコストやスキルは低下しつつあると言われています。
このような攻撃者優位の情勢において、守り側である企業があらゆる脅威に備えるのであれば、莫大な投資を継続することを強いられることになります。
その状況を回避するために、守り側は限られたリソースを最も効果の高い(=守り側にとって最も危険度の高い)リスクに対して割り当てることが求められます。
この最も効果の高いリスクを主にシステム観点から洗い出すのが脆弱性診断です。
システムに対する外部脅威と内部脅威
脆弱性診断では、外部脅威、内部脅威共に診断を実施し、穴となる脆弱性が存在するかどうかの確認をすることができます。
セキュリティリスクに対するさまざまなアプローチの中で、ベースラインかつスタートラインに位置付けられるものであり、セキュリティ対策や修正の成否を左右すると言っても過言ではありません。
サイトや Web アプリケーションを管理している場合は必ず実施しましょう。
脆弱性診断の種類
脆弱性診断にも種類があり、大きく「ツール診断」と「手動診断」の 2 つに分かれます。
また、脆弱性診断とアプローチが異なる「ペネトレーションテスト(侵入テスト)」や、PCI DSS を目的とした認定スキャンベンダによる「ASV スキャン」というものも存在します。
ツール診断
ツール診断は、一般的によく見られる攻撃パターンによる影響確認や既知の脆弱性の確認を自動的に行えるようにしたものです。
システムに対してツールを使用してチェックを行うため、すばやく網羅的、かつ安価に実施できるのが特長です。
一方で、特殊な脆弱性であったり「xxxという情報は、この画面では表示されてはいけない」などのビジネスロジックが存在する問題に関しては、検知不足が発生しやすいといった傾向もあります。
Web サイトなどの診断に向いており、公開前に脆弱性を確認したり、攻撃者からの悪意ある攻撃や情報漏えい事故などのリスクを未然に防ぎたいという場合にはとても費用対効果の高いセキュリティ対策になります。
脆弱性診断ツールには有償・無償含めいくつかありますが、代表的なツールとして「OWASP ZAP」が挙げられます。
手動診断
手動診断はその名の通り、人的な診断になります。
セキュリティ関連のエキスパートによって行われる診断で、攻撃者の目線でどのような部分を突いて攻撃できるかを探していくなど、より高度な脆弱性診断となります。
人の手が入る分、時間とコストがかかりますが、よりレベルの高い防御措置を講じることができ、ツール診断ではカバーしきれないビジネスロジックを考慮したセキュリティ評価や、認証認可の問題、ベストプラクティスとの比較なども行えるのが特徴です。
EC サイトのセキュリティ検査や個人情報を大量に取り扱っている Web アプリケーションの診断に向いています。
それぞれのメリット / デメリット
ツール診断、手動診断、それぞれの特徴をまとめると以下のようになります。
ツール診断 |
手動診断 |
|
---|---|---|
メリット |
・短期間で導入可能 |
・専門エンジニアが診断をするため精度の高い診断が可能 |
デメリット |
・複雑なサイト構成にはチューニングが必要 |
・診断結果が出るまで日数がかかる |
診断対象例 |
・コーポレートサイト |
・EC サイト |
脆弱性診断を選択するポイント
ここまで、脆弱性診断の種類と特徴について解説しました。
しかし特徴が理解できても、世に出回っている脆弱性診断ツールやサービスは種類も多く、どれを選んでいいか迷ってしまうのではないでしょうか。
また手動診断に関しては専門家個人の技量差が結果に反映されてくるので、診断する人によって品質に変動が出てしまうのではないか、という懸念もあるかと思います。
ここからは、脆弱性診断を効果的に実施するために知っておきたい、ツール / サービス選択のポイントについてお話しします。
ベストな範囲の診断を選ぶ
脆弱性診断の診断対象範囲は大きく分けて 3 つあります。
まずは自社の対象システムを確認し、必要とするセキュリティ診断を選択しましょう。
たとえば「機微な情報を取り扱っている箇所」「購入機能・認証/認可と行った重要な処理を行う箇所」と行った形で診断範囲を選定すると良いでしょう。
Web アプリケーション診断
こちらは脆弱性の発生件数も非常に多い、Web アプリケーション内にフォーカスした診断です。
診断項目としてはサイバー攻撃に対する脆弱性、セッション管理診断、ユーザ認証診断、パラメータ操作診断、暗号化方式の診断、画面設計の診断などがあります。
プラットフォーム診断
こちらはサーバやネットワーク機器の安全性を診断します。
具体的に外部あるいは内部からの不正アクセスなどの脆弱性を洗い出し、改善策を提案します。
主な診断項目に、ネットワークスキャン、ポートスキャン、アプリケーションバナー情報の調査、メールサーバの不正利用、スパムリレーやセキュリティホールのチェック、OS とアプリケーションのセキュリティなどがあります。
データベース診断
こちらはデータベースの安全性に特化して診断します。
サービスによっては、プラットフォーム診断に含まれることもあります。
診断項目には、パスワードやアクセス権限の設定、不要なアカウント、ストアドプロシージャの有無、監査設定やネットワーク接続の設定などがあります。
目的に合わせた診断方法を選ぶ・組み合わせる
先ほどご説明したように、診断方法にはツール診断、手動診断の 2 種類の診断があります。
診断精度や金額感、診断後の読み取り作業の有無などで大きく差が出るので、選択の際にはしっかり比較検討をしましょう。
診断対象範囲をどれくらい頻度・精度で診断するか、その費用のバランスを見て、ツール診断と手動診断を併用するのも選択肢のひとつといえるでしょう。
ツール診断は、いくつかの設定を行うことで比較的簡単に結果を得ることができますが、診断結果を読み取る作業やスキャン設定のチューニングも自分たちで行わなければいけないためスキルが必要となります。
そのため、ツール診断のみをサービスとして提供している診断企業なども存在します。
一方、手動診断はツール診断に比べ時間もコストもかかるものの、診断後に専門家が改善策の相談に乗ってくれる可能性があります。
定期的な診断を提供してくれるところもあるため、かかりつけの医師のように利用することが可能になるケースもあります。
それぞれの診断にはメリット / デメリットがあるため、診断対象に求められるセキュリティレベルやセキュリティリスクに応じて適切に使い分ける、ないしは補い合うかたちで併用することがポイントになります。
サービス提供事業者の技術レベルを確認する(手動診断)
手動診断では、診断提供者の技術レベルが重要となります。
特に同じ診断サービス内でも担当者によって熟練度が異なるケースがあるので注意しましょう。
診断提供者のレベルを判断するには、実績(経験年数や診断数、資格、受講歴、職歴など)を確認するとよいでしょう。
もしくは、技術レベルは診断書にも現れるので、どのような報告書が提供されるのかサンプルを入手することもひとつの指標になります。
診断を依頼する際には、提供者個人のレベル感を元に比較検討するのもいいでしょう。
さいごに
昨今、システムの脆弱性に対する攻撃は、世界中どこでも起きています。
システムやアプリケーションを安全に運営するためには、高い安全意識を持つことが重要となります。
その中でも今回ご紹介した脆弱性診断は、Web セキュリティを高めるための重要な一手と言えるでしょう。
人力で賄いきれない部分は、ツールやサービスを活用し、脆弱性をしっかり管理していける体制づくりを目指しましょう。
また Web アプリケーションのセキュリティ向上の一助として、yamory では、Web アプリケーションの約 9 割を占めると言われているオープンソースソフトウェアの脆弱性と、その脆弱性に関連する攻撃情報をモニタリングが可能です。
お使いの Web アプリケーションで危険となりうる脆弱性を自動的に検出できるため、よりセキュアなシステム構築の助けになるかと思います。
無料でトライアルもできますので、ぜひ一度お試しください。