脆弱性診断 (ゼイジャクセイシンダン) とは | 意味や読み方など丁寧でわかりやすい用語解説

作成日: 更新日:

脆弱性診断 (ゼイジャクセイシンダン) の読み方

日本語表記

脆弱性診断 (ゼイジャクセイシンダン)

英語表記

Vulnerability assessment (ヴァルネラビリティアセスメント)

脆弱性診断 (ゼイジャクセイシンダン) の意味や用語解説

脆弱性診断とは、コンピュータシステムやソフトウェアに存在するセキュリティ上の弱点、すなわち脆弱性を発見し、評価するための体系的な検査のことである。その主な目的は、悪意のある第三者によるサイバー攻撃の標的となる前に、システムが内包する潜在的なリスクを事前に特定し、適切な対策を講じることにある。現代のシステムは、Webアプリケーション、サーバー、ネットワーク機器など、多岐にわたる要素で複雑に構成されており、その設計や実装の過程で意図しないセキュリティ上の欠陥が生まれることがある。これらの脆弱性を放置した場合、不正アクセスによる情報漏洩、データの改ざん、サービスの停止といった深刻なセキュリティインシデントを引き起こす原因となり得る。脆弱性診断は、このような事態を未然に防ぎ、システムの安全性と信頼性を確保するために不可欠なプロセスとして広く実施されている。 脆弱性診断で発見を目指す脆弱性には様々な種類が存在する。例えば、Webアプリケーションにおける代表的なものとして「SQLインジェクション」がある。これは、Webサイトの入力フォームなどにデータベースを操作するための不正な命令文(SQL)を注入することで、データベース内の情報を不正に窃取、改ざん、あるいは削除する攻撃に繋がる脆弱性である。また、「クロスサイトスクリプティング(XSS)」は、攻撃者がWebサイトに悪意のあるスクリプトを埋め込み、そのサイトを閲覧した他のユーザーのブラウザ上でスクリプトを実行させるものである。これにより、ユーザーの個人情報が盗まれるなどの被害が発生する。その他にも、オペレーティングシステム(OS)やミドルウェアのバージョンが古いまま放置されていることに起因する既知の脆弱性や、アクセス制御の設定不備、不適切な暗号化の使用なども重要な診断対象となる。 脆弱性診断は、対象や手法によっていくつかの種類に分類される。診断対象による分類では、「Webアプリケーション診断」と「プラットフォーム診断」が代表的である。Webアプリケーション診断は、WebサイトやWebサービス自体を対象とし、前述したSQLインジェクションやXSSといった、アプリケーションのロジックや実装に起因する脆弱性を検査する。一方、プラットフォーム診断は、ネットワーク診断とも呼ばれ、アプリケーションが稼働するサーバーのOSやミドルウェア、ファイアウォールなどのネットワーク機器を対象とする。不要なポートが外部に公開されていないか、OSやソフトウェアに既知の脆弱性がないかといった、システム基盤(インフラストラクチャ)のセキュリティ設定を検査する。近年では、スマートフォンの普及に伴い、iOSやAndroidのネイティブアプリケーションを対象とする「スマートフォンアプリケーション診断」も重要な診断分野となっている。 診断の手法は、「ツール診断」と「手動診断」に大別される。ツール診断は、専用の診断ツールを用いて自動的に脆弱性をスキャンする方法である。広範囲を短時間で網羅的に検査できる利点があるが、ツールの検知ロジックに依存するため、複雑な脆弱性やビジネスロジック上の欠陥を見逃したり、実際には脅威ではないものを脆弱性と誤って報告する「誤検知」が発生したりする可能性がある。これに対し、手動診断は、セキュリティの専門知識を持つ診断員が、ツールの結果を分析し、自身の知見や経験に基づき擬似的な攻撃を試みることで、より深く、精密に脆弱性を探索する手法である。ツールでは発見が困難な、アプリケーション固有の仕様に起因する問題点などを発見できるのが特徴である。実際の診断プロジェクトでは、ツール診断で網羅性を確保し、手動診断で精度と深度を高めるという、両者を組み合わせたハイブリッドアプローチが採用されるのが一般的である。 脆弱性診断と混同されやすい用語に「ペネトレーションテスト(侵入テスト)」があるが、両者は目的が異なる。脆弱性診断の主目的が、システムに存在する脆弱性を網羅的に「発見し、リストアップする」ことであるのに対し、ペネトレーションテストは、発見された脆弱性を実際に利用してシステム内部への「侵入を試み、どこまで影響が及ぶかを実証する」ことを目的とする。つまり、脆弱性診断がシステムのセキュリティ上の問題点を幅広く洗い出すことに主眼を置くのに対し、ペネトレーションテストは攻撃者の視点に立ち、特定の目的を達成するための攻撃シナリオが成功するかどうかを検証する、より実践的なテストである。 脆弱性診断は、システムの開発完了時だけでなく、機能追加などの大きな変更が加わった際や、新たな脆弱性が発見される可能性に備えて定期的に実施することが重要である。診断結果に基づき脆弱性を修正し、システムのセキュリティレベルを継続的に向上させていくというサイクルを確立することが、安全なサービスを提供する上で不可欠となる。システムエンジニアにとって、自らが携わるシステムの安全性を確保するために、脆弱性診断の意義と基本的な知識を理解しておくことは極めて重要である。

脆弱性診断 (ゼイジャクセイシンダン) とは | 意味や読み方など丁寧でわかりやすい用語解説