脆弱性診断とは、ソフトウェアやサーバー、アプリケーション等に脆弱性がないかを調べる診断のことです。脆弱性が攻撃者に発見され、悪用されると、システムへの不正アクセスに繋がり、データを盗み取られるなどのセキュリティ事故(インシデント)に発展する恐れがあります。このような事態を防ぐためにも、脆弱性診断を行って悪用につながりかねない脆弱性を特定しておくことが重要です。
ソフトウェア等の製品やアプリケーションなどに脆弱性が存在していたとしても、それが原因で当該製品/アプリケーションが明らかな異常を示すことは少なく、通常の使い方であれば問題なく利用できるという場合がほとんどです。つまり、脆弱性の存在は利用者や開発者から気づかれにくいことから、脆弱性の有無については、専用ツールを使った診断や専門家による手動診断を行ってしっかりと調査する必要があります。
脆弱性診断には、大きく分けて以下の3種類があります。なおこれ以外にも、クラウドや制御システム、IoT機器、物理環境(従業員や組織)などを対象とする診断も行われています。
①プラットフォーム診断:サーバーやネットワーク機器などの脆弱性有無を調べる診断
②Webアプリケーション診断:Webアプリケーション(Web APIを含む)の脆弱性有無を調べる診断
③スマホアプリ診断:スマホアプリケーションの脆弱性有無を調べる診断
脆弱性診断は、システムやアプリケーションの開発段階で実施したり、開発後のリリース前の段階で実施するのが一般的です。また、取引先企業や顧客からの要望を受けて実施することになるケースも考えられます。
脆弱性診断とよく混同されるものにぺネトレーションテストがあります。ペネトレーションテストとは、具体的な攻撃シナリオを元にシステムへの侵入(=ペネトレーション)を試み、組織やシステムの攻撃耐性を確認するテストのことを言います。ペネトレーションテストの目的は、侵入や情報窃取といった、攻撃者が有していると思われる特定の目的が達成可能かどうかを調査し、組織の攻撃耐性やセキュリティ上の問題点の有無などを確認することです。このため脆弱性やセキュリティ上の弱点を網羅的に特定することを目指す脆弱性診断とは実施目的が異なっている上、手法や調査期間などにも違いがあります。ペネトレーションテストについてさらに詳しくは、以下の記事をご覧ください:










とは?.jpg)
