Skip to main content

Compliance Overview

Infracast provides continuous compliance monitoring against industry frameworks, government standards, and security benchmarks.

Supported Frameworks​

FrameworkControlsCoverageDescription
NIST 800-53 Rev 594 rulesTechnical controlsFederal security standard
CMMC 2.067 rulesL1-L3 practicesDoD supply chain cybersecurity
FedRAMP89 rulesHigh baselineCloud services for federal
PCI-DSS v4.078 rulesAll 12 requirementsPayment card industry
SOC 252 rulesTrust criteriaService organization controls
HIPAA45 rulesSecurity RuleHealthcare data protection
CIS Benchmarks189 rulesAWS, Azure, GCPHardening best practices
STIGs259 rulesMultiple productsDoD hardening guides
ISO 2700138 rulesAnnex A controlsInformation security management
CSA CCM27 rulesCloud controlsCloud security alliance

Total: 776+ automated compliance rules

How It Works​

Rule Evaluation​

Each compliance rule is a check against your infrastructure graph:

// Example rule: CIS AWS 5.2 β€” No security groups allow 0.0.0.0/0 to SSH
rule := Rule{
ID: "CIS-AWS-5.2",
Framework: "CIS AWS Foundations",
Severity: "HIGH",
NodeTypes: []string{"aws.ec2.security_group"},
Condition: "ingress_rules contains (port=22, cidr='0.0.0.0/0')",
Remediation: "Restrict SSH access to known CIDR ranges",
}

Evaluation Pipeline​

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Discovery │───▢│ Rule Engine │───▢│ Findings β”‚
β”‚ (nodes) β”‚ β”‚ (776 rules) β”‚ β”‚ (violations) β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
β”‚
β”Œβ”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”
β”‚ Control β”‚
β”‚ Mappings β”‚
│ NIST→CIS→PCI│
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Control Inheritance​

Many rules map to multiple frameworks:

Rule: "S3 bucket public access blocked"
β”œβ”€β”€ NIST 800-53 AC-3 (Access Enforcement)
β”œβ”€β”€ CIS AWS 2.1.5 (S3 Block Public Access)
β”œβ”€β”€ PCI-DSS 1.3.1 (Network Segmentation)
└── SOC 2 CC6.1 (Logical Access)

One finding can satisfy (or fail) multiple framework controls.

Attestations​

Not all controls can be automated. Some require human attestation:

Automated vs Attested​

TypeExampleHow Assessed
AutomatedS3 encryption enabledRule checks node property
AttestedSecurity training completedHuman uploads evidence
HybridIncident response testedRule + evidence upload

Managing Attestations​

  1. Navigate to Compliance β†’ Attestations
  2. Filter by framework or control
  3. Upload evidence (PDFs, screenshots, policies)
  4. Set expiration date for periodic review
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Control: NIST 800-53 AT-2 (Security Awareness Training) β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ Status: βœ… Attested β”‚
β”‚ Evidence: training-completion-report-2024.pdf β”‚
β”‚ Attested By: security-admin@company.com β”‚
β”‚ Date: 2024-01-15 β”‚
β”‚ Expires: 2025-01-15 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Compliance Scores​

Calculation​

Overall Score = (Passing Automated + Passing Attested) / Total Applicable Γ— 100

By Category​

Controls are grouped into families/domains:

NIST FamilyControlsPassingScore
Access Control (AC)252288%
Audit (AU)161487%
Configuration (CM)141071%
Identification (IA)1212100%
System Protection (SC)221882%

Track improvement over time:

  • Weekly compliance snapshots
  • 30/60/90 day trends
  • Regression detection (score dropped)

Exemptions & Risk Acceptance​

Creating an Exemption​

When a control doesn't apply or risk is accepted:

  1. Navigate to the finding
  2. Click Accept Risk or Mark Exempt
  3. Provide justification
  4. Set review date

Exemption Workflow​

Finding Detected β†’ Review Required β†’ Approved β†’ Exempted
↓
Rejected β†’ Must Remediate

Auditor Visibility​

Exemptions are clearly marked in reports:

Control: CIS-AWS-5.2
Status: EXEMPTED
Justification: "Legacy system scheduled for decommission Q2 2024"
Approved By: ciso@company.com
Review Date: 2024-06-30

Reports​

Available Report Types​

ReportDescriptionAudience
Executive SummaryHigh-level posture, trends, top risksLeadership
Framework ReportDetailed control-by-control statusAuditors
Gap AnalysisWhat's failing and whySecurity team
Remediation PlanPrioritized fix listEngineering
POA&MPlan of Action & MilestonesFederal compliance
SSPSystem Security Plan (auto-generated)FedRAMP/FISMA

Export Formats​

  • PDF β€” Formatted for printing/sharing
  • Excel β€” For analysis and manipulation
  • JSON β€” For API/automation
  • Word β€” For SSP editing

Scheduling​

Automate report delivery:

schedule:
frequency: weekly
day: monday
time: "08:00"
recipients:
- security-team@company.com
- compliance@company.com
reports:
- executive-summary
- framework-detail

Continuous Monitoring​

Real-Time Detection​

Findings appear within minutes of discovery:

  1. Discovery job runs (scheduled or triggered)
  2. New/changed nodes evaluated against rules
  3. Findings created/resolved
  4. Alerts sent (Slack, email, webhook)

ConMon for FedRAMP​

FedRAMP requires continuous monitoring. Infracast provides:

  • Automated monthly scans
  • Deviation tracking
  • POA&M generation
  • Significant change detection

See FedRAMP Guide for details.

API Access​

Query compliance data programmatically:

# Get compliance summary
curl -H "Authorization: Bearer $TOKEN" \
"$API_URL/api/v1/tenants/$TENANT/compliance/summary"

# Get findings for a framework
curl -H "Authorization: Bearer $TOKEN" \
"$API_URL/api/v1/tenants/$TENANT/findings?framework=nist-800-53"

# Export report
curl -H "Authorization: Bearer $TOKEN" \
"$API_URL/api/v1/tenants/$TENANT/reports/generate" \
-d '{"type":"framework","framework":"nist-800-53","format":"pdf"}'

Next Steps​