An open-source, affordable CUI enclave architecture and scoping toolkit for small and medium-sized DoD contractors pursuing CMMC Level 2 compliance.
The Department of Defense's Cybersecurity Maturity Model Certification (CMMC) program requires approximately 80,000β100,000 small and medium-sized businesses (SMBs) in the Defense Industrial Base (DIB) to achieve verified cybersecurity compliance under NIST SP 800-171.
The primary challenge for SMBs:
- Commercial CUI enclave solutions cost $50,000β$300,000+ per year β unaffordable for most small contractors
- No standardized open-source methodology exists for accurately scoping CUI/FCI environments
- Contractors either over-scope (wasting resources) or under-scope (creating security gaps)
This toolkit solves both problems β for free.
| Component | Description |
|---|---|
| ποΈ CUI/FCI Scoping Tool | Python CLI that walks contractors through a structured questionnaire to accurately identify and document their CMMC assessment scope |
| π³ Docker CUI Enclave | Ready-to-deploy Docker Compose stack implementing an isolated CUI processing environment on commodity Linux hardware |
| π NIST 800-171 Control Mapping | Enclave architecture mapped to all 110 NIST SP 800-171 Rev 3 controls |
| π Scoping Report Generator | Auto-generates a formatted PDF/Markdown scoping report for CMMC assessment submission |
| π§ Hardening Scripts | Bash scripts for Linux host hardening aligned to CMMC Level 2 requirements |
# Clone the repository
git clone https://github.com/Pulasthi91/cmmc-enclave-toolkit.git
cd cmmc-enclave-toolkit
# Install dependencies
pip install -r requirements.txt
# Run the interactive scoping questionnaire
python scoping_tool/scope_assessment.pyThe tool will guide you through a structured questionnaire and generate a scoping report in reports/.
# Review and configure environment variables
cp enclave/.env.example enclave/.env
nano enclave/.env
# Build and launch the enclave stack
cd enclave
docker compose up -d
# Verify services are running
docker compose pscmmc-enclave-toolkit/
βββ README.md
βββ LICENSE
βββ CONTRIBUTING.md
βββ SECURITY.md
βββ requirements.txt
β
βββ scoping_tool/ # CUI/FCI Scoping Assessment CLI
β βββ scope_assessment.py # Main CLI entry point
β βββ questions/
β β βββ system_inventory.py # Asset & system questions
β β βββ data_flow.py # CUI/FCI data flow questions
β β βββ boundary.py # System boundary questions
β β βββ access_control.py # User access questions
β βββ reports/
β β βββ report_generator.py # Report generation engine
β β βββ templates/ # Report templates
β βββ utils/
β βββ scoring.py # Scope scoring logic
β βββ nist_mapper.py # NIST 800-171 control mapper
β
βββ enclave/ # Docker CUI Enclave Stack
β βββ docker-compose.yml # Main compose file
β βββ .env.example # Environment variable template
β βββ docker/
β β βββ Dockerfile.cui-host # Hardened CUI host image
β β βββ Dockerfile.audit # Audit/logging container
β β βββ Dockerfile.vpn # VPN gateway container
β βββ configs/
β β βββ auditd.rules # Linux audit rules (NIST AC/AU controls)
β β βββ sysctl.conf # Kernel hardening parameters
β β βββ pam.d/ # PAM authentication config
β β βββ rsyslog.conf # Centralized logging config
β βββ scripts/
β βββ host_harden.sh # Linux host hardening script
β βββ network_segmentation.sh # Network isolation setup
β βββ verify_controls.sh # Post-deployment control verification
β
βββ docs/
β βββ architecture.md # Enclave architecture overview
β βββ nist-control-mapping.md # Full NIST 800-171 control mapping
β βββ deployment-guide.md # Step-by-step deployment guide
β βββ scoping-guide.md # How to use the scoping tool
β βββ faq.md # Common questions
β
βββ tests/
βββ test_scoping.py # Scoping tool unit tests
βββ test_controls.py # Control verification tests
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β INTERNET / CORPORATE NETWORK β
ββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββ
β
ββββββββΌβββββββ
β VPN Gateway β (WireGuard)
β Container β
ββββββββ¬βββββββ
β Encrypted tunnel only
ββββββββββββββΌβββββββββββββ
β CUI ENCLAVE β Docker network: cui-net
β (Isolated Subnet) β 172.20.0.0/24
β β
β βββββββββββββββββββ β
β β CUI Workstation β β Hardened Ubuntu 22.04
β β Container β β No internet access
β ββββββββββ¬βββββββββ β
β β β
β ββββββββββΌβββββββββ β
β β Audit & Log β β auditd + rsyslog
β β Container β β Immutable log store
β βββββββββββββββββββ β
βββββββββββββββββββββββββββ
β
ββββββββββββββΌβββββββββββββ
β NON-CUI NETWORK β Docker network: std-net
β (Standard systems) β 172.19.0.0/24
βββββββββββββββββββββββββββ
The enclave isolates CUI processing to a dedicated Docker network with no direct internet access, enforced through iptables rules and Docker network policies. All access is via encrypted VPN tunnel. Audit logs are shipped to an immutable syslog container.
This toolkit addresses controls across the following NIST SP 800-171 Rev 3 families:
| Control Family | Controls Addressed | Implementation |
|---|---|---|
| Access Control (AC) | AC.1.001 β AC.2.006 | PAM config, Docker user namespaces |
| Audit & Accountability (AU) | AU.2.041 β AU.3.045 | auditd rules, centralized logging |
| Configuration Management (CM) | CM.2.061 β CM.3.068 | Dockerfile hardening, sysctl |
| Identification & Authentication (IA) | IA.3.083 β IA.3.086 | MFA enforcement, PAM |
| System & Comm. Protection (SC) | SC.3.177 β SC.3.187 | Network segmentation, TLS |
| System & Info. Integrity (SI) | SI.1.210 β SI.2.214 | File integrity, patch management |
See docs/nist-control-mapping.md for the full mapping.
This toolkit is provided as a starting point and educational resource for organizations pursuing CMMC compliance. It is not a substitute for a formal CMMC assessment by a Certified Third-Party Assessment Organization (C3PAO). Organizations must validate their implementation against CMMC requirements with qualified assessors.
Contributions are welcome. Please read CONTRIBUTING.md before submitting pull requests. Areas where help is most needed:
- Additional scoping question modules
- Windows Server enclave variant
- Terraform/cloud deployment option
- Translation of documentation
MIT License β see LICENSE. Free for use by any organization.
Pulasthi Batuwita Cybersecurity Analyst | CMMC Practitioner | (ISC)Β² SSCP | RHCSA
- Website: thevulnerabilitynews.com
- LinkedIn: linkedin.com/in/pulasthibatuwita9