Tenable ブログ
ブログ通知を受信するNessus スキャナーによる資産の検出: サイバーリスク評価の第1歩
効果的な脆弱性管理には、アタックサーフェス全体にわたる既存資産の正確なインベントリを構築することが欠かせません。Nessus スキャナーによる資産の検出プロセスがインベントリの構築にどう役立つのかについてご紹介します。
効果的な中核的脆弱性管理を行うためには、完全な資産インベントリを常に構築しておく必要があります。アタックサーフェスの規模と複雑さが増大し続けていることを考えると、中核的な IT 資産だけでなく、オペレーショナルテクノロジー (OT) 関連の資産や「シャドー IT」資産も含めたネットワーク内のあらゆる資産の特定が、これまで以上に重要です。適切に管理されていない資産はリスクを追加します。
すべての資産を特定したら、リスク評価のための正確な情報を収集するために、それぞれの資産を可視化する必要があります。ほとんどの脆弱性チェックは、影響を受ける具体的なプラットフォームやバージョンに関する、一般に公開されている情報に依存しています。したがって脆弱性チェックの正確さは、資産から得られるプラットフォームやソフトウェア、バージョン、パッチに関する正確な情報に左右されます。
Nessus スキャナーは脆弱性の検出能力に関しては有名ですが、ネットワークからインベントリ情報を取り込む機能があることはそれほど知られていません。しかし、Nessus のインベントリ情報の取り込み機能は、以下の点に大きな効果があります。
- 資産の可視性の向上と、盲点の顕在化
- インストールされているソフトウェアやバージョンなどのデータポイントに大きく依存する、中核的脆弱性管理
- サイバー上のリスク変動資産に関する Lumin のメトリクスを正確に計算する、リスクベースの脆弱性管理 (RBVM)
ACR (資産重要度の格付け) はデバイスの種類や機能に基づいて計算されるため、資産インベントリ情報は ACR などの Lumin のメトリクスに直結した影響力があります。AES (資産のエクスポージャースコア) などの他のメトリクスは、中核的脆弱性管理の情報に基づいて生成され、結果として資産インベントリにも依存しています。
Nessus スキャナーによる資産の検出
Nessus スキャナーによる資産検出は、複数の Nessus プラグインによって行われます。プラグインの大部分 (95% 以上) は脆弱性カバレッジに特化している一方、資産検出は正確なホスト情報に依存しているため、専用のプラグイン (多くの場合、深刻度の設定が INFO のもの) を介して取得されます。なお、Nessus スキャナーは主にシャドー IT 資産を含む IT 領域に重点を置いているのに対して、OT 資産は Tenable.ot などの別の Tenable 製品が対応しています。
資産検出プロセスは、論理的には図 1 に示すように主に 4 つの段階、すなわちポートスキャン、サービスとプロトコルの検出、ソフトウェアの検出、OS のフィンガープリンティングで構成されます。検出は論理的な順番で複数のプラグインによって行われ、それぞれの段階で生成される出力が後続の段階で使用されます。ただし、各段階は多少オーバーラップする場合もあります (プロトコル検出用の一部のプラグインは、ソフトウェア検出用のプラグインと同時に実行される場合など)。
図 1:Nessus の資産検出の各段階と出力
資産検出の 4 つの段階では次のことが実行されます。
- ポートスキャン:Nessus スキャナーがさまざまな方法でホストに ping を送信し、開いているポートの情報を取得して、スキャンを実行すべきかどうかを決定します。
- サービスとプロトコルの検出:Nessus が開いているポートを探って、リッスンしているサービスと既知のプロトコルを探します。
- ソフトウェア検出:主な目的は、ホスト内のさまざまなアプリとそのバージョン、そして利用可能なパッチをリスト化することです。
- 最後に、Nessus は前の段階で集めたすべての情報を使用して、リモートホストの OS とバージョンの特定を試みます。
以下のセクションではそれぞれの段階と、関連する主なファミリーやプラグインについて説明します。
ポートスキャン
Nessus によるスキャンを開始すると、指定されたホストが動作しているかをまずチェックし、ホストが動作している場合には開いているポートをリッスンします。リモートホストに ping する Ping Remote Host プラグイン (10180) は、指定されたホスト名または IP と、実際に動作しているターゲットが一致するかどうかの判断を試みるもので、Nessus スキャンで通常最初に実行されるプラグインです (このプラグインは無効にすることもできます)。ターゲットからの応答がない場合は、ホストは停止していると判断され、スキャンは停止します。ターゲットからの応答があった場合、Nessus はポートスキャナーファミリーの複数のプラグインを使用してポートスキャンを試みます。ポートスキャンはリモートで、または (認証情報が利用可能な場合は) ローカルで実行できます。開いているポートの調査は、後に続くサービスの検出とプロービングを可能にするだけでなく、リモートホストとのさらなる通信も可能にすることから、あらゆるネットワークスキャナーにとって非常に重要なステップです。
次に Nessus は、対象のホストがプリンターや OT デバイスのような「脆弱な」資産かどうかをチェックします。脆弱な資産に対してアクティブスキャンなどが多くの種類のリクエストを大量に送信すると、悪影響を及ぼす可能性があるからです。脆弱なデバイスの保護機能がデフォルトで有効となっています。脆弱なデバイスが検出されると、22481 や 11933 のような「ストッパープラグイン」によってスキャンが中断されます。
図 2:Nessus によるポートスキャンの段階
サービスとプロトコルの検出
ホストの開いているポートのリストに基づいて、スキャナーは主にサービス検出ファミリーのプラグインを利用して、サービスとプロトコルの検出を行います。
サービス検出プラグイン (主にプラグイン 22964) は、開いているポートをプローブして応答を分析し、リモートホストでどのサービスが実行中であるかどうかを判定します。既知のサービスと未知のサービスに関する情報 (例:サービスバナー、サービスのバージョンまたは SSL のカプセル化など) は、後続のプラグインで利用するために保存されます。
その後、検出されたサービスに基づいて、スキャナーは特定のプロトコルとそのバージョンに関するプロービングを行います。多くのプロトコルが対象ですが、HTTP (10582、10107)、SSL / TLS (21643)、SSH (10267)、Telnet (10280)、SMB (10394、10150)、SNMP (40448)、SMTP (10263) などが代表的なものです。ここで特別なケースとして、SMB と SSH のプロービングの一部は、ホストに対する ping の直後に行われる場合がある点に注意してください。この 2 つのプロトコルは認証スキャンに使用される可能性があり、その場合にはローカルのポートスキャンが有効になるためです。
図 3:Nessus によるサービス検出の段階
ソフトウェアの検出
収集された利用可能なプロトコルとサービスに関する情報に基づいて、Nessus スキャナーはリモートホスト上の特定のアプリとそのバージョン、パッチ、そして追加情報の検出を試みます。この検出は、大きく 3 種類に分類できます。
- 認証情報ありのアクセスとローカルのシステム情報に基づくローカル検出
- 特定のプロトコルとサービスをプローブしてフィンガープリンティングするリモート検出
- ローカルとリモートの両方の手法を使用して識別を行う複合検出
認証情報ありの検出は、認証情報なしの場合と比較して成功する可能性が高く、より完全かつ信頼できる情報が得られる点に留意しましょう。
ローカルでの検出
認証スキャンの場合、スキャナーはサポートされている OS (Windows と Unix ベース) 用の「ローカル列挙機能」をいくつか実行します。目的は、インストールされているパッチとソフトウェア (13855、97993、83991)、プロセスやサービス (110483、70329) を含む、システムの一般的な特性に関する情報を得ることです。後続のプラグインはこの情報を取り込み、特定の検出やその他のチェックに利用することができます。Windows と Unix ベースの OS の双方に関する具体例を次に解説します。
まず、典型的な Windows のローカル検出のケースとして、Zoom クライアント (118801) を例にとって考えてみます。このプラグインは、13855 から得られる Windows レジストリの情報をチェックします。見つかった情報に応じて、レジストリとファイルシステムに対する追加のチェックが実行され、バージョン情報の取得とインストール場所の検証が行われます。
図 4:Nessus スキャナーにより実行されるローカルの Zoom Windows 検出プラグインと依存関係
それでは、Unix でのローカルの Java 検出 (64815) のケースについて考えてみましょう。Java は複数の方法を介してシステムに存在する可能性があるため、検出プロセスはもう少し複雑になります。このプラグインでは、ファイルシステムの情報、パッケージマネージャーのデータ、実行中のプロセスに基づいた複合チェックが行われます。
図 5:Nessus により実行されるローカルの Unix Java 検出プラグインと依存関係
リモートでの検出
先に述べたように、リモート検出にはプロービングとフィンガープリンティングが重要な役割を果たします。リモート検出はローカル検出ほど正確ではありませんが、システムの認証情報を必要とせず、ネットワーク内の盲点の発見に役立つことがあります。一例として、リモートの HTTP ベースの検出について見てみましょう。
ウェブサーバーやウェブアプリ、HTTP 通信などがもっとも一般的に利用されていることを考えると、HTTP ベースの検出はおそらく、Nessus のリモート検出の中で最も広く利用されているものです。図 6 は、Apache Web Server の HTTP ベースの検出 (プラグイン 48204) の例を示しています。サービスとプロトコルの検出 (例:10582) からの情報の流れと、別のプラグインがどのように HTTP サーバーの一般的な情報 (例:10107、19689) と特に Apache ウェブサーバーの情報 (例:111465) を集計しているのかが確認できます。
図 6:Nessus スキャナーにより実行されるリモートの Apache HTTP Server の検出プラグインと依存関係
複合検出
最後に、複合検出はローカルのソースとリモートのソースの両方から情報を取り込みます。たとえば Cisco IOS の検出 (47864) は、リモートの SNMP プラグイン (10800、10969) からの情報と、ローカルの列挙 (12634) の情報を取り込みます。しかし、複合検出の多くは単独のプラグインで実行するのではなく、ローカルとリモートの検出プラグインが別個に存在することに注意が必要です。いくつか例を挙げると、Weblogic (71642、71643、73913) や Apache HTTP Server (48204、141262、141394) などです。
図 7:Nessus プラットフォームとソフトウェア情報の段階
OS の識別
OS の識別は、それ以前のすべての段階で収集された情報をスキャナーが検討して最も可能性の高い推測を行う、資産インベントリパイプラインの最後のステップです。OS の識別プラグイン (11936) は、図 8 に示すように他の多くのプラグインと複数のプロトコルに依存しています。これらのプラグインは、各々、その種類に応じた信頼度で独自の推測を行うことができます。信頼度は個々の場合に応じて定められ、関連する特定のプロトコルとフィンガープリントによって大きく変わります。
以下の表では、4 つのフィンガープリンティング方法に関する例が示されています。OS の識別プラグインは最も信頼度の高い方法 (SMB ローカル) を選択し、識別された OS としてその推測を報告します。
方法 | 推測 | 信頼度 |
---|---|---|
HTTP | Microsoft Windows | 70 |
SMB (リモート) | Windows 6.3 | 70 |
MSRPC | Microsoft Windows Server 2012 R2 Standard | 99 |
SMB (ローカル) | Microsoft Windows Server 2012 R2 Standard | 100 |
出典:Tenable
フィンガープリンティング方法の一部のみが OS の推測を行うことができる点に注意してください。たとえば、HTTP の推測 (25247) は、リモートホストで HTTP を検出し、バナーを取得して Nessus プラグイン内の既知の OS フィンガープリントと照合できる場合にのみ利用できます。また、異なる方法を使用すると、他の方法よりもさらに詳しい情報を入手できる場合がある点にも留意してください。たとえば確率的なフィンガープリント機能 (132935) を使用すればベースとなる Linux のディストリビューションを推測できるかもしれませんが、Linux ローカルのフィンガープリント機能 (25335) であれば具体的なディストリビューション、バージョン、ビルドを正確に識別できます。
図 8:Nessus による OS の識別の段階
まとめ
Nessus の資産インベントリ機能は、従来の脆弱性管理とリスクベースの脆弱性管理の両方の土台となります。また、資産インベントリ機能そのものは、ネットワークインベントリの手段として有用であり、盲点を明らかにするのに役立つ機能です。Tenable では、お客様がサイバー上のリスク変動資産を正確に判定できるように、毎年数百個もの新しいソフトウェアとハードウェア用の資産検出プラグインをリリースしています。
もっと詳しく
関連記事
- BYOD
- Nessus
- Risk-based Vulnerability Management
- Vulnerability Management
- Vulnerability Scanning