🛡️ CIS Benchmarks Tools Suite (v2.9.1)
Enterprise-Grade Automated Security Compliance Audit Engine for Databases and Linux Systems (100% Python Standard Library - PSL ONLY).
📋 Overview
CIS Benchmarks Tools is a lightweight, zero-dependency automated security audit suite designed to evaluate system and database configurations against official CIS (Center for Internet Security) Benchmarks and DISA STIG security guidelines.
Key Highlights
- 🔒 100% Python Standard Library (PSL ONLY): Zero
pipdependencies. Runs standalone on any standard Python 3 installation without installing external packages. - 🎯 4-Tier Execution Context Engine: Seamless auto-detection and execution across 4 distinct deployment topologies:
- Local Machine (
--mode local/--local) - Remote SSH (
--mode ssh/--remote user@host/--ssh user@host) - Docker Container (Local) (
--docker <container_name>) - Docker Container (Remote SSH) (
--remote user@host --docker <container_name>)
- Local Machine (
- 📊 5-State Compliance Taxonomy:
Pass: Verified compliant check.Fail: Security non-compliance detected.Error: Command or environment execution error (guaranteed distinct from security failures).Manual: Procedural manual check with structured operational guides and diagnostic commands.Not Applicable (N/A): Variable, plugin, or feature not applicable in the evaluated environment.
- 🔑 Database Authentication & Credentials Injection:
- Full support for
--db-user,--db-password,--db-host,--db-port,--db-name,--defaults-file,--auth-db, and standard environment variables (MYSQL_PWD,PGPASSWORD, etc.). - Automatic password masking (
***MASKED***) in audit output logs and HTML reports.
- Full support for
- 🩺 Zero Command Error & Full Diagnostic Telemetry: Complete preservation of
stderrdiagnostics without destructive2>/dev/nullredirection. - 📈 100% Offline Pure Inline SVG Charts: Donut charts and category progress bars generated natively in Python PSL without CDN or external JavaScript dependencies.
- 🗄️ 18 Audit Targets & 887 Controls: Comprehensive coverage for MariaDB, MySQL, PostgreSQL, MongoDB, Apache Cassandra, and Red Hat Enterprise Linux (RHEL 8 / 9 / 10).
- 🌐 Multi-Language Support (i18n): English (
--lang en) and French (--lang fr) CLI and HTML reports. - 📄 Multi-Format Exporters (
--format html|json|xml|txt): HTML, JSON (SIEM/DevSecOps), XML (JUnit/STIG), and TXT text reports.
🗄️ Supported Audit Targets (18 Benchmarks / 887 Controls)
Database Engines (15 Benchmarks)
Linux Operating Systems & STIG (3 Benchmarks)
| Target Key | Operating System | Profile / STIG | CIS Benchmark | Controls | Script | Rule Spec |
|---|---|---|---|---|---|---|
rhel8 |
Red Hat Enterprise Linux | RHEL 8 CIS & STIG | v4.0.0 / v2.0.0 | 20 | audit_cis_rhel_8.py |
rules/rhel_8.json |
rhel9 |
Red Hat Enterprise Linux | RHEL 9 CIS & STIG | v2.0.0 / v1.0.0 | 20 | audit_cis_rhel_9.py |
rules/rhel_9.json |
rhel10 |
Red Hat Enterprise Linux | RHEL 10 CIS | v1.0.1 | 20 | audit_cis_rhel_10.py |
rules/rhel_10.json |
🚀 Usage & Execution Examples
Requirements
- Python 3.8+ (Standard Installation, PSL only)
- Docker (Optional, for containerized audit targets)
0. Quick Install from PyPI
pip install cis-benchmarks-tools
audit-cis --list-targets
1. List Available Targets
python3 audit_cis.py --list-targets
2. Local Machine Audit (--mode local / --local)
# PostgreSQL 16 local audit generating an HTML report
python3 audit_cis.py --target postgresql16 --local --format html
# RHEL 9 local audit exporting to JSON for SIEM ingestion
python3 audit_cis.py --target rhel9 --local --format json -o reports/audit_rhel9.json
3. Docker Container Audit (--docker <container_name>)
# Audit a running local MySQL 8.0 container directly
python3 audit_cis_mysql_80.py --docker mysql80-test
# Audit a MariaDB container using the unified entrypoint
python3 audit_cis.py --target mariadb106 --docker mariadb106-container --format html
4. Remote SSH Audit (--mode ssh / --remote user@host)
# Remote PostgreSQL 17 audit over SSH
python3 audit_cis.py --target postgresql17 --ssh admin@192.168.1.50 --format html
# Remote Docker audit over SSH (container running on a remote server)
python3 audit_cis.py --target mysql80 --ssh admin@192.168.1.50 --docker prod-mysql-container
5. Auditing with Database Credentials
# Provide credentials directly via CLI flags
python3 audit_cis_mysql_80.py --db-user root --db-password 'SecretPass123!' --db-host 127.0.0.1 --db-port 3306
# Pass options file for MySQL / PostgreSQL
python3 audit_cis_mysql_80.py --defaults-file /root/.my.cnf
6. Auto-Detection & Sequential Suite Execution
# Automatically detect active database services and audit them
python3 audit_cis.py --auto-detect
# Execute all 18 benchmarks sequentially
python3 audit_cis.py --all
🏗️ Architecture & Strict Design Principles
- Python Standard Library (PSL ONLY):
- Absolutely no third-party package dependencies (
requests,jinja2,yaml,paramiko, etc.). - Guaranteed to execute seamlessly in air-gapped, hardened, or restricted enterprise environments.
- Absolutely no third-party package dependencies (
- Decoupled Architecture (
rules/*.json):- Every benchmark's check definitions, preconditions, regexes, and remediation steps are stored in standalone JSON files under
rules/.
- Every benchmark's check definitions, preconditions, regexes, and remediation steps are stored in standalone JSON files under
- Diagnostic Telemetry Integrity:
stderrstreams are systematically preserved without destructive2>/dev/nullmasking.
- Offline First:
- Complete visual reports without requiring Internet access or external CDNs.
📜 License
This project is licensed under the MIT License - see the LICENSE file for details.
Metadata
Release files for cis-benchmarks-tools 2.9.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| cis_benchmarks_tools-2.9.1.tar.gz | 499.5 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| cis_benchmarks_tools-2.9.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 900.9 kB
Release files / cis_benchmarks_tools-2.9.1.tar.gz
| Download URL | cis_benchmarks_tools-2.9.1.tar.gz |
|---|---|
| Size | 499.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4de89e6967346203532bd0c64c279ba6d468eb06dabb0b5cf54d10b325cd8cbe
|
|
BLAKE2b-256 checksum How to use checksums |
5183325023f0a1530d11b457ca9caf7691d63b19d0b6637af231de9b0cc247d0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / cis_benchmarks_tools-2.9.1-py3-none-any.whl
| Download URL | cis_benchmarks_tools-2.9.1-py3-none-any.whl |
|---|---|
| Size | 401.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2db8699a4ce491369cf8bc776a6a5a700d793308e70417e24950eabb88c0684b
|
|
BLAKE2b-256 checksum How to use checksums |
3392e2f246e6094594a4eecdbaa4e1c4f39645a533ae3b68ba6d8d730959feb7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Security for cis-benchmarks-tools 2.9.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.