Implementing Vulnerability Management with Greenbone
Overview
Greenbone Vulnerability Management (GVM) is the open-source framework behind OpenVAS, providing comprehensive vulnerability scanning with over 100,000 Network Vulnerability Tests (NVTs). The python-gvm library provides a Python API to interact with GVM through the Greenbone Management Protocol (GMP), enabling programmatic creation of scan targets, task management, scan execution, and report retrieval. This skill covers connecting to GVM via Unix socket or TLS, authenticating, creating scan configs and targets, launching scans, and parsing XML-based vulnerability reports to produce actionable findings.
When to Use
Trigger phrases:
"implementing vulnerability management with greenbone"
"Deploy and operate Greenbone/OpenVAS vulnerability management using the python-g"
When deploying or configuring implementing vulnerability management with greenbone capabilities in your environment
When establishing security controls aligned to compliance requirements
When building or improving security architecture for this domain
When conducting security assessments that require this implementation
Prerequisites
- Greenbone Community Edition or Greenbone Enterprise Appliance installed
- Python 3.9+ with
python-gvm (pip install python-gvm)
- GMP access credentials (username/password)
- Network connectivity to GVM daemon (Unix socket or TCP/TLS)
- Understanding of CVSS scoring and vulnerability classification
Steps
# Example: IOC detection
import re
IOC_PATTERNS = {
"ip": r"\b(?:\d{1,3}\.){3}\d{1,3}\b",
"domain": r"\b[a-z0-9-]+\.[a-z]{2,}\b",
"hash_md5": r"\b[a-f0-9]{32}\b",
"hash_sha256": r"\b[a-f0-9]{64}\b",
}
def extract_iocs(text: str) -> dict:
return {k: re.findall(v, text) for k, v in IOC_PATTERNS.items()}
- Install python-gvm:
pip install python-gvm
- Establish a GMP connection via
UnixSocketConnection or TLSConnection
- Authenticate with
gmp.authenticate(username, password)
- Create a target with
gmp.create_target(name, hosts=[...], port_list_id=...)
- Create a scan task with
gmp.create_task(name, config_id, target_id, scanner_id)
- Start the scan with
gmp.start_task(task_id)
- Monitor scan progress with
gmp.get_task(task_id)
- Retrieve results with
gmp.get_report(report_id, report_format_id=...)
- Parse the XML report for vulnerabilities, CVSS scores, and affected hosts
- Generate a JSON summary report with severity distribution and remediation priorities
Expected Output
A JSON report containing total vulnerabilities found, severity breakdown (critical/high/medium/low), per-host findings with CVE references and CVSS scores, and scan metadata including duration and NVT feed version.
When NOT to Use
- You need to test the implementation (use performing-* skills)
- Task is about configuring existing tools (use configuring-* skills)
- You need to analyze security events (use analyzing-* skills)
- Task is about building detection rules (use building-* skills)
- You don't have access to the target environment
- Task requires vendor-specific expertise (consult vendor docs)
Red Flags
- Performing actions without explicit written authorization from the asset owner
- Testing against production systems without a defined scope and rules of engagement
- Sharing sensitive findings or credentials in unencrypted communications
- Failing to properly scope and contain the assessment before starting
Process
- Reconnaissance — Gather target information, identify attack surface, enumerate services
- Analysis/Exploitation — Execute the technique, analyze results, document findings
- Reporting — Document IOCs, write findings, provide remediation recommendations
Verification
- All steps executed successfully against a test environment before production use
- Output documented with screenshots or logs demonstrating expected behavior
- Results validated against known-good baselines or reference implementations
- Documentation complete enough for another analyst to reproduce findings
Anti-Rationalization Table
| Rationalization |
Reality |
| "We are too small to be targeted" |
Automated attacks target everyone. Size does not matter. |
| "Security slows us down" |
A breach slows you down 100x more. Build security in from the start. |
| "We will fix it after launch" |
Vulnerabilities in production are exploited within hours. Fix before deploy. |
1---2name: implementing-vulnerability-management-with-greenbone3description: Use when deploy and operate Greenbone/OpenVAS vulnerability management using the python-gvm library to create scan targets, execute vulnerability scans, and parse scan reports via GMP protocol. Use when deploying and operate greenbone/openvas vulnerability management using the python-gvm library.4license: Apache-2.05---67# Implementing Vulnerability Management with Greenbone89## Overview1011Greenbone Vulnerability Management (GVM) is the open-source framework behind OpenVAS, providing comprehensive vulnerability scanning with over 100,000 Network Vulnerability Tests (NVTs). The python-gvm library provides a Python API to interact with GVM through the Greenbone Management Protocol (GMP), enabling programmatic creation of scan targets, task management, scan execution, and report retrieval. This skill covers connecting to GVM via Unix socket or TLS, authenticating, creating scan configs and targets, launching scans, and parsing XML-based vulnerability reports to produce actionable findings.121314## When to Use15**Trigger phrases:**16- "implementing vulnerability management with greenbone"17- "Deploy and operate Greenbone/OpenVAS vulnerability management using the python-g"181920- When deploying or configuring implementing vulnerability management with greenbone capabilities in your environment21- When establishing security controls aligned to compliance requirements22- When building or improving security architecture for this domain23- When conducting security assessments that require this implementation2425## Prerequisites2627- Greenbone Community Edition or Greenbone Enterprise Appliance installed28- Python 3.9+ with `python-gvm` (`pip install python-gvm`)29- GMP access credentials (username/password)30- Network connectivity to GVM daemon (Unix socket or TCP/TLS)31- Understanding of CVSS scoring and vulnerability classification3233## Steps3435```python36# Example: IOC detection37import re3839IOC_PATTERNS = {40 "ip": r"\b(?:\d{1,3}\.){3}\d{1,3}\b",41 "domain": r"\b[a-z0-9-]+\.[a-z]{2,}\b",42 "hash_md5": r"\b[a-f0-9]{32}\b",43 "hash_sha256": r"\b[a-f0-9]{64}\b",44}4546def extract_iocs(text: str) -> dict:47 return {k: re.findall(v, text) for k, v in IOC_PATTERNS.items()}48```49501. Install python-gvm: `pip install python-gvm`512. Establish a GMP connection via `UnixSocketConnection` or `TLSConnection`523. Authenticate with `gmp.authenticate(username, password)`534. Create a target with `gmp.create_target(name, hosts=[...], port_list_id=...)`545. Create a scan task with `gmp.create_task(name, config_id, target_id, scanner_id)`556. Start the scan with `gmp.start_task(task_id)`567. Monitor scan progress with `gmp.get_task(task_id)`578. Retrieve results with `gmp.get_report(report_id, report_format_id=...)`589. Parse the XML report for vulnerabilities, CVSS scores, and affected hosts5910. Generate a JSON summary report with severity distribution and remediation priorities6061## Expected Output6263A JSON report containing total vulnerabilities found, severity breakdown (critical/high/medium/low), per-host findings with CVE references and CVSS scores, and scan metadata including duration and NVT feed version.64## When NOT to Use6566- You need to test the implementation (use performing-* skills)67- Task is about configuring existing tools (use configuring-* skills)68- You need to analyze security events (use analyzing-* skills)69- Task is about building detection rules (use building-* skills)70- You don't have access to the target environment71- Task requires vendor-specific expertise (consult vendor docs)727374## Red Flags7576- Performing actions without explicit written authorization from the asset owner77- Testing against production systems without a defined scope and rules of engagement78- Sharing sensitive findings or credentials in unencrypted communications79- Failing to properly scope and contain the assessment before starting8081## Process82831. **Reconnaissance** — Gather target information, identify attack surface, enumerate services841. **Analysis/Exploitation** — Execute the technique, analyze results, document findings851. **Reporting** — Document IOCs, write findings, provide remediation recommendations8687## Verification8889- All steps executed successfully against a test environment before production use90- Output documented with screenshots or logs demonstrating expected behavior91- Results validated against known-good baselines or reference implementations92- Documentation complete enough for another analyst to reproduce findings9394## Anti-Rationalization Table9596| Rationalization | Reality |97|---|---|98| "We are too small to be targeted" | Automated attacks target everyone. Size does not matter. |99| "Security slows us down" | A breach slows you down 100x more. Build security in from the start. |100| "We will fix it after launch" | Vulnerabilities in production are exploited within hours. Fix before deploy. |