mcpField
I
implementing-rapid7-insightvm-for-scanning

implementing-rapid7-insightvm-for-scanning

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

implementing-rapid7-insightvm-for-scanning について

Rapid7 InsightVM を導入するセキュリティチーム向けの実践ガイドです。Security Console、分散 Scan Engine、スキャンテンプレート、認証スキャン、Insight Agent、修復ワークフロー、API 自動化を扱います。

主な機能

  1. 01Security Console と Scan Engine の導入
  2. 02資産検出とスキャンテンプレートの設定
  3. 03認証スキャンの構成
  4. 04Insight Agent の展開
  5. 05修復ワークフローと API 自動化の設定

活用シーン

  1. 01InsightVM 導入の計画
  2. 02ネットワークセグメント別のスキャン設定
  3. 03ローミング端末の脆弱性評価
  4. 04脆弱性管理タスクの自動化

インストール

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

$npx skills add https://github.com/mukul975/anthropic-cybersecurity-skills --skill implementing-rapid7-insightvm-for-scanning

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

同梱ファイル

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

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

詳細

Rapid7 InsightVM をスキャン用に実装する

概要

Rapid7 InsightVM(旧 Nexpose)は、Security Console と Scan Engine によるオンプレミスのスキャンと、Insight Platform によるクラウドベースの分析を組み合わせたエンタープライズ向け脆弱性管理プラットフォームです。InsightVM は、Rapid7 の脆弱性リサーチライブラリ、Metasploit の悪用に関する知識、グローバルな攻撃者の行動データ、インターネット全体のスキャンテレメトリ、およびリアルタイムのレポート機能を活用し、包括的な脆弱性の可視化を実現します。このスキルでは、Security Console のデプロイ、Scan Engine の設定、スキャンテンプレートの設定、認証付きスキャン、および継続的な評価のための Insight Agent との統合について説明します。

使用するタイミング

  • 環境で rapid7 insightvm をスキャン用に実装する機能をデプロイまたは設定するとき
  • コンプライアンス要件に沿ったセキュリティ統制を確立するとき
  • この領域のセキュリティアーキテクチャを構築または改善するとき
  • この実装が必要なセキュリティ評価を実施するとき

前提条件

  • 最小要件を満たすサーバー:16 GB RAM、4 CPU コア、500 GB ディスク(Security Console)
  • Scan Engine:8 GB RAM、4 CPU コア、100 GB ディスク
  • 対象サブネットへのネットワークアクセス(ポートはスキャンの種類によって異なります)
  • 認証付きスキャン用の管理者資格情報(SSH、WMI、SNMP)
  • Rapid7 InsightVM のライセンスと Insight Platform のアカウント
  • PostgreSQL データベース(Security Console に同梱)

基本概念

InsightVM のアーキテクチャコンポーネント
Security Console

以下の役割を担う中央管理サーバーです。

  • Web ベースの管理インターフェースをホストします(デフォルトポート 3780)
  • スキャン結果を組み込みの PostgreSQL データベースに保存します
  • Scan Engine のデプロイとスキャンスケジュールを管理します
  • レポートとダッシュボードを生成します
  • クラウド分析のために Rapid7 Insight Platform に接続します

注意:Security Console はコンテナ化された環境ではサポートされていません。

Scan Engine

以下の役割を担う分散スキャンコンポーネントです。

  • 対象資産に対して能動的なネットワークスキャンを実行します
  • セグメント化された環境に備えて、ネットワークセグメントをまたいでデプロイできます
  • 柔軟なデプロイのために Docker Hub でコンテナイメージとして提供されています
  • 結果を Security Console に報告します
Insight Agent

以下の機能を提供する軽量のエンドポイントエージェントです。

  • ネットワークスキャンを行わずに継続的な脆弱性評価を実行します
  • リモートおよびローミング中のエンドポイントを評価します
  • 包括的なカバレッジのために、エンジンベースのスキャンを補完します
  • リアルタイムで資産インベントリを更新します
スキャンテンプレートの種類
テンプレート用途深度
Discovery Scan資産インベントリ、ホスト列挙低
Full Audit without Web Spider標準的な脆弱性評価中
Full Audit Enhanced Logging詳細なログを伴う深い評価高
HIPAA Compliance医療分野の規制コンプライアンス高
PCI ASV AuditPCI DSS の外部スキャン要件高
CIS Policy Compliance構成のベンチマーク中
Web SpiderWeb アプリケーションの検出と評価中

ワークフロー

