セキュリティ管理者も必見
- 脆弱性管理の実際のプロセス -
管理方法
2020.3.1
当然のものとして曖昧にされている、『コンピュータソフトウェアにおける脆弱性管理』とは実際にどのようなプロセスなのかということを説明します。脆弱性の管理とその対策作業は、管理者だけではなく実務作業を行うエンジニア等、多くの人たちが係ることになりますが、具体的な作業の内容を理解し全体を把握しておく必要があります。特に、セキュリティ管理者は実際にその作業を行ったことがない場合が多く、脆弱性の実対策まで至る作業にはどのような難しさや時間が掛かるかといった勘所を押さえておくことが必要です。
『脆弱性管理』とは
『脆弱性管理』とは、コンピュータソフトウェアに存在する脆弱性を次の項目をひとつの脆弱性を扱うプロセスとして、経過や判断、結果などを記録し、脆弱性の対処状況を確認したり、未対処の脆弱性を把握したりできるようにすることをいいます。
影響する脆弱性の検出
この項目を適切に実施するには、前提として脆弱性の管理対象が使用するソフトウェアの情報が必要になります。
SIDfm VM では、SIDfm VM エージェントによって OS の公式な DEB や RPM パッケージを管理対象とすることが可能です。
Windows システムには、数多くのインストールソフトウェアを管理するツールが存在します。
Linux/Unix システムにおいては、RPM, DEB といったパッケージによってインストールされたソフトウェアについては容易に管理できます。 しかし実際に使用するアプリケーションを実行するためには、様々なライブラリやミドルウェアやランタイムをそれぞれに適した方法でインストールするため、管理が非常に難しくなります。そのようなソフトウェアの使用をいかにして把握して管理するかが、脆弱性を管理する上でも課題になっていくものと思われます。
「使用するソフトウェア」と「脆弱性の影響を受けるソフトウェア」を比較し、一致するものを探します。
一致した脆弱性が見つかった場合に、「使用するソフトウェア」に影響のある脆弱性として検出します。
この比較を行うためのソフトウェア名称は、脆弱性データベースで使用するソフトウェア名のマスターデータを使用することによって、機械的な比較を可能とします。(CVE であれば CPE, SIDfm であれば SIDfm データベースの製品マスタ) 製品ベンダなどが提供する脆弱性の影響を受けるソフトウェア名やバージョンは、実際のところそれほど整理されていないため、あらかじめ登録された名称に正規化する必要があります。
例えば Red Hat Enterprise Linux のアドバイザリはメールと Web ページで確認することができますが、Web ページに記載される「Red Hat Enterprise Linux Desktop」は、メールでは「Red Hat Enterprise Linux Client」と記載されていたりします。
実環境への影響の確認
検出した脆弱性の情報から実環境へ影響があるかを確認します。
検出した脆弱性に対して、何も考えずにすべてのパッチ・更新プログラムを適用するという方針をとっていない限り、非常に重要なフェーズとなります。
脆弱性の影響を受けるコンポーネントや脆弱性を悪用したシナリオから、実環境への影響を考えるとパッチ・更新プログラムを必要とすることはそれほど多くありません。
脆弱性の影響を受けるソフトウェアの再確認
最初に脆弱性の影響を受けるソフトウェアの名称やバージョンを再確認します。
機械的な処理による抽出は、マスターデータベースの精度や脆弱性情報にある影響を受けるソフトウェアの記載に依存します。 まずは脆弱性情報に記載されている影響を受けるソフトウェアと使用しているソフトウェアを見て比較する必要があります。 特にバージョンについては、マスターデータの精度が荒いこともあるため、必須事項といえます。
なお脆弱性の影響を受けるソフトウェアのバージョンより古いバージョンのソフトウェアを使用している場合は、基本的に脆弱性の影響を受けるものと考えておいた方が良いです。(複数のメジャーバージョンがサポートされているソフトウェアは除く)
ソフトウェア名の比較については、判断が難しいと感じたら影響ありと判断しておくと良いでしょう。
なお脆弱性の影響を受けるソフトウェアのバージョンと使用しているソフトウェアのバージョンでバージョン体系が違う場合は、別のソフトウェアである可能性が非常に高いです。
コンポーネントや機能の確認
次に影響を受けるソフトウェアのコンポーネントや機能を確認します。
簡単にできることではありませんが、影響を受けるコンポーネントや機能を使用していなかったり、外部ネットワークへの露出を制限していたりすることが分かれば、脆弱性の影響を無しと判断することができるようになります。
例えば Linux Kernel は、多くの脆弱性が報告されるソフトウェアですが、大半の脆弱性はデバイスドライバに存在するため、脆弱性の見つかったデバイスを使用していないのであれば、基本的に脆弱性の影響を受けません。 また多くのライブラリは、外部からの入力を直接受けることは無いので利用方法が判別できるのであれば、多くの脆弱性を影響無しとみなすことができるようになります。
脆弱性の攻撃元の確認
コンポーネントやソフトウェアの種類の確認と同時に攻撃元も確認します。
攻撃に OS へのログインが必要な (ローカルの) 脆弱性は、信頼できないユーザへログイン環境を提供しているような環境でなければ、基本的に気にする必要はあまりなく、優先度を下げて定期的な更新を行う際に対処すれば良いでしょう。 またホスト内部からの攻撃を想定する必要がある場合は、権限昇格や資格情報や機密情報の漏洩をもたらす脆弱性を、優先的に対処するようにしましす。
ネットワークからの攻撃については、脆弱性の影響を受けるプロトコルなどから判断して、ファイアウォールで止まるものは、優先度を低くして後回しにしてまとめて対処したり、影響無しとみなすのが良いでしょう。
その際に、HTTP や SMTP、DNS など直接内部に入ってくる可能性のあるプロトコルや、メールメッセージをトリガとするようなネットワーク境界の意味が無い脆弱性には注意してください。
例えば ISC BIND の脆弱性 (CVE-2018-5744) のように DNS キャッシュサーバ (再帰サーバ) が影響を受けるような脆弱性は、転送されてきた DNS パケットから影響を受ける可能性があり、ファイアウォールの内側に配置され直接インターネットと通信しない場合でも影響を受ける可能性があります。
対処方法の検討
脆弱性の対処方法を検討します。
基本は、パッチや更新プログラムの適用となりますが、設定の変更や機能の停止、アクセス制限なども有効な方法です。 特にアクセス制限や機能の停止は、脆弱性の対策というより基本的なセキュリティ設定のため、脆弱性の回避策としては言及されないことが多いため対策としては見逃されやすいのではないかと思います。
例えば、Cisco IOS などのアプライアンス機器の Web 管理インタフェースに見つかった脆弱性は、Web 管理インタフェースを無効化していれば影響を受けることはほぼありません。しかし脆弱性のある機能の無効化は、回避方法としてはあまり記載されなくなりました。(ほぼ自明であり、機能を使用しているユーザにとっては対策にならないからではないかと思われます)
対処の方針がある程度決まったら、パッチや更新プログラム、設定変更などの適用に必要な手順や、必要なサービス停止時間の予測、作業スケジュールなどを決定します。 スケジュールの都合がつかない場合は、ファイアウォールや IPS などの設定で攻撃の可能性を緩和させて、時間を稼ぐのもひとつの方法だと考えます。
CVE 毎に脆弱性を評価して対応しようとするとこのフェーズで、余分な手間が発生します。 脆弱性のパッチや更新プログラムは、単一の CVE のみに対応して提供されることはあまりなく、複数の CVE をまとめて対処したものが提供されることが多いです。 CVE 毎に脆弱性の対処状態を記録しようとすると、適用予定のパッチや更新プログラムから同時に対処される CVE を拾い上げ、ターゲットの CVE と同じように扱う必要がでてきます。 パッチや更新プログラム毎に脆弱性を扱うと、パッチや更新プログラムで対処される一番危険と思われる脆弱性だけを考えれば良いので、効率的です。
対処の実施
脆弱性に対するパッチや更新プログラム、または回避設定を適用します。 手順通りに作業するだけが望ましいでしょう。
適用作業の完了によって、脆弱性の対処も完了となります。
記録・管理
ここまでの一連のプロセスを記録することによって、検出した脆弱性への対処を容易に確認できるようになり、『脆弱性を管理する』ことができるようになります。
SIDfm VM は、一連のプロセスを強力にサポートするツールです。
脆弱性の検出から対処まで記録は自動的に行い、脆弱性別やホスト別に脆弱性への対処状況・危険性を容易に識別できるようになります。
脆弱性からの組織防衛のために
あなたの組織で脆弱性が対策されていることを確認できますか? 弊社の継続的脆弱性管理ツール SIDfm VM は、管理対象のホストで使用するソフトウェアで新しく報告された脆弱性のピックアップを行い、影響判定や対策工程の把握まで、脆弱性管理をトータルでカバーいたします。
脆弱性の調査やパッチ探しは一切不要!
脆弱性対策を自動化できるので工数大幅削減!
さらに自社の脆弱性状況を全て可視化できるので
管理がグッと楽になる!
それらを全て実現するサービスがあります。
脆弱性管理ツール「SIDfm VM」について詳しくはこちらから