mcpField
S
scanning-infrastructure-with-nessus

scanning-infrastructure-with-nessus

github.com/mukul975セキュリティ35.2k81 回インストール8 週間前に更新
リポジトリ

scanning-infrastructure-with-nessus について

Tenable Nessus でネットワークインフラを評価するセキュリティチーム向けの実践スキルです。スキャンポリシーの設定、認証・非認証スキャン、結果の確認、レポート出力を扱います。

主な機能

  1. 01スキャンポリシーの設定
  2. 02認証・非認証スキャンの実行
  3. 03ホスト、サービス、Web アプリのスキャン
  4. 04深刻度別の検出結果確認
  5. 05複数形式での結果出力

活用シーン

  1. 01サーバーやネットワーク機器の評価
  2. 02定期的な脆弱性監査の実施
  3. 03パッチとコンプライアンス状況の確認
  4. 04スキャンレポートによる修正状況の追跡

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/mukul975/anthropic-cybersecurity-skills --skill scanning-infrastructure-with-nessus

インストール後、Claude Code で/scanning-infrastructure-with-nessusを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

LICENSE
assets/
template.md
references/
api-reference.md
standards.md
workflows.md
scripts/
agent.py
process.py

詳細

Nessus によるインフラストラクチャのスキャン

概要

Tenable Nessus は、サーバー、ワークステーション、ネットワーク機器、オペレーティングシステムなどのネットワークインフラストラクチャ全体にわたってセキュリティ上の弱点を特定するために使用される、業界をリードする脆弱性スキャナーです。このスキルでは、スキャンポリシーの設定、認証スキャンと未認証スキャンの実行、結果の解釈、継続的な脆弱性管理ワークフローへの Nessus の統合について説明します。

使用する場面

  • nessus を使用してインフラストラクチャをスキャンするセキュリティ評価を実施するとき
  • 関連するセキュリティイベントに対するインシデント対応手順に従うとき
  • 定期的なセキュリティテストや監査活動を実施するとき
  • 実地テストを通じてセキュリティ制御を検証するとき

前提条件

  • Nessus Professional または Essentials のライセンスがインストールされ、有効化されていること
  • ターゲットシステムへのネットワークアクセス(スキャナーの IP を許可するファイアウォールルール)
  • 認証スキャン用の管理者資格情報
  • TCP/IP ネットワークと一般的なサービスに関する理解
  • ターゲット環境のスキャンに対する書面による許可

基本概念

Nessus のアーキテクチャ

Nessus はクライアントサーバーアプリケーションとして動作し、Nessus スキャナーエンジンはホストシステム上でサービス(nessusd)として実行されます。Tenable の調査チームが毎週更新する 200,000 を超えるプラグインを備えた、プラグインベースのアーキテクチャを使用します。各プラグインは、特定の脆弱性、設定ミス、またはコンプライアンスチェックをテストします。

スキャンの種類
  1. ホスト検出 - ICMP、TCP、UDP、ARP を使用して稼働中のホストを特定します
  2. 基本ネットワークスキャン - 一般的な脆弱性を対象とするデフォルトのポリシーです
  3. 高度なスキャン - プラグインを細かく選択できるカスタムポリシーです
  4. 認証済みパッチ監査 - インストール済みのパッチを確認する認証スキャンです
  5. Web アプリケーションテスト - Web 固有の脆弱性をスキャンします
  6. コンプライアンス監査 - CIS、DISA STIG、PCI DSS のベンチマークに照らして確認します
プラグインファミリー

Nessus はプラグインを次のようなファミリーに分類しています。

  • オペレーティングシステム:Windows、Linux、macOS、Solaris
  • ネットワーク機器:Cisco、Juniper、Palo Alto、Fortinet
  • Web サーバー:Apache、Nginx、IIS、Tomcat
  • データベース:Oracle、MySQL、PostgreSQL、MSSQL
  • サービス:DNS、SMTP、FTP、SSH、SNMP

ワークフロー

ステップ 1:初期設定
# Start Nessus service
sudo systemctl start nessusd
sudo systemctl enable nessusd

# CLI management with nessuscli
/opt/nessus/sbin/nessuscli update --all
/opt/nessus/sbin/nessuscli fix --list

# Verify plugin count
/opt/nessus/sbin/nessuscli update --plugins-only
ステップ 2:スキャンポリシーの作成