ステップ 1:Security Console のインストール
# Download InsightVM installer (Linux)
chmod +x Rapid7Setup-Linux64.bin
./Rapid7Setup-Linux64.bin -c

# Verify service is running
systemctl status nexposeconsole.service

# Access web interface
# https://<console-ip>:3780

初期設定:

  1. https://localhost:3780 にアクセスします
  2. ライセンスキーを入力してセットアップウィザードを完了します
  3. データベース設定を行います(組み込みの PostgreSQL を推奨)
  4. 管理者資格情報を設定します
  5. クラウド分析のために Insight Platform への接続を有効化します
ステップ 2:分散 Scan Engine のデプロイ
# Install Scan Engine on remote server
./Rapid7Setup-Linux64.bin -c

# During installation, select "Scan Engine only"
# Pair with Security Console using shared secret

# Docker-based Scan Engine deployment
docker pull rapid7/insightvm-scan-engine
docker run -d \
  --name scan-engine \
  -p 40814:40814 \
  -e CONSOLE_HOST=<console-ip> \
  -e CONSOLE_PORT=3780 \
  -e ENGINE_NAME=DMZ-Scanner \
  -e SHARED_SECRET=<pairing-secret> \
  rapid7/insightvm-scan-engine

Security Console でエンジンをペアリングします。

  1. Administration > Scan Engines > New Scan Engine の順に移動します
  2. エンジンのホスト名または IP アドレスとポート(デフォルトは 40814)を入力します
  3. 認証に共有シークレットを使用します
  4. 接続ステータスが "Active" と表示されることを確認します
ステップ 3:資産検出サイトの設定
Site Configuration:
  Name:           Production-Network
  Scan Engine:    Primary-Engine-01
  Scan Template:  Full Audit without Web Spider

  Included Assets:
    - 10.0.0.0/8     (Internal network)
    - 172.16.0.0/12   (DMZ network)

  Excluded Assets:
    - 10.0.0.1        (Core router - fragile)
    - 10.0.100.0/24   (ICS/SCADA segment)

  Schedule:
    Frequency:    Weekly
    Day:          Sunday
    Time:         02:00 AM
    Max Duration: 8 hours
ステップ 4:認証付きスキャンの設定
Windows 資格情報(WMI)
Credential Type:    Microsoft Windows/Samba (SMB/CIFS)
Domain:             CORP.EXAMPLE.COM
Username:           svc_insightvm_scan
Password:           <service-account-password>
Authentication:     NTLM

Privilege Elevation:
  Type:   None (use domain admin or local admin)
Linux/Unix 資格情報(SSH)
Credential Type:    Secure Shell (SSH)
Username:           insightvm_scan
Authentication:     SSH Key (preferred) or Password
SSH Private Key:    /opt/rapid7/.ssh/scan_key
Port:               22

Privilege Elevation:
  Type:             sudo
  sudo User:        root
  sudo Password:    <sudo-password>
データベース資格情報
Credential Type:    Microsoft SQL Server
Instance:           MSSQLSERVER
Domain:             CORP
Username:           insightvm_db_scan
Authentication:     Windows Authentication

Credential Type:    Oracle
Port:               1521
SID:                ORCL
Username:           insightvm_scan
ステップ 5:スキャンテンプレートの設定

バランスの取れたスキャンのためのカスタムスキャンテンプレート:

Template Name:      Enterprise-Standard-Scan

Service Discovery:
  TCP Ports:        Well-known (1-1024) + common services
  UDP Ports:        DNS(53), SNMP(161), NTP(123), TFTP(69)
  Method:           SYN scan (stealth)

Vulnerability Checks:
  Safe checks only: Enabled
  Skip potential:   Disabled
  Web spidering:    Disabled (separate template)
  Policy checks:    Enabled (CIS benchmarks)

Performance:
  Max parallel assets:     10
  Max requests per second: 100
  Timeout per asset:       30 minutes
  Retries:                 2
ステップ 6:Insight Agent デプロイの設定
# Windows Agent Installation (via GPO or SCCM)
msiexec /i agentInstaller-x86_64.msi /quiet /norestart `
  CUSTOMTOKEN=<platform-token> `
  CUSTOMCONFIG=<agent-config>

# Linux Agent Installation
chmod +x agent_installer.sh
./agent_installer.sh install_start \
  --token <platform-token>

