This guide explains how to send your security scan data (from tools like Nessus, OpenVAS, or CIS Benchmarks) into ThreatVault.
Itβs written simply β even non-technical users can follow it.
Youβll learn:
The difference between VAPT and Compliance data
Which fields ThreatVault expects
How to map your toolβs data
Example plugins you can use
π§© What Is a Plugin?
A plugin is a small Python module that transforms your uploaded scan file (usually CSV) into a format ThreatVault understands .
Workflow:
You upload a CSV/JSON scan file.
ThreatVault calls your pluginβs process() function.
The plugin converts your data into the required schema .
ThreatVault validates the output and saves your findings.
π Two Types of Data
Finds vulnerabilities (bugs, weak configurations)
Checks if rules or policies are followed
βPassword must be 8+ chars β β FAILEDβ
Quick rules:
VAPT: βWhatβs broken?β β Use risk (Critical, Highβ¦)
Compliance: βDid we follow the rule?β β Use status (PASSED, FAILED)
π§ ThreatVault Field Requirements
1οΈβ£ VAPT (Vulnerability Scan) Fields
Used for tools like Nessus, OpenVAS, Invicti:
β
Required: risk, host, port, name, description, remediation
πΉ Optional: cve, evidence, vpr_score
2οΈβ£ Compliance (Rule Check) Fields
Used for CIS, ISO 27001, and internal policy checks:
β
Required: risk, host, port, name, description, remediation, status
Notes:
Nessus compliance scans donβt use severity levels. risk values are mapped to status.
If risk is empty, the plugin assigns Medium automatically.
cve and vpr_score are not used for compliance scans.
πΊοΈ Mapping Scan Data to ThreatVault
Source Field
β
ThreatVault Field
Notes
Use Critical/High/Medium/Low. Leave empty for compliance β auto Medium
Plugin Output / Actual Value
Only for Compliance (copy from risk)
π§© Real Examples
πΉ VAPT Scan (Nessus)
CSV Header:
CVE,Risk,Host,Port,Name,Description,Solution,Plugin Output,VPR Score
Mapped to ThreatVault JSON:
πΉ Compliance Scan (Nessus)
CSV Header:
CVE,Risk,Host,Port,Name,Description,Solution,Plugin Output,VPR Score
Mapped to ThreatVault JSON:
β
Acceptable Values
Risk (Severity)
Only Compliance β auto Medium
Status
NEW, OPEN, CLOSED, EXEMPTION, OTHERS
π§° Plugin Examples
1οΈβ£ Compliance Plugin (Python + Polars)
2οΈβ£ VAPT Plugin (Python + Polars)
π Quick Steps to Build Your Plugin
Decide: VAPT or Compliance
Rename columns to match ThreatVault
For Compliance (Nessus): status = risk
Remove unused fields (e.g., cve in Compliance)
Return Polars LazyFrame or DataFrame
Upload to ThreatVault β Test β Done
π Summary Table
Last updated 2 months ago