サイバー攻撃などの脅威が日々進化し、多様化している中で、企業が実施するセキュリティ対策についても協力かつ複雑なものが求められています。
システムに脆弱性が存在すると、外部または内部からの攻撃によって機密情報の漏洩だけでなく、企業の信用にも関わる重要な問題に繋がってしまいます。
そこで今回は、脆弱性診断の必要性や脆弱性診断を実施するメリット、診断方法などについてご紹介いたします。
脆弱性診断とは
脆弱性診断とは、会社のシステムやソフトウェア(Webアプリケーション・スマートフォンアプリ・ソフトウェア・ミドルウェア・OS・ネットワーク機器・クラウドプラットフォームなど)に存在する脆弱性*を発見し、そのリスクや影響を診断することです。
最近、サイバー攻撃がどんどん巧妙化しており、セキュリティを強化する上では脆弱性診断が欠かせなくなってきています。
*脆弱性とは、コンピュータに存在する情報セキュリティ上の欠陥のこと。
ペネトレーションテストとの違い
ペンテストと呼ばれることもある「ペネトレーションテスト」もセキュリティを検証するためのテストの1つです。
では、脆弱性診断とペネトレーションテストにはどのような違いがあるのでしょうか。
ペネトレーションテストは、実際にネットワークに接続しシステムに攻撃を仕掛け侵入を試みることから、「侵入テスト」と呼ばれることもあります。
組織が実際にサイバー攻撃を受けた場合、実施しているセキュリティ対策がどこまで耐えられるのかなどを評価するため、想定される攻撃シナリオに沿って幅の広いテストを行います。
一方脆弱性診断は、システム全体に対し網羅的に検査を行い、サイバー攻撃のきっかけとなる脆弱性を発見します。
脆弱性診断は、ペネトレーションテストより網羅性が非常に高いです。
つまり、脆弱性診断では「リスクを発見すること」が目的であるのに対し、ペネトレーションテストは「実際の攻撃を受けた際にセキュリティ機能が有効であるか検証する」のが目的で、両者には根本的な目的の違いがあります。
脆弱性診断の種類
一言に脆弱性診断と言っても、様々な種類が存在します。
ここでは、脆弱性診断の3種類をご紹介します。
アプリケーション診断
アプリケーション診断では、Webアプリケーションやスマートフォンアプリなどに関する脆弱性を検査します。
特に、Webアプリケーションの攻撃手法である「クロスサイトスクリプティング*」や「SQLインジェクション**」「コマンドインジェクション***」などに対する検査を行います。
*クロスサイトスクリプティングとは、HTMLに悪質なスクリプトを埋め込む攻撃のこと。XSSと略されることもあります。
**SQLインジェクションとは、Webアプリケーションのフォームなどに、データを不正に読み取る、改ざん/削除するといった悪意のあるSQL分を入力し実行させる攻撃のこと。
***コマンドインジェクションとは、Webアプリケーションのフォームなどに、シェル機能を操作する文字列を混入させることで、サイトのOSを不正に操作する攻撃のこと。
プラットフォーム診断
プラットフォーム診断とは、OSやミドルウェア、ネットワーク機器に脆弱性があるかないかを調べる検査です。
この診断では、主に各種機器の設定確認、ネットワークスキャンを用いて脆弱性を検出します。
また、外部接続可能なポートを確認し、必要のないポートはしっかりと閉じているかなどもチェックします。
クラウド診断
クラウド診断では、AmazonやMicrosoft、Oracleなどが提供しているクラウドサービス(AWS・Azure・OCI*)の設定状況をセキュリティの観点から診断します。
クラウドサービスでは、さまざまなサービスが提供されており設定内容も様々です。
例えば、社内向けに公開しているストレージ情報を誤って外部公開にしてしまった場合、情報漏洩などの危険があるため診断が必要です。
*OCIについてはこちらをご覧ください。
脆弱性診断の必要性
ここまで、脆弱性診断についてと種類をご紹介してきましたが、なぜ脆弱性診断は必要なのでしょうか。
脆弱性診断の必要性について考えていきます。
サイバー攻撃の被害件数は年々増加傾向にあり、攻撃手法自体も高度化、複雑化していると言われています。
そこで、脅威から守る義務のある企業側が自らあらゆる攻撃に備えるとなると、多額なランニングコストが必要になります。
そこで脆弱性診断の出番です。
脆弱性診断を行い、脅威に弱い可能性がある部分をピックアップし、該当箇所を強化することで、費用を最小限に抑えながら高セキュリティを保つことができます。
脆弱性診断のやり方
脆弱性診断を実施する方法は大きく分けて「ツール診断」と「手動診断」の2種類あります。
ツール診断
ツール診断では、セキュリティベンダーが、診断ツールを用いて脆弱性を見つけ出します。
機械的に不正なリクエストを送り付けるといった疑似的な攻撃を行いますが、あくまでも脆弱性を見つけ出すことが目的であるため、システムを壊してしまうことはありません。
ツール診断は比較的手軽に行えることから、開発段階で実施されることも多いです。
また、定期的にツール診断を用いることで低コストで最新の状態を保つことができます。
手動診断
手動診断は、経験と専門知識を持つ技術者によって実施されます。
ツール診断とは異なり、機械的な判断では見落とされてしまいがちな画面遷移や分岐にも対応できます。
脆弱性を発見した際の再現手順や、脅威の最新動向を加味した対策方法も知ることができます。
さいごに
今回は、脆弱性診断について基本的なことから、脆弱性診断の必要性などをお伝えいたしました。
やり方としては「ツール診断」と「手動診断」の2種類をご紹介いたしました。
両方のメリット・デメリットを比較の上、予算感や目的をしっかりと明確にし、適切な方を選びましょう。
システムに脆弱性が存在すると、外部または内部からの攻撃によって機密情報の漏洩だけでなく、企業の信用にも関わる重要な問題に繋がってしまいます。
セキュリティにおいて、大丈夫と過信せず、定期的に脆弱診断を行うようにしましょう。