# Verify agent connectivity
# Check InsightVM console: Assets > Agent Management
Step 7: リメディエーションワークフローの設定
Remediation Project:
  Name:             Q1-2025-Critical-Remediation

  Scope:
    Severity:       Critical + High
    CVSS Score:     >= 7.0
    Assets:         Production-Network site

  Assignment:
    Team:           Infrastructure-Ops
    Due Date:       2025-03-31

  Tracking:
    Auto-verify:    Enabled (re-scan on next scheduled scan)
    Notification:   Email on overdue items
    Escalation:     Manager notification at 75% SLA
Step 8: 自動化のためのAPI統合
import requests
import json

class InsightVMClient:
    """Rapid7 InsightVM API v3 client for automation."""

    def __init__(self, console_url, api_key):
        self.base_url = f"{console_url}/api/3"
        self.session = requests.Session()
        self.session.headers.update({
            "Content-Type": "application/json",
            "Authorization": f"Bearer {api_key}"
        })
        self.session.verify = not os.environ.get("SKIP_TLS_VERIFY", "").lower() == "true"  # Set SKIP_TLS_VERIFY=true for self-signed certs in lab environments

    def get_sites(self):
        """List all configured scan sites."""
        response = self.session.get(f"{self.base_url}/sites")
        response.raise_for_status()
        return response.json().get("resources", [])

    def start_scan(self, site_id, engine_id=None, template_id=None):
        """Trigger an ad-hoc scan for a site."""
        payload = {}
        if engine_id:
            payload["engineId"] = engine_id
        if template_id:
            payload["templateId"] = template_id

        response = self.session.post(
            f"{self.base_url}/sites/{site_id}/scans",
            json=payload
        )
        response.raise_for_status()
        return response.json()

    def get_asset_vulnerabilities(self, asset_id):
        """Retrieve vulnerabilities for a specific asset."""
        response = self.session.get(
            f"{self.base_url}/assets/{asset_id}/vulnerabilities"
        )
        response.raise_for_status()
        return response.json().get("resources", [])

    def get_scan_status(self, scan_id):
        """Check the status of a running scan."""
        response = self.session.get(f"{self.base_url}/scans/{scan_id}")
        response.raise_for_status()
        return response.json()

    def create_remediation_project(self, name, description, assets, vulns):
        """Create a remediation tracking project."""
        payload = {
            "name": name,
            "description": description,
            "assets": {"includedTargets": {"addresses": assets}},
            "vulnerabilities": {"includedVulnerabilities": vulns}
        }
        response = self.session.post(
            f"{self.base_url}/remediations",
            json=payload
        )
        response.raise_for_status()
        return response.json()


# Usage
client = InsightVMClient("https://insightvm-console:3780", "api-key-here")
sites = client.get_sites()
for site in sites:
    print(f"Site: {site['name']} - Assets: {site.get('assets', 0)}")

ベストプラクティス

  1. ファイアウォールを通過するスキャントラフィックを最小化するため、スキャンエンジンは対象ネットワークの近くに配置してください
  2. ネットワークスキャンで常に到達できるとは限らないローミングノートPCやリモートワーカーには、Insight Agentを使用してください
  3. 最も正確な脆弱性の全体像を得るため、エージェントベースとエンジンベースのスキャンを組み合わせてください
  4. 業務上重要な時間帯の運用への影響を避けるため、スキャンのブラックアウトウィンドウを設定してください
  5. 完全スキャンの前に認証情報テストを実行し、認証が機能することを確認してください
  6. 本番システムへの誤ったサービス拒否を防ぐため、安全チェックを有効にしてください
  7. ネットワークセグメント、事業部門、またはコンプライアンスの範囲ごとにスキャンサイトを分けてください
  8. 動的なレポート作成とリメディエーションの追跡のため、タグベースのアセットグループを活用してください

よくある落とし穴

  • 業務時間中に完全スキャンを実行し、ネットワークの輻輳やサービスの低下を引き起こすこと
  • 認証なしスキャンのみを使用し、ローカルの脆弱性の60〜80%を見逃すこと
  • 過激なスキャンテンプレートから、脆弱な機器(プリンター、ICS/SCADA、医療機器)を除外していないこと
  • スキャンエンジンをネットワークセグメント間に分散配置せず、ファイアウォールがボトルネックになること
  • スキャンエンジンのリソース使用率を無視し、スキャンが不完全に終わること
  • スキャン時間の上限を設定していないため、暴走したスキャンが無期限にリソースを消費すること

関連スキル

  • performing-agentless-vulnerability-scanning
  • building-vulnerability-data-pipeline-with-api
  • implementing-wazuh-for-vulnerability-detection
  • performing-remediation-validation-scanning

コメント