performing-vulnerability-scanning-with-nessus について
セキュリティチームやペネトレーションテスター向けに、Nessus による脆弱性スキャンの設定、結果検証、修正の優先順位付けを扱うスキルです。認証スキャン、誤検知の確認、リスク評価を重視し、書面による許可を得た場合に使用します。
主な機能
- 01スキャンポリシーと認証情報の設定
- 02スキャン進捗と認証状況の監視
- 03検出結果と誤検知の検証
- 04リスクに基づく修正の優先順位付け
- 05概要レポートと詳細レポートの生成
活用シーン
- 01コンプライアンス向け脆弱性評価
- 02脆弱性修正の有効性確認
- 03サーバーやワークステーションのパッチ監査
- 04手動ペネトレーションテスト前の基準作成
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ mukul975/ anthropic-cybersecurity-skills --skill performing-vulnerability-scanning-with-nessusインストール後、Claude Code で/performing-vulnerability-scanning-with-nessusを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
LICENSEreferences/api-reference.mdscripts/agent.py詳細
Nessus を使用した脆弱性スキャン
使用する場合
- ペネトレーションテストの偵察フェーズで初期の脆弱性評価を実施する場合
- PCI-DSS(要件 11.2)、HIPAA、または SOC 2 の基準への準拠を維持するために、定期的な脆弱性スキャンを実施する場合
- 以前に特定された脆弱性が、修正作業によって適切に解消されたことを検証する場合
- 対象を絞った手動エクスプロイトの前に、既知の脆弱性のベースラインを確立する場合
- サーバーおよびワークステーション群全体で、パッチ適用状況と構成のドリフトを監査する場合
手動のペネトレーションテストの代替として、書面による許可を得ていないシステムに対して、またはスキャンによってサービスが中断する可能性のある脆弱なシステム(医療機器、レガシー SCADA)に対しては使用しないでください。
前提条件
- プラグインが最新の Tenable Nessus Professional または Nessus Expert(プラグインは 24 時間以内に更新されたものである必要があります)
- すべてのポートで、対象ホストすべてへのネットワーク接続があること(スキャナーと対象の間にファイアウォールによる制限がないこと)
- 認証スキャン用の管理者認証情報(Windows のドメイン管理者またはローカル管理者、Linux の root/sudo、ネットワーク機器の SNMP コミュニティ文字列)
- スコープ合意書に記載された対象の IP 範囲とホスト名
- 許可された時間帯にスキャンを実施するための変更管理承認
ワークフロー
手順 1:スキャンの構成
エンゲージメントの要件に基づいて、Nessus のスキャンポリシーを構成します。
- スキャンタイプの選択:「Advanced Scan」を選択するとプラグインファミリーを全面的に制御できます。「Credentialed Patch Audit」はパッチ準拠の確認に使用します。プラグインセットが限定されているため、ペネトレーションテストでは「Basic Network Scan」を避けてください。
- 検出設定:ポートスキャンでは、すべての 65,535 個の TCP ポートと上位 1,000 個の UDP ポートをスキャンするように構成します。最大限の範囲をカバーするため、ホスト検出では ARP(ローカル)、TCP SYN、ICMP を使用するように設定します。
- 認証:Windows 認証情報(ローカル管理者権限を持つドメインアカウント)、SSH 認証情報(パスワードよりも鍵認証を優先)、SNMP 認証情報(認証とプライバシー保護を備えた v3 を優先)、データベース固有のチェック用のデータベース認証情報を追加します。
- プラグインの構成:対象環境に関連するすべてのプラグインファミリーを有効にします。ペネトレーションテストでは、明示的に許可されていない限り、「Denial of Service」プラグインが無効になっていることを確認します。Web サーバーでは CGI スキャンを有効にします。
- パフォーマンス設定:スキャナーあたりの最大同時ホスト数(デフォルトは 30。機密性の高いネットワークでは減らします)、ホストあたりの最大同時チェック数(本番環境では 4~5、テスト環境ではそれより多く設定)、対象ネットワークに適したネットワークタイムアウト値を設定します。
手順 2:スキャンの実行と監視
スキャンを開始し、問題がないか監視します。
- 許可されたテスト時間帯にスキャンを開始します
- Nessus の Web インターフェースでスキャンの進行状況を監視し、ホストのタイムアウト、認証失敗、またはエラーの原因となるプラグインがないか確認します
- 「Authentication Failure」の結果で示される認証情報の失敗に注意してください。これは、認証スキャンが未認証モードにフォールバックし、不完全な結果が生成されたことを意味します
- 特定のホストがクラッシュしたり応答しなくなったりした場合は、スキャンを一時停止し、そのホストを除外して、問題をクライアントに報告します
- 大規模ネットワーク(1,000 台以上のホスト)では、負荷を管理し、再開できるようにするため、スキャンを小さなサブネットに分割することを検討します
ステップ 3:結果の分析と検証
スキャン結果を分析し、真陽性と偽陽性を切り分けます。
- 重大度で並べ替える:まず「Critical」と「High」の検出結果から確認します。これらは悪用の可能性と影響が最も大きい脆弱性です。
- 認証を検証する:各ホストでプラグイン 19506(Nessus Scan Information)に「Credentialed checks: yes」と表示されていることを確認します。認証されていないスキャンでは、ローカルの脆弱性を検出できません。
- 参考情報によるノイズを除外する:手動テストに役立つ情報(サービスバナー、SSL 証明書の詳細、オープンポート)が得られる場合を除き、参考情報の検出結果を除外します。
- CVE を照合する:「Critical」および「High」の検出結果ごとに、National Vulnerability Database で CVE を確認します。公開エクスプロイト(Exploit-DB、Metasploit モジュール)があるかも確認します。
- 偽陽性を特定する:よくある偽陽性として、バックポートされたパッチによってソフトウェアが脆弱に見えるバージョンベースの検出があります(RHEL/CentOS でよく見られます)。対象で
rpm -q --changelog <package>を実行して確認します。 - 修復方法ごとにまとめる:各インスタンスを個別に列挙するのではなく、修正に必要なアクションごとに検出結果を整理します(例:「Windows KB5034441 を適用」は 47 台のホストに影響します)。
ステップ 4:脆弱性の優先順位付け
リスクに基づいて優先順位を付け、検証済みの脆弱性を修復します。
- CVSS スコア:CVSS v3.1 の基本スコアを基準にします。9.0~10.0 は「Critical」、7.0~8.9 は「High」、4.0~6.9 は「Medium」、0.1~3.9 は「Low」です。
- エクスプロイトの有無:公開されているエクスプロイトコードがある脆弱性は、特に Metasploit モジュールや武器化された PoC がある場合、優先順位を上げます。
- ネットワークへの露出:インターネットに接続されたシステムの重大な脆弱性は、同じ脆弱性が分離された内部サーバーに存在する場合より優先度が高くなります。
- 資産の重要度:影響を受けるシステムのビジネス上の価値を考慮します。ドメインコントローラー、PII を含むデータベース、決済処理システムは、より高い優先順位で対応する必要があります。
- 代替コントロール:ネットワークセグメンテーション、WAF ルール、EDR による保護で脆弱性が軽減されている場合は、優先順位を下げます(代替コントロールを記録してください)。
ステップ 5:レポートの作成
包括的な脆弱性スキャンレポートを作成します。
- Nessus レポートを、エグゼクティブ向け(PDF)と詳細版(CSV/HTML)の両方の形式でエクスポートします。
- 偽陽性を除外し、検証済みの検出結果だけを含むカスタムレポートを作成します。
- 各脆弱性を推奨される修正方法、影響を受けるホスト、対応期限に対応付けた修復優先度マトリクスを含めます。
- 手動検証で得られた情報を追加します(例:「この検出結果は、侵入テスト中に悪用可能であることが確認されました」)。
- スキャンのメタデータ(日時、スキャナーのバージョン、プラグインセットの日付、使用したスキャンポリシー、認証成功率)を含めます。
主な概念
| 用語 | 定義 |
|---|---|
| 認証済みスキャン | 有効な認証情報を使用して対象ホストにログインし、ローカルチェックを実行する脆弱性スキャンです。認証なしのスキャンよりも、はるかに多くの脆弱性を検出できます。 |
| プラグイン | 特定の脆弱性、設定ミス、コンプライアンス項目をチェックする Nessus のスクリプトです。Nessus は 200,000 を超えるプラグインを維持し、毎日更新しています。 |
| CVSS | Common Vulnerability Scoring System(共通脆弱性評価システム)です。悪用可能性と影響度の指標に基づいて、脆弱性の重大度を 0.0~10.0 で評価する標準化されたフレームワークです。 |
| 偽陽性 | スキャナーが報告したものの、対象に実際には存在しない脆弱性です。多くの場合、エクスプロイトによる検証を行わずにバージョンに基づいて検出することが原因です。 |
| 認証済みパッチ監査 | インストール済みのバージョンを既知の脆弱性データベースと照合し、オペレーティングシステムやアプリケーションに不足しているパッチを特定することに特化したスキャンの種類です。 |
| プラグインファミリー | Nessus のプラグインをカテゴリ別に論理的に分類したグループです(例:Windows、Ubuntu Local Security Checks、Web Servers、Databases)。 |
ツールとシステム
- Nessus Professional:Tenable の商用脆弱性スキャナーです。CVE、設定ミス、コンプライアンスチェックを網羅する 200,000 件を超えるプラグインを備えています
- Nessus Expert:外部攻撃対象領域のスキャン、IaC スキャン、クラウドインフラストラクチャの評価を含む拡張版です
- Tenable.io:資産追跡、傾向分析、優先順位付け機能を備えた、エンタープライズ展開向けのクラウドホスト型脆弱性管理プラットフォームです
- OpenVAS (Greenbone):比較スキャン用に、コミュニティが保守する脆弱性テストを備えたオープンソースの代替脆弱性スキャナーです
よくあるシナリオ
シナリオ:小売企業の四半期ごとの PCI-DSS 脆弱性スキャン
背景:小売企業がクレジットカード決済を処理しており、四半期ごとの内部および外部の脆弱性スキャンを義務付ける PCI-DSS 要件 11.2 に準拠する必要があります。カード会員データ環境(CDE)は、3 つの VLAN にまたがる 200 台のサーバーで構成されています。すべてのホストで Windows Server 2019/2022 または RHEL 8/9 が稼働しています。
アプローチ:
- Windows にはドメインサービスアカウント、Linux ホストには SSH キーを使用して、認証スキャンを設定します
- 関連するすべてのプラグインファミリーを有効にした PCI-DSS スキャンポリシーテンプレートを使用します
- 土曜日のメンテナンス時間(02:00~06:00)に、CDE の全 200 台のホストをスキャンします
- 847 件の検出結果を特定します:Critical 12 件、High 34 件、Medium 189 件、Low/Informational 612 件
- Critical の検出結果を検証します:3 件は誤検知(RHEL のバックポートされたパッチ)、9 件は脆弱性が確認されています
- 残りの検出結果を修復作業ごとに分類します:6 件は Windows パッチ、2 件は Apache のアップグレード、1 件は TLS 設定の強化が必要です
- 修復と再スキャンの後、未対処の Critical または High の脆弱性が残っていないことを示す、PCI 準拠レポートを生成します
注意点:
- 認証なしのスキャンを実行してローカル脆弱性の大半を見逃し、不完全なコンプライアンスレポートを作成する
- スキャン前に Nessus プラグインを更新せず、最近公開された CVE を見逃す
- スキャン強度を下げずに不安定なレガシーシステムをスキャンし、クラッシュやサービス中断を引き起こす
- 重大な検出結果について誤検知がないか手作業で検証せず、Nessus の結果をそのまま受け入れる
出力形式
## Vulnerability Scan Summary - CDE Environment
**Scan Date**: 2025-11-15 02:00-05:47 UTC
**Scanner**: Nessus Professional 10.8.3 (Plugins: 2025-11-14)
**Hosts Scanned**: 200 (198 authenticated, 2 authentication failed)
**Scan Policy**: PCI-DSS Internal Scan
### Findings Summary
| Severity | Count | Validated |
|----------|-------|-----------|
| Critical | 12 | 9 (3 FP) |
| High | 34 | 31 (3 FP) |
| Medium | 189 | 178 |
| Low/Info | 612 | N/A |
### Top Critical Findings
**1. CVE-2024-21762 - Fortinet FortiOS Out-of-Bounds Write (CVSS 9.8)**
- Affected Hosts: fw-cde-01.corp.example.com (10.50.1.1)
- Exploit Available: Yes (Metasploit module)
- Remediation: Upgrade FortiOS to 7.4.3 or later
- Priority: Immediate - internet-facing device protecting CDE
**2. CVE-2024-6387 - OpenSSH regreSSHion (CVSS 8.1)**
- Affected Hosts: 14 Linux servers (see Appendix A)
- Exploit Available: Yes (public PoC)
- Remediation: Upgrade OpenSSH to 9.8p1 or later
- Priority: Within 7 days - authenticated remote code execution
コメント
Markdown 対応