自社で脆弱性管理を実践しようと考えている企業のために、脆弱性スキャナーの種類や脆弱性管理のステップなどを解説する連載。初回は、脆弱性スキャナーの種類とその役割について。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
脆弱(ぜいじゃく)性の管理を外部のセキュリティ診断会社や運用委託会社に依頼するのではなく、自社で実施しようと考えている企業が近年急増している。「日々リリースされる大量の脆弱性に対して、年に1回だけの診断だけでは対応が追い付かない」というのが主な理由だが、この流れは脆弱性診断ツールの発達により加速している。ところが、いざ「脆弱性管理を実施しよう」とすると、意外と簡単にはいかないことが分かってくる。
本連載では、脆弱性スキャナーの種類や脆弱性管理のステップについて一歩踏み込んで解説することで、各企業がスムーズに脆弱性管理に取り組んでいけることを目指している。
連載は、下記のような内容を予定している。
初回は、脆弱性スキャナーについて解説する前に、脆弱性管理システムの基本的な構成について説明する。
脆弱性管理システムは、ほとんどの場合「スキャナー」と「マネジャー」で構成されている。スキャナーというのは、いわゆる「脆弱性スキャナー」のことであり、スキャン対象における脆弱性情報を自動的に収集する役割を担っている。
マネジャーは複数あるスキャナーを一元的に管理する役割と、スキャナーで収集した脆弱性情報をレポートやダッシュボードを通じてユーザーへ提供する役割を担っている。
マネジャーではさらに、スキャナーによって収集された脆弱性情報を一元的に管理しているため、任意の脆弱性を検索したり、脆弱性対応を管理したりすることができる。
脆弱性管理システムの構成について理解したところで、脆弱性スキャナーの種類と特徴について説明する。
脆弱性スキャナーの中で、最も一般的に利用されているのが「ネットワーク型スキャナー」だ。これは「エージェントレス型スキャナー」とも呼ばれている。
ネットワーク型スキャナーは「どこからスキャンを実施したいか」によって設置場所を自由に変えることができる。インターネット側から公開システムに対してスキャンしたい場合はインターネット上に配置することになるし、内部システムに対してスキャンしたい場合は内部ネットワーク上に設置する。
ネットワーク型スキャナーの利点は大きく2つある。
1つ目は「攻撃者目線での脆弱性の有無を確認できる」点である。「ネットワーク越しに脆弱性があると、スキャナーが判断できる」ということは、攻撃者も、同様にその脆弱性の存在をネットワーク越しに知り得ることになる。つまり、より危険な脆弱性を発見できるのだ。
2つ目の利点は「エージェントが不要」ということだ。IoT機器やネットワーク機器、OT機器などエージェントの導入が困難なデバイスは多々存在している。ネットワーク型のスキャナーであれば、そうした機器であっても脆弱性情報の収集が可能となる。
一方でネットワーク型スキャナーはスキャン実行時点で、対象のデバイスがスキャナーから到達可能なネットワーク上に存在していなければいけないという制約がある。ノートPCを社外に持ち出している場合や、サーバを停止している場合は、スキャンができないことを理解しておく必要がある。
ネットワーク型スキャナーによるスキャンは、情報の収集方法によって大きく2つに分類される。「認証スキャン」と「非認証スキャン」である。
非認証スキャンは、スキャン対象の認証情報を使用せずにスキャンする方法である。「どんなOSを利用しているのか」「どんなサービスが動いているのか」をネットワーク越しから発見した上で、脆弱性を診断する。
一方、認証スキャンは、あらかじめ脆弱性管理システムに設定された認証情報を使用し、スキャン対象にログインした上で脆弱性をスキャンする方法だ。対象へログインすることでより多くの情報を取得できるため、非認証スキャンよりも多くの脆弱性を発見できる。また、構成情報も併せて取得できるため、脆弱性管理以外の用途での活用も可能だ。
認証スキャンと非認証スキャンは取得可能な情報が異なるため、双方実施することが望ましい。しかしながら認証情報の管理が整備されていないことにより、非認証スキャンのみの実施にとどまっているケースもそれなりに存在している。
従来、脆弱性スキャンといえばネットワーク型スキャナーを使用する場合がほとんどであったが、エージェント型のスキャナーを活用するケースも近年増加している。「エージェント型スキャナー」は、その名の通りスキャナーをスキャン対象にインストールして使用する方式である。
エージェント型スキャナーの利点としてまず挙げられるのが「社内システムにつながっていなくてもスキャンができる」点である。つまり、インターネットにつながってさえいれば、任意のタイミングでスキャンを実施できる。これは、スキャン対象のIPアドレスを指定する必要がなくなることにもなり、運用上利便性が向上する。
また、認証情報を脆弱性管理システムに提供せずともネットワーク型スキャナーの認証スキャンと同程度の脆弱性情報を収集できることも大きなメリットになる。
一方、エージェント型スキャナーはあくまでエージェントが提供されているOSのみスキャンが可能である。LinuxやWindowsなどの主要なOSに対応しているケースは多いが、エージェントが提供されていないOSも多数存在するため、スキャン対象のOSに対してエージェントが提供されているかどうかをあらかじめ確認しておいた方がいいだろう。
構成管理システムで収集した情報と脆弱性データをマッピングすることで、脆弱性情報を管理できるのではないかという考えもある。
ただし、構成情報と脆弱性情報の突き合わせによる脆弱性情報の管理は、運用するとなると、かなり無理が生じる。
脆弱性スキャナーというのは単に構成情報だけを見ているのではなく、ファイルやサービス、Windowsであればレジストリなど、脆弱性を特定するために多くの情報を参照している。
例えば「SIGRed」と呼ばれるWindows DNSサーバにおける脆弱性(CVE-2020-1350)は、レジストリサイズの値を変更することで悪用されなくなる。つまりパッチが当たっていなくても脆弱な状態ではなくなるということだ。
構成情報だけで脆弱性の有無を判断すると、たとえ悪用される可能性がなくても、「パッチが当たっていないから」という理由で「脆弱性あり」と判断されてしまうことになる。結果として対応不要な脆弱性も含めて脆弱性ありと見えてしまい、余計な対応が発生してしまうことになる。
最後に紹介するのがパッシブ型のスキャナーである。パッシブ型スキャナーではネットワーク型スキャナーやエージェント型スキャナーとは異なり、スキャン対象に対して直接スキャンは行わない。
スキャン対象の通信経路上にあるネットワーク機器に対して、ミラーリング設定を施し通信トラフィックを傍受することで脆弱性情報を識別する。
パッシブ型スキャナーはIoT機器やOT機器など直接スキャンをかけると誤作動や停止などを引き起こす可能性のあるデバイスには非常に有効である。
ただし、パッシブ型スキャナーで取得可能な情報はネットワーク型やエージェント型より少ないため、あくまでそれらのスキャナーを補完するものとして取り扱うべきである。
以上、脆弱性スキャナーでよく使用される3種類のスキャナーを紹介した。各スキャナーには長所、短所が存在しており、スキャン対象に応じて適切なスキャナーを配置することが非常に重要になってくる。
また脆弱性スキャナーによっては、脆弱性の診断精度や新規脆弱性への対応の有無も大きく変わってくることになるため、脆弱性スキャナーの選定にはある程度時間をかけて精査することをお勧めする。
次回の記事では「脆弱性管理をどのように成熟させていくべきか」について説明する。
Copyright © ITmedia, Inc. All Rights Reserved.