効果的なセキュリティ診断の使い方は?

 脆弱性のない堅牢なシステムかどうかを調べるための方法としてセキュリティ診断があります。セキュリティ専門業者だけなく、最近ではSI会社やアプリケーションの開発会社までも、セキュリティ診断サービスを売りにしているところが少なくありません。
 読者の皆さんの中にも、かつてセキュリティ診断を業者さんにお願いした方がおられるのではないでしょうか。
 このコラムではセキュリティ診断の種類を解説し、状況に応じてそれらを使い分けるお勧めパターンをご理解いただくことを目指します。

診断対象からみたセキュリティ診断の種類

 セキュリティ診断サービスを診断対象で分類すると、以下の3つの種類に分けることができます。

1.プラットフォーム診断

 WindowsやLinuxなどのOS、ミドルウェアおよびネットワーク機器のファームウェアが対象となるセキュリティ診断です。
ネットワーク診断というサービス名称のこともあります。診断対象の数で従量課金するのが一般的です。

2.Webアプリケーション診断

 ユーザが開発したWebアプリケーションを診断対象とします。Webアプリケーションのリリース、更新のタイミングで実施することが多く、課金は遷移する画面数の従量課金が一般的です。

3.スマホアプリ診断

 スマホアプリでも個人情報やクレジットカード情報などの機密性の高い情報を取り扱うことが普及してきました。
 スマホアプリ診断はユーザが開発したスマホアプリを対象にセキュリティ診断を行います。
 ユーザアプリを対象にするよことはWebアプリケーション診断に似ています。
 課金体系もWebアプリケーション診断同様、遷移する画面数の従量課金が多いようです。

 このコラムではプラットフォーム診断について深堀していきます。(上図の赤枠内)Webアプリケーション診断とスマホアプリ診断については別の機会に詳しくお話いたしますね。

脆弱性スキャンとペネトレーションテスト

 各社のプラットフォーム診断サービスの中身を吟味すると、大きく分けて脆弱性スキャンとペネトレーションテストの2種類があることがわかります。
 診断業者はこの2つの似て非なるサービスを「プラットフォームセキュリティ診断」というサービス名を呼称しているので、診断サービスを発注する際には注意する必要はあります。

脆弱性スキャン

 脆弱性スキャナというソフトウェアを使って診断対象の脆弱性の有無を特定するサービスです。
 脆弱性スキャナには診断対象の内部情報(設定ファイルやレジストリ等)を得て診断する方式(クレデンシャルスキャン)と内部情報なしに診断する方式(ノンクレデンシャルスキャン)の2種類が実装されていますが、診断結果の精度という観点では、クレデンシャルスキャンの方が高くなります。
 クレデンシャルスキャンを実施するためには、診断対象の管理者権限が必要であるため、管理者ユーザ名とパスワードの情報をスキャナに設定する必要があります。
 脆弱性スキャナの精度は近年極めて高くなり、クレデンシャルスキャンであればスキャン結果をほぼ信頼して問題ない精度であるといえます。
 また、スキャナさえあればエンドユーザでも脆弱性スキャンを実施できることから、定期的に脆弱性スキャンを実施することが可能となります。
 クレジットカードのセキュリティスタンダードであるPCI DSSの要件では、脆弱性スキャンを四半期に1度実施することになっていますので、このように短いスパンで実施するのは脆弱性スキャンが適しています。

ペネトレーションテスト

 ペネトレーションテストは攻撃者の立場から、システムやネットワークに対して手動で攻撃を行い、脆弱性やセキュリティの問題を発見するためのテスト手法です。
 ペネトレーションテストを実施するエンジニアであるペネトレーションテスターは、実際の攻撃に近い手法でシステムに侵入し、実際のシステムからどのような情報を抜き取ることができたか、どのような細工を施すことができかたを報告します。
 ペネトレーションテスターは高度な技術知識と手動操作による攻撃スキルが必要で、脆弱性スキャンに比べてコストが高く時間がかかります。前出のPCI DSSでは、ペネトレーションテストは年1回の実施を要求されています。

脆弱性スキャンとペネトレーションテストのお勧めの使い分け

 脆弱性スキャンとペネトレーションテストの性格の違いを考慮して、私はお客様に以下のような使い訳をお勧めしております。

短周期での脆弱性スキャンの実施

 脆弱性は1日に何十個も発見されるものですので、脆弱性の有無の確認は短周期に実施されるべきです。できれば四半期に一回程度の実施頻度が求められます。
 また、マスコミ等で高危険度の脆弱性が発見されたニュースが発信された場合は、その都度、その脆弱性にフォーカスした脆弱性スキャンを実施することも大切です。

許容した脆弱性にフォーカスしたペネトレーションテスト

 脆弱性スキャンを短周期で行い、都度パッチ適用で脆弱性の修復をしていくと、様々な理由でパッチ適用ができないケースがでてきます。
 たとえば止められないシステムはパッチ適用ができませんし、パッチを当てると正常に動作しないアプリケーションもあるかもしれません。
 そのようなときには、許容した脆弱性を使ってどのようなセキュリティ侵害が発生するのかペネトレーションテストで実験することが有効になります。 
 ペネトレーションテストの結果、セキュリティ侵害の度合いがより少なければ、そのまま許容する判断もできますし、経営上看過できないセキュリティ侵害である場合は、許容せずに、なんとか困難を克服しパッチ適用を行う判断ができるかもしれません。

 このように脆弱性スキャンとペネトレーションテストを使い分けて、費用対効果の高いセキュリティ診断をお客様に提案させていただきます。