https://localhost:8834 の Nessus Web UI でカスタムスキャンポリシーを設定します。

  1. Policies > New Policy > Advanced Scan に移動します
  2. General の設定を行います:名前、説明、ターゲット
  3. Discovery の設定を行います。
    • Host Discovery:Ping メソッド(ICMP、ポート 22、80、443 での TCP SYN)
    • Port Scanning:一般的なポートまたは全 65535 ポートを対象とする SYN スキャン
    • Service Discovery:すべてのポートでサービスをプローブ
  4. Assessment の設定を行います。
    • Accuracy:通常の精度を上書きします(誤検知を減らします)
    • Web Applications:Web サーバーをスキャンする場合は有効にします
  5. ターゲット環境に関連するプラグインファミリーを選択します
ステップ 3:資格情報の設定

認証スキャンを行うには、Credentials タブで資格情報を設定します。

  • SSH:ユーザー名とパスワード、または SSH キーペア
  • Windows:SMB、WMI 経由のドメイン資格情報
  • SNMP:コミュニティ文字列(v1/v2c)または USM 資格情報(v3)
  • データベース:Oracle、MySQL、PostgreSQL の接続文字列
  • VMware:vCenter または ESXi の資格情報
ステップ 4:スキャンの実行
# Using Nessus REST API via curl
# Authenticate and get token
curl -k -X POST https://localhost:8834/session \
  -d '{"username":"admin","password":"password"}' \
  -H "Content-Type: application/json"

# Create scan
curl -k -X POST https://localhost:8834/scans \
  -H "X-Cookie: token=<TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
    "uuid": "<TEMPLATE_UUID>",
    "settings": {
      "name": "Infrastructure Scan Q1",
      "text_targets": "192.168.1.0/24",
      "enabled": true,
      "launch": "ON_DEMAND"
    }
  }'

# Launch scan
curl -k -X POST https://localhost:8834/scans/<SCAN_ID>/launch \
  -H "X-Cookie: token=<TOKEN>"

# Check scan status
curl -k -X GET https://localhost:8834/scans/<SCAN_ID> \
  -H "X-Cookie: token=<TOKEN>"
ステップ 5:結果の分析

Nessus は検出結果を重大度別に分類します。

  • 重大(CVSS 9.0-10.0):直ちに修正が必要です
  • 高(CVSS 7.0-8.9):7~14 日以内に修正します
  • 中(CVSS 4.0-6.9):30 日以内に修正します
  • 低(CVSS 0.1-3.9):次回のメンテナンス期間中に修正します
  • 情報:直ちに対応する必要はありません
ステップ 6:エクスポートとレポート
# Export via REST API
curl -k -X POST "https://localhost:8834/scans/<SCAN_ID>/export" \
  -H "X-Cookie: token=<TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"format":"nessus"}'

# Supported formats: nessus (XML), csv, html, pdf

ベストプラクティス

  1. 本番環境への影響を最小限に抑えるため、メンテナンス時間帯にスキャンをスケジュールします
  2. 認証スキャンを使用すると、脆弱性の検出数が45~60%増加します
  3. 壊れやすいシステム(医療機器、レガシーなSCADA)は、積極的なスキャンの対象から除外します
  4. ネットワークセグメントごとに個別のスキャンポリシーを維持します
  5. 最近公開されたCVEを検出できるよう、スキャンの前に毎回プラグインを更新します
  6. 修正チームにエスカレーションする前に、重大な検出結果を手動で検証します
  7. スキャン結果の傾向を記録し、時間の経過に伴う修正の進捗を追跡します
  8. 一元管理のため、スキャン結果をTenable.scまたはTenable.ioに保存します

よくある落とし穴

  • 認証なしのスキャンだけを実行する(脆弱性の45~60%を見逃します)
  • 書面による承認なしにスキャンする(法的・倫理的な違反です)
  • スキャンが本番システムのパフォーマンスに与える影響を無視する
  • プラグインの調整を怠り、誤検知が過剰に発生する
  • スキャン開始前にスキャナーのネットワーク接続を検証しない
  • 環境に合わせてカスタマイズせず、デフォルトのスキャンポリシーを使用する

関連スキル

  • 認証付き脆弱性スキャンの実行
  • CVSSスコアリングによる脆弱性の優先順位付け
  • 継続的な脆弱性監視の実装
  • ネットワーク脆弱性評価の実行

コメント