This script compares a Nessus audit file (.audit) with a manual STIG checklist XML file (.xml). It extracts STIG IDs and compliance metadata from both sources and generates a CSV report showing:
-
Which items appear in both files (matched by STIG ID)
-
Which items are only present in the manual STIG
-
Which items are only found in the audit file
-
Severity category (CAT) and NIST 800-53 references if available
Why this is useful:
It provides a quick way to reconcile manual and automated compliance checks, helping you identify discrepancies or gaps in coverage.
This script processes a Nessus results file (.nessus) to extract completed scan data, including:
-
STIG IDs
-
Whether each check passed or failed
-
Recommendations for remediation
Why this is useful:
It gives you a simplified and actionable summary of a STIG scan without needing to open the Nessus GUI.
These scripts are written in Python 3 and require no external dependencies — only built-in modules like argparse, csv, re, and xml.etree.ElementTree.
If you don't already have Python 3 installed, download it here: https://www.python.org/downloads/
python3 alpha5.py --audit_file path/to/file.audit --manual_file path/to/file.xml --output_file [optional_output_file_path.csv]python3 alpha5.py --audit_file DISA_STIG_Red_Hat_Enterprise_Linux_9_v2r2.audit --manual_file U_RHEL_9_STIG_V2R3_Manual-xccdf.xml-
file.audit– Nessus audit configuration file -
file.xml– DISA manual checklist file -
optional_output.csv– Optional name for the output CSV (defaults tooutput.csv)
A CSV file (output.csv by default) listing all matched and unmatched STIG items, along with severity and references.
python3 atlas.py --input path/to/file.nessus --summary [optional_summary_file_path.csv] --checklist [optional_checklist_file_path.csv]python3 atlas.py --input PLAIDRANGE-UNC_SERVER2022_DISA_STIG_20250404.nessus-
file.nessus– Nessus result file from a completed STIG scan -
optional_summary_file_path.csv– Optional name for the summary file (defaults tosummary.csv) -
optional_checklist_file_path.csv– Optional name for the checklist file (defaults tochecklist.csv)
Two CSV files: summary.csv listing each NIST ID from the scan and which boxes failed and checklist.csv which provides a list of every check performed along with its description and the actual result if available, as well as the recommended solution.
This repository includes example files in the sample files/ directory that you can use to test the scripts such as:
-
DISA_STIG_Red_Hat_Enterprise_Linux_9_v2r2.audit -
U_RHEL_9_STIG_V2R3_Manual-xccdf.xml
-
Make sure you're using Python 3, not Python 2.
-
If you get a “File not found” error, check that the file path is correct.
-
Output files will be created in the same directory you run the script from if you don't specify a path and filename with the appropriate flag.
Feel free to modify and use these scripts to fit your workflow. If you find a bug or want to contribute improvements, open a pull request!
