Webアプリケーションのセキュリティに注目が集まりがちですが、その基盤となるサーバやネットワーク機器のセキュリティも同様に欠かせません。OSのパッチが未適用のまま放置されていたり、不要なサービスが外部に公開されていたりすれば、アプリケーション側でどれだけ対策を施していても、攻撃者に侵入の糸口を与えてしまいます。
本記事では、プラットフォーム診断の基本から、Webアプリケーション診断との違い、主な診断観点までを解説します。
プラットフォーム診断とは
プラットフォーム診断とは、サーバ、ネットワーク機器、ミドルウェアなどのインフラ層を対象に、脆弱性や設定不備を検出するための検査です。「ネットワーク診断」と呼ばれることもあります。
脆弱性診断のプランの一つとして提供されることが一般的です。インターネット側から対象を検査する「外部診断」と、内部ネットワークから検査する「内部診断」の2つのアプローチがあります。
Webアプリケーション診断との違い
Webアプリケーション診断は、アプリケーションの機能や画面遷移、データ処理のロジックといったアプリケーション層を対象とした検査です。一方、プラットフォーム診断は、その下のインフラ層を対象とします。
両者は検査対象の層が異なり、補完関係にあります。アプリケーションがいくら堅牢でも、基盤となるサーバのOSに既知の脆弱性が残っていたり、管理用のポートが外部に公開されていたりすれば、攻撃者はそこから侵入できてしまいます。逆に、インフラ層が堅牢でも、アプリケーション層にSQLインジェクションなどの脆弱性があれば、正規の通信経路を通じて攻撃が成立します。
Webサービスを運用している場合は、Webアプリケーション診断とプラットフォーム診断の両方を実施することが望ましいです。
プラットフォーム診断の主な対象
プラットフォーム診断では、以下のようなインフラ構成要素が検査の対象となります。
- サーバ:Linux、Windowsなどの各種OS上で稼働するサーバ。Webサーバ、メールサーバ、DNSサーバなどが該当します。
- ミドルウェア:Apache、Nginx、データベースサーバなど、アプリケーションの動作基盤となるソフトウェア。バージョンの古さや設定不備が脆弱性につながることがあります。
- ネットワーク機器:ルータ、ファイアウォール、ロードバランサなど。アクセス制御の設定やファームウェアの更新状況が検査対象になります。
- クラウド上のインフラ:AWS、Azureなどのクラウド環境上に構築されたEC2インスタンスやVMなども診断対象に含まれます。クラウドだから安全ということはなく、利用者側の設定に起因するリスクは同様に存在します。
プラットフォーム診断で扱う主な観点
ここでは、プラットフォーム診断で特に検出頻度が高く、影響の大きい代表的な観点を紹介します。
ポートスキャン・サービス検出
対象のサーバやネットワーク機器で開放されているポートと、そこで稼働しているサービスを特定します。診断の出発点となる観点です。
本番環境で意図せず公開されているサービスが見つかることは珍しくありません。開発時に利用していたデバッグ用のサービスや管理コンソールがそのまま残っているケースなどが典型的な例です。不要なサービスが外部からアクセス可能な状態にあると、攻撃者にとっての侵入経路となり得ます。
既知の脆弱性(CVE)の検出
OS、ミドルウェア、各種ソフトウェアに存在する既知の脆弱性を検出します。ソフトウェアの脆弱性は日々新たに発見・公開されており、CVE(Common Vulnerabilities and Exposures)として識別番号が付与されます。
パッチの未適用やバージョンの古いソフトウェアが放置されていると、公開されている攻撃手法を用いて悪用されるリスクがあります。特に、攻撃コードが公開されている脆弱性は早急な対処が求められます。
不要なサービスや設定不備の検出
本番環境で不要なサービスが稼働していないか、デフォルト設定のまま運用されていないかなどを確認します。
例えば、デフォルトのまま残された管理画面、無効化されていないサンプルページ、過剰な情報を返すエラーメッセージなどが該当します。これらは一つひとつのリスクは小さく見えることもありますが、攻撃者にとっての情報収集の手がかりとなり、他の脆弱性と組み合わせることでより深刻な攻撃につながる可能性があります。
パスワード強度の確認
管理用インターフェースやリモートアクセスで使用されるアカウントのパスワードが、推測や総当たり攻撃に対して十分な強度を持っているかを検査します。
SSH、FTP、データベースの管理画面など、認証を必要とするサービスが対象です。初期パスワードのまま運用されているケースや、短く単純なパスワードが設定されているケースは、プラットフォーム診断で実際によく検出される問題の一つです。
外部診断と内部診断の違い
プラットフォーム診断には、検査を行うネットワーク上の位置によって「外部診断」と「内部診断」の2つのアプローチがあります。
外部診断
インターネット側から対象を検査するアプローチです。攻撃者と同じ視点で、外部から到達可能なサーバやサービスに対してリスクを検出します。インターネットに公開しているサーバがある場合は、まず外部診断から実施するのが一般的です。
内部診断
内部ネットワークから対象を検査するアプローチです。社内ネットワークに攻撃者が侵入した場合や、内部犯行を想定したリスクを検出します。外部診断ではファイアウォールによって遮断されるため見えないサービスや脆弱性も、内部診断であれば検出できます。
外部診断だけでは発見できないリスクも存在するため、より網羅的なセキュリティ評価を行うには、外部診断と内部診断の両方を実施することが望ましいです。
プラットフォーム診断の流れ
プラットフォーム診断は、一般的に以下のような流れで実施されます。
① ヒアリング・スコープ定義
診断対象のIPアドレスやホスト名の一覧、ネットワーク構成、外部診断・内部診断の希望などをヒアリングし、診断の範囲を定義します。外部診断の場合は診断元のIPアドレスをお伝えしますので、ファイアウォールで診断通信が遮断されないよう事前に許可設定をお願いしています。
② 仕様確認・動作確認
診断対象のサーバやネットワーク機器の構成、稼働しているサービスの概要を事前に確認します。本番環境への影響を考慮し、診断を実施する時間帯や避けるべき操作についてもこの段階ですり合わせます。
③ 診断の実施
定義したスコープに基づき、セキュリティエンジニアが検査を実施します。診断のプランは予算に応じて異なりますので、ベンダと相談しながら最適なプランを選定しましょう。
④ 報告書の作成
検出された脆弱性をリスクの深刻度に応じて分類し、再現手順や想定される影響、具体的な対策案とともにまとめた報告書を作成します。
まとめ
プラットフォーム診断は、サーバやネットワーク機器、ミドルウェアなどのインフラ層に潜む脆弱性や設定不備を検出するための検査です。ポートスキャンによるサービスの特定、既知の脆弱性の検出、不要なサービスの確認、パスワード強度の検査など、インフラ層に特化した観点で検査を行います。
Webアプリケーション診断とは検査対象の層が異なり、補完関係にあります。Webサービスを運用している場合は、両方を組み合わせて実施することで、より網羅的なセキュリティ対策が可能になります。
「自社のインフラ環境にどのような診断が必要か」「外部診断と内部診断のどちらを優先すべきか」といったお悩みがございましたら、お気軽にご相談ください。