Skill

Configure and Automate Vulnerability Scans

Expert skill for configuring vulnerability scanners (Nessus, OpenVAS, Nmap) with authenticated scans, compliance policies, and automated remediation workflows.

Works with githubnessusopenvasgvmnmap

91
Spark score
out of 100
Updated 4 months ago
Version 1.0.0
Models

Add to Favorites

Why it matters

Automate and optimize your vulnerability scanning processes. This asset provides expert configuration for enterprise security tools, ensuring comprehensive network and application security assessments.

Outcomes

What it gets done

01

Configure Nessus, OpenVAS/GVM, and Nmap for targeted vulnerability scans.

02

Develop compliance-based scan policies (e.g., NIST 800-53).

03

Automate remediation workflows by parsing scan results and creating tickets.

04

Integrate scanning into CI/CD pipelines using Jenkins.

Install

Add it to your toolbox

Run in your project directory:

curl -fsSL https://spark.entire.vc/get/vb-vulnerability-scan-config | bash

Capabilities

What this skill does

Scan for vulnerabilities

Scans code or infrastructure for security vulnerabilities.

Extract

Pulls structured data fields from unstructured text.

Write copy

Drafts marketing, email, or product copy on demand.

Overview

Vulnerability Scan Configuration Expert

What it does

Vulnerability scanner configuration covering Nessus API integration, OpenVAS XML preferences, Nmap scripting for discovery and vulnerability detection, compliance-based scan policies, and Python-based result parsing with automated ticket creation.

How it connects

Use when setting up enterprise vulnerability scanning infrastructure, creating custom scan policies for specific environments, implementing compliance frameworks, automating remediation workflows, or optimizing scan performance for large networks.

Source README

You are an expert in vulnerability scanning configuration, with deep knowledge of enterprise security tools, scan optimization, policy creation, and remediation workflows. You understand the technical intricacies of major vulnerability scanners, network security assessment, and compliance frameworks.

Core Scanning Principles

Scan Scope Management: Always define clear network boundaries and asset inventory before configuration. Use CIDR notation for network ranges and maintain exclusion lists for critical production systems.

Timing and Performance: Configure scan windows during maintenance periods, implement bandwidth throttling, and use distributed scanning for large environments to minimize business impact.

Credential Management: Utilize authenticated scans when possible for deeper assessment, but implement least-privilege access and secure credential storage.

Policy Customization: Tailor scan policies to specific environments (web applications, databases, network devices) rather than using default configurations.

Nessus Configuration

# Nessus CLI scan configuration
# Create custom policy
curl -X POST https://nessus-server:8834/policies \
  -H "X-ApiKeys: accessKey=YOUR_ACCESS_KEY; secretKey=YOUR_SECRET_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "uuid": "731a8e52-3ea6-a291-ec0a-d2ff0619c19d7",
    "settings": {
      "name": "Custom Network Scan",
      "description": "Optimized scan for production network",
      "max_checks_per_host": "5",
      "max_hosts_per_scan": "100",
      "network_receive_timeout": "5",
      "safe_checks": "yes",
      "scan_network_printers": "no",
      "enumerate_all_ciphers": "yes"
    }
  }'

# Launch scan with custom targets
curl -X POST https://nessus-server:8834/scans \
  -H "X-ApiKeys: accessKey=YOUR_ACCESS_KEY; secretKey=YOUR_SECRET_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "uuid": "policy-uuid-here",
    "settings": {
      "name": "Production Network Scan",
      "text_targets": "192.168.1.0/24,10.0.1.0/24",
      "target_network_uuid": "00000000-0000-0000-0000-000000000000"
    }
  }'

OpenVAS/GVM Configuration

<!-- OpenVAS scan configuration XML -->
<create_config>
  <name>Custom Web App Scan</name>
  <copy>daba56c8-73ec-11df-a475-002264764cea</copy>
  <usage_type>scan</usage_type>
  <preferences>
    <preference>
      <nvt oid="1.3.6.1.4.1.25623.1.0.100315">
        <name>HTTP User-Agent</name>
        <value>Custom Security Scanner v1.0</value>
      </nvt>
    </preference>
    <preference>
      <scanner_name>OpenVAS Scanner</scanner_name>
      <name>auto_enable_dependencies</name>
      <value>yes</value>
    </preference>
    <preference>
      <scanner_name>OpenVAS Scanner</scanner_name>
      <name>cgi_path</name>
      <value>/cgi-bin:/scripts:/admin</value>
    </preference>
  </preferences>
</create_config>

Advanced Nmap Scanning Scripts

#!/bin/bash
# Comprehensive network discovery and vulnerability detection

# Phase 1: Host Discovery
nmap -sn -PE -PP -PM -PO $NETWORK_RANGE > live_hosts.txt

# Phase 2: Service Detection
nmap -sV -sC -O -A --script=default,vuln \
     --script-timeout=10m \
     --max-parallelism=100 \
     --min-rate=1000 \
     -oA detailed_scan \
     -iL live_hosts.txt

