脆弱性診断の解説(応用情報技術者シラバス用語)

目次

脆弱性診断とは

脆弱性診断(セキュリティスキャン、またはペネトレーションテスト)は、システムやソフトウェア、ネットワークに、ハッカーに悪用される恐れのある「安全上の欠陥やセキュリティの弱点(脆弱性)」が存在しないかを調査・検証する作業です。診断ツールを使った自動診断や、セキュリティ専門家が疑似的なハッカーとなって実際に侵入を試みるテスト(ペネトレーションテスト)を通じて、事前に弱点を洗い出し、攻撃を受ける前に対策を講じるために行われます。

具体例

新しく構築したオンライン銀行アプリのリリース前に、専門のセキュリティ会社に依頼して疑似攻撃を実施します。そこで「特定のURLを直接入力すると、他人のマイページが見えてしまう」といった重大なバグ(脆弱性)を発見し、公開前に修正することで、実際の個人情報漏洩事故を防ぎます。

【脆弱性診断の種類】\n・自動ツール診断: 既知の脆弱性データベースに基づき、設定ミスや古いバージョンを検出\n・ペネトレーションテスト: 専門家が手動で攻撃手法を模倣し、システム内部への侵入経路を特定\n・ソースコード診断: プログラムのソースコードを解析し、安全でない書き方を検出

もう少し詳しく

脆弱性診断とペネトレーションテストは、セキュリティ対策としてしばしば混同されますが、その目的とアプローチには明確な違いがあります。脆弱性診断(セキュリティスキャン)は、「網羅性」を重視します。システム全体(サーバー、OS、ミドルウェア、ネットワーク機器、Webアプリケーション)を対象に、既知の脆弱性リスト(CVE情報など)に基づき、設定不備やセキュリティパッチの適用漏れ、既知のバグなどの欠陥を可能な限り広く洗い出すのが目的です。基本的には自動スキャンツールが使用されます。一方、ペネトレーションテスト(侵入テスト)は、「特定の標的への侵入可否」を重視します。あらかじめ定められたシナリオに沿って、ホワイトハッカーと呼ばれる専門家が多様な脆弱性やソーシャルエンジニアリング、未知の攻撃手法を組み合わせて標的システムへの侵入を試み、機密データの奪取や管理者権限の取得が可能かどうかを検証します。こちらは手動での高度なハッキング技術が要求され、システム運用プロセスや検知体制(SOCなど)の実効性をテストする性質も持っています。

試験でのポイント

応用情報技術者試験では、脆弱性診断とペネトレーションテストの定義の違い、および実施方法に関する出題が頻出です。特に「ペネトレーションテストは、システム全体の脆弱性を網羅的に検出するのではなく、既知の脆弱性や設定ミスなどを突いて実際に侵入を試みることで、セキュリティ対策の有効性を検証する手法である」という趣旨の選択肢が正解となるケースが多いです。また、診断手法における「プラットフォーム診断(OSやミドルウェアの欠陥調査)」と「Webアプリケーション診断(SQLインジェクションやXSSなどの個別アプリの不備調査)」の分類も問われます。加えて、ポートスキャンなどの情報収集段階から実際の侵入試行、レポート作成に至る一般的なペネトレーションテストの実施手順や、テストが本番環境へ与える負荷(サービス停止リスク)への考慮など、実務的な注意点も出題範囲に含まれます。

関連する用語

脆弱性の網羅的検出を行う脆弱性スキャナ、侵入テストであるペネトレーションテスト、また脆弱性の深刻度を評価する共通の評価基準であるCVSS(共通脆弱性評価システム)や既知の脆弱性識別子であるCVE(共通脆弱性識別子)があります。これらと併せて覚えることで、脆弱性管理のプロセス全体を理解できます。

読んだ内容を10問練習と実技で確認

記事で理解した用語を、StudyQuestの演習とクラウド実技ラボで定着させます。

10問練習 実技ラボ