Tenable ブログ
ブログ通知を受信するNessus のファイヤーウォール越しスキャン効果を高める 4 つの方法
ファイヤーウォール越しのスキャン結果の改善には、適切な構成と設定が効果的です。
Nessus のスキャン効果は、ビジーなシステム、レガシーシステム、ネットワークの輻輳、リスニングサービスを多数抱えたホスト、などさまざまな要素によって阻害されます。その中でもファイヤーウォール (とその他のフィルタリングデバイス) は、スピードの遅い、不正確なスキャン結果をもたらす最大の要因と言えます。しかし、ネットワークを基盤としたファイヤーウォールは、どの企業にとってもその周囲の保護と内部ネットワークの隔離に必要不可欠であり、また、ホスト基盤のファイヤーウォールは、Linux と Windowsのシステムで一般的に使われています。
ファイヤーウォールの向こう側にあるネットワーク上にスキャナーを配置して問題を避けることもできますが、状況によっては不可能であり、スキャナーの移動が必要なときには余計な負荷が生じます。ホスト基盤のファイヤーウォールにも通用しません。たとえ、スキャナーの IP アドレスをファイヤーウォール内で有効にしたとしても、コネクションのトラッキングや処理状態を把握した検査がスキャンを妨害し、性能が悪化するでしょう。
典型的な現代の環境では、そのような設定は必要がないと思われます。しかし、旧式の機器やインフラが残存する環境も多いので、欠点をを補うために調整が必要な場合があります。または、監査のために環境内の全ポートに対するスキャンを実行しなければならない場合、どのような影響があるかを事前に把握しておくことが重要です。Nessus を使ったネットワーク内外の脆弱性スキャンではどのようにファイヤーウォールに対応できるか、さまざまな戦略について、以下に詳細をご説明します。
ネットワークスキャンのチューニング
最初のアプローチは、ホスト当たりの同時進行チェック数を設定することです。Nessus の「Advanced」Policy Settings から設定します。
スキャンポリシーによって異なりますが、デフォルトの設定値は 4 または 5 です。 通常、この値が妥当ですが、帯域幅が狭い接続の場合や、古いシステムの場合、またはネットワーク用のスタックの安定性が十分でない場合は、設定を2、または 1 にまで下げることが効果的であると考えられます。注意 : 本文で説明している設定変更について一般的に言えることですが、並行チェック数を下げるとスキャン回数が上昇します。時には非常に多くなることがあります。
最近のホスト型ファイヤーウォールはステートフルなので、接続があるたびに接続を記録します。Nessus の同時接続数があるときに急上昇した場合、ファイヤーウォールはその負荷に耐えられず、接続を切断し、その結果、解放されたポートや脆弱性のスキャンが実行できない、またはターゲットが他と接続できないという問題が生じます。Nessus の同時チェック数を 1 または 2 に制限すると、ホストあたりの同時接続数を削減できるばかりでなく、ターゲットがスキャナーのクエリに応答するのに使うリソースも節約できます。
ホストあたり または スキャンあたりの同時 TCPセッションの最大数など、その他の設定は、ホスト別に生成されるセッションの合計数をコントロールするのに役立ちます。セッションの合計数にはサービス検知と脆弱性チェックの両方がカウントされます。このような設定は、極度に細かい粒度が必要な場合、特に古いインフラ環境で有効です。注意 : ここに説明している設定は、デフォルトの SYN ポートスキャナーの TCP セッション数を直接変更するものではありません。
ポートスキャナーのチューニング
ポートスキャナーの場合、スキャナーがファイヤーウォールに遭遇したときに感度を上昇させることもできます。次のようにスキャンポリシーの「Discovery - Port Scanning」の設定から行います。
使用中のポートスキャナーポリシーを再確認することもお勧めします。 デフォルトは、大多数の状況に問題なく対応できる SYN スキャナーですが、ファイヤーウォール越しのスキャンの場合、ファイヤーウォールの状態遷移表で接続の状態が「解放されたまま」になることがあります。そうすると、TCP スキャナーが接続を閉じようとして 3 ウェイハンドシェイクを試行するので、ターゲットとネットワーク全体の負荷が増えます。しかし、ネットワークのファイヤーウォールがアップグレードできない、または状態遷移表の容量を増やすように再構成できない、またはタイムアウト値を削減できない場合などには役に立つ手段です。
フルポートスキャンがネットワークファイヤウォールに与える影響
ユーザーによっては、ネットワーク監査のためにすべてのポートをスキャンする必要があるでしょう。 その場合、スキャンのトラフィックがネットワークのファイヤーウォールを通るのであれば、用意周到に計画して、セッションとインフラ内のリソースの使用状況を監視してください。
例えば、30 台のホストを同時に評価する場合、生成される可能性のあるハーフオープンのセッション数は 56,535 x 30 (または、各ホストで可能な最大 TCP ポート数の 30 倍) で、この場合、196 万セッションになります。更に、インターフェースの出入りを方向別に維持するネットワークファイヤーウォールもありますが、その場合、状態遷移表には 390 万セッションの容量が必要になります。
このような場合の緩和策として、Tenableではタイムアウト値を極力低く設定してハーフオープンセッションを切断させる、または同時スキャン対象のホスト数を減らす、などを推奨しています。それでも対応できない場合は、スキャナーが送信する SYN パケット数をコントロールすることができます。Nessus スキャナーの Advanced Settings にある nessus_syn_scanner.global_throughput.max の設定値を変更して行います。スキャナーの配置に関する詳細については、Tenable の担当者にお問合せください。
認証スキャンの設定
Nessus の認証スキャンは、ファイヤーウォールで保護されているネットワークのスキャンで発生する大多数の問題は避けることができます。なぜなら、外部から何千ものポートに接続を試行して解放されているポートを探すのではなく、ローカルでポートを列挙しているからです。Nessus のローカルのポートスキャナーはデフォルトで有効になっており、ターゲットへの認証が失敗しない限り継続して実行されます。
ローカルの機能を使うと、解放されている TCP と UDP ポートがすべてすばやく列挙できるので、より正確なスキャン結果が得られます。Linux と Windows を比較した認証チェックの設定方法の詳細については Nessus の製品マニュアルのページをご覧ください。
まとめ
Nessus は非認証ネットワークスキャンにも、認証評価にも、優れた機能を提供します。ファイヤーウォール越しのスキャンは、比較的に長時間かかるかもしれません。しかし、設定を調整すれば、より安全でより正確な結果が得られます。そして、その精度を更に向上させるには、認証情報を持たせたスキャンの活用が、負荷の低減とファイヤーウォール越しの評価に最適です。
最後に、弊社の企業向けソリューションに適切な解決策があるか、ご覧になってみてはいかがでしょうか。Tenable.io と Tenable.sc には Nessus のエージェントが組み込まれており、スキャンしにくいエンドポイントも可視化します。同様に、ネットワーク内の管理されている資産と管理されていない資産の両方を Nessus Network Monitor が継続的に可視化して表示します。Tenable.ot は、オペレーショナルテクノロジー環境で広範囲にわたる可視性を提供します。
関連記事
- Nessus
- Vulnerability Scanning