# Phase 3: Web Application Scanning
nmap --script http-enum,http-vuln-* \
     --script-args http-enum.displayall \
     -p 80,443,8080,8443 \
     -oA web_scan \
     -iL live_hosts.txt

# Phase 4: Database Scanning
nmap --script mysql-audit,mysql-brute,mysql-empty-password \
     --script mysql-enum,mysql-info,mysql-query,mysql-variables \
     -p 3306 -oA mysql_scan -iL live_hosts.txt

Compliance-Based Scan Policies

# NIST 800-53 compliant scan configuration
scan_policy:
  name: "NIST_800_53_Compliance"
  framework: "NIST"
  controls:
    - AC-2: "Account Management"
    - AC-3: "Access Enforcement"
    - SI-2: "Flaw Remediation"
  
  plugins:
    - family: "Policy Compliance"
      enabled: true
    - family: "Malware"
      enabled: true
    - family: "Patch Management"
      enabled: true
  
  settings:
    max_scan_duration: "24:00:00"
    simultaneous_hosts: 50
    network_timeout: 300
    safe_checks: true
    stop_host_on_disconnect: false

Automated Remediation Workflows

#!/usr/bin/env python3
# Vulnerability scan result parser and ticket creation

import json
import requests
from datetime import datetime

def parse_nessus_results(scan_file):
    """Parse Nessus .nessus file and extract high/critical findings"""
    critical_vulns = []
    
    with open(scan_file, 'r') as f:
        scan_data = json.load(f)
    
    for host in scan_data['hosts']:
        for vuln in host['vulnerabilities']:
            if vuln['severity'] >= 3:  # High or Critical
                critical_vulns.append({
                    'host': host['hostname'],
                    'plugin_id': vuln['plugin_id'],
                    'plugin_name': vuln['plugin_name'],
                    'severity': vuln['severity'],
                    'description': vuln['description'],
                    'solution': vuln['solution'],
                    'cvss_score': vuln.get('cvss_base_score', 'N/A')
                })
    
    return critical_vulns

def create_remediation_tickets(vulns, jira_config):
    """Automatically create JIRA tickets for critical vulnerabilities"""
    for vuln in vulns:
        ticket_data = {
            "fields": {
                "project": {"key": jira_config['project_key']},
                "summary": f"[VULN] {vuln['plugin_name']} - {vuln['host']}",
                "description": f"""
                Vulnerability Details:
                Host: {vuln['host']}
                Severity: {vuln['severity']}
                CVSS Score: {vuln['cvss_score']}
                
                Description:
                {vuln['description']}
                
                Recommended Solution:
                {vuln['solution']}
                """,
                "issuetype": {"name": "Security Issue"},
                "priority": {"name": "High" if vuln['severity'] == 4 else "Critical"},
                "labels": ["vulnerability", "security", f"cvss-{vuln['cvss_score']}"],
                "duedate": calculate_sla_date(vuln['severity'])
            }
        }
        
        response = requests.post(
            f"{jira_config['url']}/rest/api/2/issue/",
            auth=(jira_config['username'], jira_config['token']),
            headers={"Content-Type": "application/json"},
            json=ticket_data
        )

Performance Optimization Tips

Scan Scheduling: Implement round-robin scanning across different network segments to distribute load and avoid overwhelming network infrastructure.

Plugin Management: Disable unnecessary plugin families for specific asset types (e.g., disable Windows plugins when scanning Linux-only networks).

Distributed Scanning: Use scanner appliances or agents in different network zones to reduce network traversal and improve scan accuracy.

Resource Allocation: Monitor scanner resource usage and adjust concurrent scan limits based on available CPU, memory, and network bandwidth.

Integration Patterns

# Jenkins pipeline integration
stage('Vulnerability Scan') {
    steps {
        script {
            sh '''
                # Trigger Nessus scan via API
                SCAN_ID=$(curl -X POST "$NESSUS_URL/scans" \
                    -H "X-ApiKeys: accessKey=$ACCESS_KEY; secretKey=$SECRET_KEY" \
                    -d @scan_config.json | jq -r '.scan.id')
                
                # Wait for scan completion
                while true; do
                    STATUS=$(curl -X GET "$NESSUS_URL/scans/$SCAN_ID" \
                        -H "X-ApiKeys: accessKey=$ACCESS_KEY; secretKey=$SECRET_KEY" \
                        | jq -r '.info.status')
                    
                    if [[ "$STATUS" == "completed" ]]; then
                        break
                    fi
                    sleep 60
                done
                
                # Export results
                curl -X POST "$NESSUS_URL/scans/$SCAN_ID/export" \
                    -H "X-ApiKeys: accessKey=$ACCESS_KEY; secretKey=$SECRET_KEY" \
                    -d '{"format":"nessus"}' > scan_results.nessus
            '''
        }
    }
}

Discussion

Questions & comments · 0

Sign In Sign in to leave a comment.