
Infrastructure Compliance Auditor
- 108 installs
- 451 repo stars
- Updated July 21, 2026
- borghei/claude-skills
Infrastructure Compliance Auditor is a Claude skill that runs cross-framework infrastructure security audits, mapping 250+ controls across 11 domains to 10 compliance standards.
About
Infrastructure Compliance Auditor is a Claude skill that runs cross-framework infrastructure security audits across cloud, DNS, TLS, network, containers, CI/CD, and more. It maps 250+ controls to 10 compliance standards such as SOC 2, ISO 27001, and NIST CSF, produces severity-weighted scores, and generates auditor-ready evidence. A security or compliance engineer uses it to assess posture and validate technical controls from a JSON config describing the infrastructure.
- Audits 11 infrastructure domains against 250+ controls
- Maps controls to 10 frameworks including SOC 2, ISO 27001, and HIPAA
- Severity-weighted scoring with auditor-ready JSON and markdown evidence
Infrastructure Compliance Auditor by the numbers
- 108 all-time installs (skills.sh)
- Ranked #992 of 2,203 Security skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
infrastructure-compliance-auditor capabilities & compatibility
Free; runs local Python against JSON config, no cloud API keys required.
- Capabilities
- infrastructure compliance auditor · google workspace cli · helm chart builder
- Works with
- aws · azure · gcp · kubernetes
- Use cases
- security audit · devops
- Pricing
- Free
What infrastructure-compliance-auditor says it does
Cross-framework infrastructure security audit across cloud, network, and CI/CD.
Maps 250+ controls to 10 standards (SOC 2, ISO 27001, HIPAA, GDPR, PCI-DSS, NIS2, DORA, NIST CSF, FedRAMP, CCPA) with severity-weighted scoring.
this skill performs configuration-based assessment, not active testing
npx skills add https://github.com/borghei/claude-skills --skill infrastructure-compliance-auditorAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 108 |
|---|---|
| repo stars | ★ 451 |
| Last updated | July 21, 2026 |
| Repository | borghei/claude-skills ↗ |
What it does
Audit infrastructure security posture across 11 domains and map controls to SOC 2, ISO 27001, and NIST CSF.
Who is it for?
Security and compliance engineers assessing infrastructure posture and validating technical controls for SOC 2, ISO 27001, or NIST CSF.
Skip if: Active penetration testing, vulnerability scanning, live cloud API scanning, or formal certification.
When should I use this skill?
You need an infrastructure or cloud security audit, security-posture assessment, or to validate technical controls for a framework.
What you get
A severity-weighted infrastructure audit with per-domain scores and auditor-ready evidence mapped to 10 standards.
- Severity-weighted infrastructure audit report (JSON or markdown)
- Framework-mapped compliance evidence
By the numbers
- 11 audit domains
- 250+ controls
- 10 compliance frameworks
Files
Infrastructure Compliance Auditor
Cross-cutting infrastructure security audit across ALL compliance frameworks. Replaces manual Vanta-style checks with deterministic, repeatable, evidence-generating infrastructure audits covering cloud, DNS, TLS, endpoints, access control, network, containers, CI/CD, secrets, logging, and physical security. Maps 250+ controls to 10 standards (SOC 2, ISO 27001, HIPAA, GDPR, PCI-DSS, NIS2, DORA, NIST CSF, FedRAMP, CCPA) with severity-weighted scoring.
Core Capabilities
- 11 audit domains — cloud (AWS/Azure/GCP), DNS, TLS/SSL, endpoints, access control, network, container/K8s, CI/CD, secrets, logging/monitoring, physical security
- 250+ controls — each with a check ID, severity rating, and multi-framework mapping
- Framework mapping — collect-evidence-once, map-to-many strategy across 10 standards
- Deterministic scoring — severity-weighted per-domain and overall scores (0-100) with an audit-readiness rating
- Evidence generation — JSON and markdown reports suitable for auditor consumption
When to Use
Reach for this skill on: "infrastructure audit", "cloud security audit", "infrastructure compliance", "DNS security audit", "TLS audit", "endpoint security", "access control audit", "network security assessment", "infrastructure security", "cloud compliance", "Vanta alternative", "compliance automation", "security posture assessment", "hardware security keys", or "YubiKey compliance".
Quick Start
Run Full Infrastructure Audit
python scripts/infra_audit_runner.py --config infrastructure.json --output audit_report.jsonAudit DNS Security for a Domain
python scripts/dns_security_checker.py --domain example.com --output dns_report.jsonAudit Access Controls
python scripts/access_control_auditor.py --config access_controls.json --output access_report.jsonGenerate Compliance-Mapped Report
python scripts/infra_audit_runner.py --config infrastructure.json --frameworks soc2,iso27001,hipaa --format markdown --output compliance_report.mdTools
| Tool | Purpose | Input |
|---|---|---|
infra_audit_runner.py | Full infrastructure audit across all 11 domains | JSON config describing infrastructure |
dns_security_checker.py | DNS-specific security audit (SPF, DKIM, DMARC, DNSSEC, CAA, MTA-STS) | Domain name |
access_control_auditor.py | Access control, MFA, SSO, PAM, RBAC audit | JSON config describing access controls |
References
Load the reference that matches the task — keep this file lean and pull detail on demand:
- [references/audit-control-catalog.md](references/audit-control-catalog.md) — the full 250+ control catalog across all 11 audit domains plus the framework coverage matrix. Read when you need exact check IDs, controls, severities, and framework mappings for any domain.
- [references/audit-workflows.md](references/audit-workflows.md) — audit workflows, pre/post-audit validation checklists, the severity-weighted scoring methodology, and success criteria. Read when planning or executing an audit and interpreting scores.
- [references/tool-reference.md](references/tool-reference.md) — CLI flag reference for the three audit scripts plus a troubleshooting table. Read when running the tools or diagnosing unexpected output.
- [references/cloud-security-baseline.md](references/cloud-security-baseline.md) — AWS / Azure / GCP CIS Benchmark deep-dive. Read for cloud-provider hardening detail beyond the catalog.
- [references/access-control-standards.md](references/access-control-standards.md) — MFA, SSO, PAM, Zero Trust, and YubiKey implementation standards. Read when designing identity and access controls.
- [references/compliance-framework-mapping.md](references/compliance-framework-mapping.md) — control-to-framework master mapping. Read when aligning evidence across multiple certifications.
Scope & Limitations
In Scope:
- Infrastructure security audit across 11 domains: Cloud, DNS, TLS/SSL, Endpoints, Access Control, Network, Containers/K8s, CI/CD, Secrets, Logging/Monitoring, Physical Security
- Framework mapping to 10 compliance standards: SOC 2, ISO 27001, HIPAA, GDPR, PCI-DSS, NIS2, DORA, NIST CSF, FedRAMP, CCPA
- 250+ individual control checks with severity-weighted scoring
- DNS security validation including SPF, DKIM, DMARC, DNSSEC, CAA, MTA-STS, and subdomain takeover risk
- Access control audit covering IdP, SSO, MFA, FIDO2/hardware keys, PAM, RBAC, service accounts, SSH keys, API keys, and Zero Trust
- Evidence-generating reports in JSON and markdown formats for auditor consumption
Out of Scope:
- Actual penetration testing, vulnerability scanning, or active exploitation -- this skill performs configuration-based assessment, not active testing
- Cloud provider API calls or live infrastructure scanning -- the tool works with JSON configuration input describing your infrastructure state
- Compliance certification or attestation -- this skill identifies gaps but does not replace formal SOC 2, ISO 27001, or PCI-DSS audits
- Application security testing (SAST/DAST) beyond CI/CD pipeline configuration checks
- Compliance program management, policy writing, or governance documentation
Important Notes:
- SOC 2 2026 best practices demand real-time monitoring dashboards flagging control deficiencies within 48 hours; periodic spot-checks are no longer sufficient
- Zero Trust architecture is increasingly expected across all frameworks; perimeter-based security alone is insufficient for SOC 2, ISO 27001, and NIS2
- Compliance automation platforms (Drata, Vanta, Sprinto) complement but do not replace the deterministic checks this tool provides
Integration Points
| Skill | Integration | When to Use |
|---|---|---|
soc2-compliance-expert | SOC 2 Trust Services Criteria mapped to infrastructure controls; evidence collection for SOC 2 Type II | When infrastructure audit supports SOC 2 certification |
information-security-manager-iso27001 | ISO 27001 Annex A technological controls validated by infrastructure checks | When ISO 27001 certification requires evidence of technical control implementation |
nist-csf-specialist | NIST CSF 2.0 Protect and Detect functions mapped to infrastructure domains | When building unified security posture across NIST and other frameworks |
dora-compliance-expert | DORA Pillar 1 and Pillar 3 controls validated by infrastructure security checks | When financial entity requires infrastructure evidence for DORA compliance |
pci-dss-specialist | PCI-DSS v4.0 network security, encryption, and access control requirements mapped to checks | When cardholder data environment requires infrastructure compliance validation |
gdpr-dsgvo-expert | Technical privacy controls (encryption, access controls, data masking) supporting GDPR Art. 32 | When infrastructure controls support personal data protection requirements |
Access Control Standards Reference
Comprehensive guide to identity, authentication, authorization, and access governance covering MFA, SSO, PAM, Zero Trust, and hardware security key deployment.
---
1. Multi-Factor Authentication (MFA) Implementation
MFA Factor Types (Ranked by Security)
| Rank | Factor Type | Technology | Phishing Resistant | Recommendation |
|---|---|---|---|---|
| 1 | Hardware Security Key | FIDO2/WebAuthn, U2F | Yes | Required for admins and high-value targets |
| 2 | Biometric + Hardware | YubiKey Bio, Windows Hello | Yes | Preferred for shared workstations |
| 3 | Platform Authenticator | Touch ID, Face ID, Windows Hello | Yes | Good for employee endpoints |
| 4 | Push Notification | Okta Verify, Duo Push, MS Authenticator | Partially (number matching helps) | Acceptable for standard users with number matching |
| 5 | TOTP | Google Authenticator, Authy, 1Password | No | Minimum acceptable factor |
| 6 | SMS/Voice | Text message, phone call | No | PROHIBITED — SIM swap vulnerable |
| 7 | One-time code via email | No | PROHIBITED — trivially phishable |
MFA Enforcement Policy
MANDATORY: MFA for 100% of accounts, no exceptions.
Privileged accounts (IdP admins, cloud admins, prod access):
→ FIDO2/WebAuthn hardware security key REQUIRED
→ TOTP and push DISABLED as fallback
→ Number matching enforced if push is used anywhere
Standard accounts (all employees):
→ TOTP minimum, FIDO2 preferred
→ Push with number matching acceptable
→ SMS/Email PROHIBITED
Service accounts:
→ No interactive MFA (machine accounts)
→ Use managed identity, Workload Identity, or OIDC federation
→ Short-lived credentials (STS, dynamic secrets)
External users (contractors, partners):
→ TOTP minimum
→ FIDO2 required for any admin access
→ Access time-limited and scopedMFA Rollout Plan
Phase 1 — Admins (Week 1-2) 1. Procure hardware keys (2 per admin) 2. Register primary key with IdP 3. Register backup key, store securely 4. Configure IdP policy: require phishing-resistant MFA for admin roles 5. Disable TOTP/push fallback for admin accounts 6. Test authentication flow
Phase 2 — All Employees (Week 3-6) 1. Announce MFA requirement (2 weeks notice) 2. Provide self-service TOTP enrollment guide 3. Offer hardware key for employees who request it 4. Configure IdP policy: require MFA for all users 5. Grace period: 7 days to enroll 6. Auto-enforce after grace period (block unenrolled users)
Phase 3 — External Users (Week 7-8) 1. Notify external users of MFA requirement 2. Provide enrollment guide for TOTP 3. Enable MFA requirement for external identities 4. Support team trained for MFA help
Phishing-Resistant MFA Deep Dive
Why FIDO2/WebAuthn?
- Cryptographic proof bound to the specific website origin
- Cannot be phished — key will not respond to wrong origin
- No shared secrets (unlike TOTP which has a shared seed)
- Immune to real-time phishing proxies (evilginx, modlishka)
- Resistant to social engineering (no code to share)
How FIDO2 works:
Registration:
1. User visits IdP login
2. Browser prompts for security key
3. Key generates unique public/private key pair for that origin
4. Public key stored by IdP
5. Private key never leaves the hardware key
Authentication:
1. User visits IdP login, enters username
2. IdP sends challenge
3. Browser checks origin (example.okta.com) — MUST match registration
4. Key signs challenge with private key (requires touch + PIN)
5. IdP verifies signature with stored public key
6. If attacker's proxy presents wrong origin → key refuses to sign---
2. Hardware Security Key Deployment (YubiKey)
YubiKey Product Selection
| Model | FIDO2 | PIV | TOTP | OpenPGP | NFC | Biometric | Use Case |
|---|---|---|---|---|---|---|---|
| YubiKey 5 NFC | Yes | Yes | Yes | Yes | Yes | No | Standard employee key |
| YubiKey 5C NFC | Yes | Yes | Yes | Yes | Yes | No | USB-C + NFC |
| YubiKey 5Ci | Yes | Yes | Yes | Yes | No | No | iPhone Lightning + USB-C |
| YubiKey Bio - FIDO Edition | Yes | No | No | No | No | Yes | Shared workstations |
| YubiKey 5 FIPS | Yes | Yes | Yes | Yes | No | No | FedRAMP/government |
Recommendation: YubiKey 5C NFC for most employees (works with USB-C laptops and NFC-capable phones).
YubiKey Enrollment Process
Prerequisites:
- IdP supports FIDO2/WebAuthn (Okta, Azure AD, Google Workspace)
- User has 2 YubiKey devices (primary + backup)
- IT admin has configured FIDO2 as allowed authentication method
Step-by-Step Enrollment (Okta Example):
1. User logs into Okta dashboard
2. Navigate to Settings > Security Methods
3. Click "Set up" next to "Security Key or Biometric"
4. Insert YubiKey and click "Set up"
5. Browser prompts for security key
6. Touch the YubiKey sensor
7. Set a PIN when prompted (FIDO2 User Verification)
8. Key is registered — name it "Primary YubiKey"
9. Repeat steps 3-8 for backup key — name it "Backup YubiKey"
10. Store backup key in secure location (home safe, locked drawer)Step-by-Step Enrollment (Azure AD/Entra ID):
1. Navigate to https://mysignins.microsoft.com/security-info
2. Click "Add sign-in method"
3. Select "Security key"
4. Choose "USB device"
5. Click "Next" — browser prompts for security key
6. Insert YubiKey and touch sensor
7. Create a PIN when prompted
8. Name the key and click "Done"
9. Repeat for backup keyStep-by-Step Enrollment (Google Workspace):
1. Go to myaccount.google.com/security
2. Under "Signing in to Google" click "2-Step Verification"
3. Click "Add security key"
4. Click "USB or Bluetooth"
5. Insert YubiKey and touch sensor
6. Name the key
7. Repeat for backup key
8. Admin: Enable Advanced Protection Program for admin accountsYubiKey Policy Requirements
enrollment:
keys_per_user: 2 # primary + backup
backup_storage: "secure location (home safe, locked drawer, IT vault)"
pin_required: true # FIDO2 User Verification
touch_required: true # always require physical touch
key_management:
inventory:
track: [serial_number, assigned_user, issuance_date, status]
review: quarterly
lost_key_process:
1: "User reports lost key immediately to IT"
2: "IT revokes lost key in IdP within 1 hour"
3: "User authenticates via backup key"
4: "Identity reverification (video call + manager confirmation)"
5: "New primary key issued and enrolled"
6: "Incident logged in security ticketing system"
stolen_key_process:
1: "Same as lost key process"
2: "Additional: security team assesses risk of compromised PIN"
3: "If PIN may be compromised: force password reset + re-enroll all keys"
enforcement:
admin_accounts:
required: true
fallback_allowed: false # no TOTP/push fallback
standard_accounts:
required: false # encouraged but not mandatory
fallback_allowed: true # TOTP fallback OK
high_value_access:
required: true # production, financial, customer data
fallback_allowed: falseYubiKey Inventory Spreadsheet Template
| Serial Number | Model | Assigned To | Role | Enrollment Date | Status | Backup Key Serial | Last Verified |
|---|---|---|---|---|---|---|---|
| 12345678 | 5C NFC | jane.admin | IdP Admin | 2026-01-15 | Active | 12345679 | 2026-03-01 |
| 12345679 | 5C NFC | jane.admin | IdP Admin (BACKUP) | 2026-01-15 | Backup | - | 2026-03-01 |
---
3. Single Sign-On (SSO) Configuration
Protocol Selection
| Protocol | Use Case | Security | Recommendation |
|---|---|---|---|
| SAML 2.0 | Web applications, enterprise SSO | Strong (XML signatures) | Standard for enterprise apps |
| OIDC / OAuth 2.0 | Modern web/mobile apps, APIs | Strong (JWT tokens) | Preferred for new applications |
| LDAP/LDAPS | Legacy directory integration | Varies (LDAPS required) | Migrate to SAML/OIDC when possible |
| Password-based SSO | Form-fill SSO | Weak | PROHIBITED — use SAML/OIDC |
| WS-Federation | Microsoft-centric environments | Strong | Legacy — migrate to OIDC |
SSO Security Requirements
Session Management:
- Session timeout: maximum 8 hours for standard apps
- Session timeout: maximum 1 hour for sensitive apps (finance, admin)
- Idle timeout: 30 minutes
- Force re-authentication for sensitive operations
- Session tokens stored securely (HttpOnly, Secure, SameSite cookies)
Token Configuration:
- SAML assertion validity: maximum 5 minutes
- OIDC access token lifetime: maximum 1 hour
- OIDC refresh token lifetime: maximum 8 hours (or until session timeout)
- Token binding to client (if supported)
SAML Security:
- Assertions MUST be signed
- Assertions SHOULD be encrypted
- NameID format: persistent or email
- Single Logout (SLO) configured
- Certificate rotation plan documented
OIDC Security:
- Authorization Code flow with PKCE (not implicit flow)
- State parameter used (CSRF protection)
- Nonce parameter used (replay protection)
- Token endpoint authentication: private_key_jwt or client_secret_post
- Redirect URIs exactly match (no wildcards)SCIM Provisioning
SCIM (System for Cross-domain Identity Management) v2.0:
Benefits:
- Automated user creation when employee joins
- Automated deactivation when employee leaves
- Group membership sync for RBAC
- Attribute sync (name, email, title, department)
Required SCIM Events:
1. User created → account provisioned in all integrated apps
2. User deactivated → account disabled in all apps within 1 hour
3. User group changed → permissions updated in all apps
4. User attribute changed → profile updated in all apps
Deprovisioning Checklist:
- [ ] IdP account disabled
- [ ] All SSO sessions revoked immediately
- [ ] All SCIM-provisioned accounts deactivated
- [ ] API keys revoked
- [ ] SSH keys revoked
- [ ] VPN access revoked
- [ ] Hardware security keys returned and deregistered
- [ ] Shared drives access removed
- [ ] Email forwarding configured (if needed)
- [ ] Offboarding ticket closed---
4. Privileged Access Management (PAM)
PAM Architecture
Standard Access:
User → IdP (SSO + MFA) → Application
Privileged Access:
User → IdP (SSO + FIDO2) → PAM Platform → Approval Workflow → Time-Limited Session → Target System
↓
Session Recording
↓
Audit Log → SIEMJIT (Just-In-Time) Access Implementation
jit_access:
principles:
- Zero standing privileges (no permanent admin access)
- Access granted on demand, revoked automatically
- Every access request requires justification
- Time-limited sessions (maximum 4 hours)
- All sessions recorded
workflow:
1_request:
- User submits access request via PAM portal
- Specifies: target system, role, duration, justification
2_approval:
- Auto-approve: pre-authorized break-glass (triggers alert)
- Manager approval: standard privileged access
- Security team approval: cross-environment access
- Approval SLA: 30 minutes during business hours
3_activation:
- Temporary credentials generated
- Session time limit enforced
- Recording started
4_deactivation:
- Credentials automatically revoked at expiry
- Session recording stored for 1 year
- Activity logged to SIEM
platform_options:
- Azure PIM (Privileged Identity Management)
- CyberArk Privileged Access Manager
- HashiCorp Vault + Boundary
- AWS IAM Identity Center
- Okta Privileged Access
- Teleport (SSH + K8s + DB access)Break-Glass Procedure
break_glass:
purpose: "Emergency access when normal approval workflow is unavailable"
accounts:
- Stored in physical safe + password manager (dual control)
- Known to minimum 3 people (CTO, VP Engineering, Security Lead)
- MFA configured with dedicated hardware keys stored with credentials
- Tested quarterly (documented test results)
activation_process:
1: "Declare emergency (must be documented)"
2: "Retrieve break-glass credentials (dual authorization)"
3: "Activate account (triggers immediate alert to security team + management)"
4: "Perform emergency actions"
5: "Deactivate account immediately after use"
6: "Rotate break-glass credentials"
7: "Post-incident review within 48 hours"
8: "Document all actions taken during break-glass session"
monitoring:
- Break-glass account login → immediate PagerDuty alert
- All actions logged to immutable audit trail
- Post-use review mandatory within 48 hours
- Credentials rotated after every use---
5. Role-Based Access Control (RBAC)
RBAC Model Design
Principle: Users get ZERO permissions by default.
Access granted ONLY through role assignment.
Roles map to job functions, NOT individuals.
Role Hierarchy Example:
├── Viewer (read-only access to assigned resources)
├── Editor (create/update in assigned resources)
├── Admin (full control of assigned resources)
├── Security Admin (security configuration, audit access)
├── Super Admin (organization-wide admin — JIT only)
└── Break-Glass (emergency full access — monitored)Access Recertification Process
Quarterly Access Review:
Week 1: Generate access report
- Export all user-role assignments from IdP
- Export all service account permissions
- Export all API key assignments
- Flag: dormant accounts (>60 days no login)
- Flag: excessive permissions (admin roles)
- Flag: cross-environment access
Week 2: Manager review
- Each manager reviews their team's access
- For each access grant: Certify (keep) or Revoke
- Must provide business justification for admin access
- Deadline: 5 business days
Week 3: Remediation
- Revoked access removed within 24 hours
- Dormant accounts disabled
- Excessive permissions right-sized
- Missing access grants processed
Week 4: Report
- Compliance report generated
- Exceptions documented and approved
- Metrics: total reviews, revocations, exceptions
- Report filed as compliance evidenceSeparation of Duties Matrix
| Role A | Role B | Conflict | Reason |
|---|---|---|---|
| Code Developer | Code Deployer | Yes | Prevents unauthorized code deployment |
| Payment Initiator | Payment Approver | Yes | Prevents fraudulent payments |
| User Creator | Access Approver | Yes | Prevents unauthorized access grants |
| Security Admin | System Admin | Yes | Independent security oversight |
| Audit Reviewer | System Operator | Yes | Independent audit function |
| Database Admin | Application Admin | Conditional | Separate if handling sensitive data |
---
6. Zero Trust Architecture
Zero Trust Principles
1. Never trust, always verify
- Every access request verified regardless of network location
- Internal network provides NO implicit trust
- VPN does not equal trust
2. Least privilege access
- Minimum permissions for the task
- Time-limited access (JIT)
- Scoped to specific resources
3. Assume breach
- Design as if attackers are already inside
- Microsegmentation limits lateral movement
- Continuous monitoring for anomalies
- Rapid detection and response
4. Verify explicitly
- User identity (MFA, risk-based auth)
- Device identity (MDM, device certificates)
- Device posture (patched, encrypted, EDR running)
- Request context (location, time, behavior)
5. Use data-driven decisions
- Risk scoring for access decisions
- Behavioral analytics (UEBA)
- Continuous assessment (not just at login)Zero Trust Implementation Roadmap
Phase 1 — Identity Foundation (Month 1-3) 1. Deploy centralized IdP with SSO 2. Enforce MFA for all users (FIDO2 for admins) 3. Implement SCIM provisioning 4. Remove shared accounts 5. Establish access review process
Phase 2 — Device Trust (Month 3-6) 1. Deploy MDM (Jamf, Intune, Kandji) 2. Enforce device compliance:
- Disk encryption
- OS version minimum
- EDR running
- Screen lock enabled
3. Device posture checked before access 4. BYOD containerization
Phase 3 — Application Security (Month 6-9) 1. All applications behind identity-aware proxy 2. SSO enforced (local auth disabled) 3. Session management configured 4. API authentication with OAuth 2.0 / OIDC 5. Service mesh for service-to-service auth
Phase 4 — Network Transformation (Month 9-12) 1. Microsegmentation deployed 2. VPN replaced with ZTNA 3. Network no longer determines trust 4. Egress filtering enforced 5. DNS security (DoH/DoT) deployed
Phase 5 — Continuous Verification (Month 12+) 1. Risk-based authentication (step-up MFA) 2. Continuous session evaluation 3. UEBA for anomaly detection 4. Automated response to high-risk events 5. Regular red team exercises to validate
Zero Trust Technology Stack
| Layer | Purpose | Tools |
|---|---|---|
| Identity | User authentication | Okta, Azure AD, Google Workspace |
| Device | Device trust | Jamf, Intune, Kandji, Kolide |
| Network | Access proxy | Cloudflare Access, Zscaler, Tailscale, Twingate |
| Application | Service auth | Service mesh (Istio, Linkerd), mTLS |
| Data | Data protection | DLP, encryption, tokenization |
| Monitoring | Visibility | SIEM, UEBA, NDR |
---
7. Service Account Governance
Service Account Lifecycle
1. Creation
- Business justification required
- Owner assigned (individual, not team)
- Minimum permissions (principle of least privilege)
- Expiration date set (maximum 1 year, renewable)
- Registered in service account inventory
2. Operation
- Credentials stored in secrets manager (never in code)
- Automatic credential rotation (90 days maximum)
- Usage monitored (anomaly detection)
- Access logged to SIEM
3. Review (Quarterly)
- Owner confirms still needed
- Permissions validated (still minimum required)
- Last usage checked (disable if >90 days idle)
- Credentials rotation verified
4. Decommissioning
- Credentials revoked
- Service account disabled (not deleted — audit trail)
- Associated resources reviewed
- Removal documentedService Account Security Rules
MUST:
- Have a unique identity (never share between services)
- Have an assigned human owner
- Use machine credentials (not human passwords)
- Store credentials in secrets manager
- Rotate credentials every 90 days
- Be inventoried and reviewed quarterly
MUST NOT:
- Use shared credentials between services
- Store credentials in source code
- Have interactive login capability (where possible)
- Have broader permissions than needed
- Persist beyond their required lifetime
- Use long-lived tokens when short-lived alternatives exist---
8. SSH Key Management
SSH Key Best Practices
Key Algorithm (Preferred Order):
1. ED25519 (recommended — fast, secure, small keys)
2. ECDSA-SK (hardware-bound, FIDO2 security key)
3. ED25519-SK (hardware-bound, FIDO2 security key)
4. RSA 4096-bit (legacy compatibility)
Generate ED25519 key:
ssh-keygen -t ed25519 -C "user@company.com"
Generate hardware-bound key (requires YubiKey):
ssh-keygen -t ecdsa-sk -C "user@company.com"
PROHIBITED:
- DSA (deprecated, removed from OpenSSH 9.0+)
- RSA < 2048 bit
- RSA < 4096 bit (for new keys)
- ECDSA with NIST curves < 384 bitSSH Certificate-Based Authentication
Benefits over raw public keys:
- Automatic expiration (no stale authorized_keys)
- Central revocation via CA
- No authorized_keys file management
- Audit trail of issued certificates
- Role-based access via certificate principals
Architecture:
SSH CA (in Vault/Teleport) → Issues short-lived certificates
User requests cert → CA verifies identity (IdP) → Issues 24h cert
Server trusts CA → Accepts any valid cert from CA
No authorized_keys needed on servers
Example (HashiCorp Vault):
vault write ssh-client-signer/sign/my-role \
public_key=@$HOME/.ssh/id_ed25519.pub \
valid_principals="ubuntu,deploy" \
ttl="24h"
sshd_config on servers:
TrustedUserCAKeys /etc/ssh/trusted-user-ca-keys.pub
AuthorizedPrincipalsFile /etc/ssh/auth-principals/%usshd_config Hardening
# /etc/ssh/sshd_config hardened configuration
# Authentication
PermitRootLogin no
PasswordAuthentication no
ChallengeResponseAuthentication no
PubkeyAuthentication yes
AuthenticationMethods publickey
MaxAuthTries 3
LoginGraceTime 30
# Key algorithms
PubkeyAcceptedAlgorithms ssh-ed25519,sk-ssh-ed25519@openssh.com,ecdsa-sha2-nistp384,sk-ecdsa-sha2-nistp256@openssh.com,rsa-sha2-512,rsa-sha2-256
# Ciphers and MACs
Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com
MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com
KexAlgorithms sntrup761x25519-sha512@openssh.com,curve25519-sha256,curve25519-sha256@libssh.org
# Session
ClientAliveInterval 300
ClientAliveCountMax 2
MaxSessions 2
X11Forwarding no
AllowTcpForwarding no
AllowAgentForwarding no
# Logging
LogLevel VERBOSE---
Last Updated: March 2026 Covers: MFA, FIDO2, YubiKey, SSO, SCIM, PAM, RBAC, Zero Trust, Service Accounts, SSH
Infrastructure Audit Control Catalog
The full 250+ control catalog across all 11 audit domains plus the compliance framework mapping. Read this when you need the exact check IDs, controls, severities, and framework mappings for any domain (cloud, DNS, TLS, endpoint, access control, network, container/K8s, CI/CD, secrets, logging, physical security).
Audit Domains
1. Cloud Infrastructure Security
AWS Security Audit Checklist
IAM Policies and Roles
| Check ID | Control | Severity | Frameworks |
|---|---|---|---|
| AWS-IAM-001 | Root account has MFA enabled (hardware MFA preferred) | Critical | SOC 2 CC6.1, ISO 27001 A.9.2.1, PCI-DSS 8.3, NIST CSF PR.AC-1, HIPAA 164.312(d), FedRAMP AC-2 |
| AWS-IAM-002 | Root account has no access keys | Critical | SOC 2 CC6.1, ISO 27001 A.9.2.3, PCI-DSS 2.1, NIST CSF PR.AC-4 |
| AWS-IAM-003 | No IAM policies with "Effect": "Allow", "Action": "*", "Resource": "*" | Critical | SOC 2 CC6.3, ISO 27001 A.9.4.1, PCI-DSS 7.1, NIST CSF PR.AC-4 |
| AWS-IAM-004 | All IAM users have MFA enabled | High | SOC 2 CC6.1, ISO 27001 A.9.4.2, PCI-DSS 8.3, HIPAA 164.312(d) |
| AWS-IAM-005 | IAM password policy enforces minimum 14 characters | Medium | SOC 2 CC6.1, ISO 27001 A.9.4.3, PCI-DSS 8.2.3, NIST CSF PR.AC-1 |
| AWS-IAM-006 | IAM roles use external ID for cross-account access | Medium | SOC 2 CC6.3, ISO 27001 A.9.2.1 |
| AWS-IAM-007 | Unused IAM credentials (>90 days) are disabled | Medium | SOC 2 CC6.2, ISO 27001 A.9.2.6, PCI-DSS 8.1.4 |
| AWS-IAM-008 | IAM Access Analyzer is enabled in all regions | Medium | SOC 2 CC6.1, ISO 27001 A.9.2.5 |
| AWS-IAM-009 | No inline IAM policies (use managed policies) | Low | ISO 27001 A.9.2.2 |
| AWS-IAM-010 | IAM policy conditions restrict by source IP or VPC where possible | Low | SOC 2 CC6.6, NIST CSF PR.AC-3 |
S3 Bucket Security
| Check ID | Control | Severity | Frameworks |
|---|---|---|---|
| AWS-S3-001 | S3 Block Public Access enabled at account level | Critical | SOC 2 CC6.6, ISO 27001 A.13.1.1, PCI-DSS 1.3, HIPAA 164.312(e)(1), GDPR Art.32 |
| AWS-S3-002 | No S3 buckets with public ACLs or policies | Critical | SOC 2 CC6.6, ISO 27001 A.13.1.1, PCI-DSS 1.3, HIPAA 164.312(e)(1) |
| AWS-S3-003 | Server-side encryption enabled (SSE-S3 minimum, SSE-KMS preferred) | High | SOC 2 CC6.7, ISO 27001 A.10.1.1, PCI-DSS 3.4, HIPAA 164.312(a)(2)(iv), GDPR Art.32 |
| AWS-S3-004 | Versioning enabled on critical data buckets | Medium | SOC 2 CC6.7, ISO 27001 A.12.3.1 |
| AWS-S3-005 | Access logging enabled for all buckets | Medium | SOC 2 CC7.2, ISO 27001 A.12.4.1, PCI-DSS 10.2 |
| AWS-S3-006 | Lifecycle policies configured for log retention | Low | SOC 2 CC7.2, ISO 27001 A.12.4.1 |
| AWS-S3-007 | MFA Delete enabled for critical buckets | Medium | SOC 2 CC6.7, ISO 27001 A.12.3.1 |
| AWS-S3-008 | S3 Object Lock enabled for compliance data (WORM) | Medium | SEC Rule 17a-4, HIPAA 164.312(c)(1) |
VPC Configuration
| Check ID | Control | Severity | Frameworks |
|---|---|---|---|
| AWS-VPC-001 | VPC Flow Logs enabled for all VPCs | High | SOC 2 CC7.2, ISO 27001 A.12.4.1, PCI-DSS 10.2, NIST CSF DE.CM-1 |
| AWS-VPC-002 | Default security group restricts all inbound/outbound | High | SOC 2 CC6.6, ISO 27001 A.13.1.1, PCI-DSS 1.2 |
| AWS-VPC-003 | No security groups allow 0.0.0.0/0 on SSH (22) or RDP (3389) | Critical | SOC 2 CC6.6, ISO 27001 A.13.1.1, PCI-DSS 1.3, NIST CSF PR.AC-5 |
| AWS-VPC-004 | Private subnets used for databases and application tiers | High | SOC 2 CC6.6, ISO 27001 A.13.1.3, PCI-DSS 1.3 |
| AWS-VPC-005 | NACLs configured as additional defense layer | Medium | SOC 2 CC6.6, PCI-DSS 1.2 |
| AWS-VPC-006 | VPC endpoints used for AWS service access (avoid public internet) | Medium | SOC 2 CC6.6, ISO 27001 A.13.1.1 |
| AWS-VPC-007 | Transit Gateway or VPC Peering uses non-overlapping CIDRs | Low | ISO 27001 A.13.1.1 |
RDS Security
| Check ID | Control | Severity | Frameworks |
|---|---|---|---|
| AWS-RDS-001 | Encryption at rest enabled (KMS) | High | SOC 2 CC6.7, ISO 27001 A.10.1.1, PCI-DSS 3.4, HIPAA 164.312(a)(2)(iv) |
| AWS-RDS-002 | SSL/TLS connections enforced (rds.force_ssl = 1) | High | SOC 2 CC6.7, ISO 27001 A.10.1.1, PCI-DSS 4.1 |
| AWS-RDS-003 | Automated backups enabled with minimum 7-day retention | Medium | SOC 2 CC6.7, ISO 27001 A.12.3.1, HIPAA 164.308(a)(7)(ii)(A) |
| AWS-RDS-004 | Multi-AZ deployment for production databases | Medium | SOC 2 A1.2, ISO 27001 A.17.1.1 |
| AWS-RDS-005 | Database instances not publicly accessible | Critical | SOC 2 CC6.6, PCI-DSS 1.3 |
| AWS-RDS-006 | Enhanced monitoring enabled | Low | SOC 2 CC7.2, ISO 27001 A.12.4.1 |
| AWS-RDS-007 | Deletion protection enabled for production instances | Medium | SOC 2 CC6.7 |
CloudTrail and Monitoring
| Check ID | Control | Severity | Frameworks |
|---|---|---|---|
| AWS-CT-001 | CloudTrail enabled in all regions | Critical | SOC 2 CC7.2, ISO 27001 A.12.4.1, PCI-DSS 10.1, HIPAA 164.312(b), NIST CSF DE.CM-1, FedRAMP AU-2 |
| AWS-CT-002 | CloudTrail log file validation enabled | High | SOC 2 CC7.2, ISO 27001 A.12.4.3, PCI-DSS 10.5 |
| AWS-CT-003 | CloudTrail logs delivered to S3 with encryption | High | SOC 2 CC7.2, ISO 27001 A.12.4.1, PCI-DSS 10.5 |
| AWS-CT-004 | CloudTrail integrated with CloudWatch Logs | Medium | SOC 2 CC7.2, ISO 27001 A.12.4.1 |
| AWS-CT-005 | GuardDuty enabled in all regions | High | SOC 2 CC7.2, NIST CSF DE.CM-1 |
| AWS-CT-006 | Security Hub enabled with CIS AWS Foundations Benchmark | Medium | SOC 2 CC7.2, NIST CSF DE.CM-1 |
| AWS-CT-007 | AWS Config enabled with required rules | High | SOC 2 CC7.2, ISO 27001 A.12.4.1, NIST CSF DE.CM-1, FedRAMP CM-8 |
KMS and Encryption
| Check ID | Control | Severity | Frameworks |
|---|---|---|---|
| AWS-KMS-001 | Customer-managed KMS keys used for sensitive data | High | SOC 2 CC6.7, ISO 27001 A.10.1.2, PCI-DSS 3.5 |
| AWS-KMS-002 | KMS key rotation enabled (annual automatic rotation) | Medium | SOC 2 CC6.7, ISO 27001 A.10.1.2, PCI-DSS 3.6.4 |
| AWS-KMS-003 | KMS key policies follow least privilege | Medium | SOC 2 CC6.3, ISO 27001 A.10.1.2 |
| AWS-KMS-004 | KMS keys have alias and description for identification | Low | ISO 27001 A.10.1.2 |
Lambda and Serverless Security
| Check ID | Control | Severity | Frameworks |
|---|---|---|---|
| AWS-LAM-001 | Lambda functions use IAM roles with least privilege | High | SOC 2 CC6.3, ISO 27001 A.9.4.1 |
| AWS-LAM-002 | Lambda functions do not store secrets in environment variables (use Secrets Manager) | High | SOC 2 CC6.7, PCI-DSS 3.4 |
| AWS-LAM-003 | Lambda functions deployed in VPC when accessing private resources | Medium | SOC 2 CC6.6, ISO 27001 A.13.1.1 |
| AWS-LAM-004 | Lambda function code is signed | Medium | SOC 2 CC7.1 |
| AWS-LAM-005 | Dead letter queues configured for async invocations | Low | SOC 2 A1.2 |
EKS/ECS Container Security
| Check ID | Control | Severity | Frameworks |
|---|---|---|---|
| AWS-EKS-001 | EKS cluster endpoint not publicly accessible (or restricted by CIDR) | High | SOC 2 CC6.6, ISO 27001 A.13.1.1 |
| AWS-EKS-002 | EKS control plane logging enabled (api, audit, authenticator) | High | SOC 2 CC7.2, ISO 27001 A.12.4.1 |
| AWS-EKS-003 | EKS managed node groups use latest AMI | Medium | SOC 2 CC7.1 |
| AWS-EKS-004 | ECS tasks use awsvpc networking mode | Medium | SOC 2 CC6.6 |
| AWS-EKS-005 | ECR image scanning enabled on push | High | SOC 2 CC7.1, NIST CSF PR.IP-12 |
Azure Security Audit Checklist
Azure AD / Entra ID
| Check ID | Control | Severity | Frameworks |
|---|---|---|---|
| AZ-AD-001 | Global Administrator accounts have MFA enforced | Critical | SOC 2 CC6.1, ISO 27001 A.9.2.1, PCI-DSS 8.3 |
| AZ-AD-002 | Maximum 5 Global Administrator accounts | High | SOC 2 CC6.1, ISO 27001 A.9.2.3 |
| AZ-AD-003 | Conditional Access Policies configured | High | SOC 2 CC6.1, ISO 27001 A.9.4.2 |
| AZ-AD-004 | Security Defaults enabled (if no Conditional Access) | High | SOC 2 CC6.1 |
| AZ-AD-005 | Privileged Identity Management (PIM) enabled for admin roles | High | SOC 2 CC6.1, ISO 27001 A.9.2.3 |
| AZ-AD-006 | Guest user access restricted | Medium | SOC 2 CC6.1, ISO 27001 A.9.2.2 |
| AZ-AD-007 | Sign-in risk policy configured (requires P2) | Medium | SOC 2 CC6.1 |
Azure Network Security
| Check ID | Control | Severity | Frameworks |
|---|---|---|---|
| AZ-NET-001 | NSG rules follow least privilege (no allow-all inbound) | High | SOC 2 CC6.6, ISO 27001 A.13.1.1, PCI-DSS 1.2 |
| AZ-NET-002 | Azure Firewall or third-party NVA deployed | Medium | SOC 2 CC6.6, PCI-DSS 1.1 |
| AZ-NET-003 | DDoS Protection Standard enabled for public IPs | Medium | SOC 2 A1.2, ISO 27001 A.13.1.1 |
| AZ-NET-004 | Private endpoints used for PaaS services | Medium | SOC 2 CC6.6, ISO 27001 A.13.1.1 |
| AZ-NET-005 | Network Watcher enabled in all regions | Medium | SOC 2 CC7.2, ISO 27001 A.12.4.1 |
Azure Key Vault
| Check ID | Control | Severity | Frameworks |
|---|---|---|---|
| AZ-KV-001 | Key Vault uses RBAC (not legacy access policies) | High | SOC 2 CC6.3, ISO 27001 A.10.1.2 |
| AZ-KV-002 | Soft delete and purge protection enabled | High | SOC 2 CC6.7, ISO 27001 A.10.1.2 |
| AZ-KV-003 | Key Vault diagnostic logging enabled | Medium | SOC 2 CC7.2, ISO 27001 A.12.4.1 |
| AZ-KV-004 | Key rotation policy configured | Medium | SOC 2 CC6.7, PCI-DSS 3.6.4 |
| AZ-KV-005 | Key Vault firewall enabled (restrict to VNet/IP) | Medium | SOC 2 CC6.6, ISO 27001 A.13.1.1 |
Azure Monitoring
| Check ID | Control | Severity | Frameworks |
|---|---|---|---|
| AZ-MON-001 | Azure Monitor activity log alerts configured | High | SOC 2 CC7.2, ISO 27001 A.12.4.1 |
| AZ-MON-002 | Microsoft Sentinel (SIEM) deployed | Medium | SOC 2 CC7.2, NIST CSF DE.AE-2 |
| AZ-MON-003 | Diagnostic settings enabled for all resources | Medium | SOC 2 CC7.2, ISO 27001 A.12.4.1 |
| AZ-MON-004 | Azure Policy assignments enforcing compliance | High | SOC 2 CC7.1, ISO 27001 A.18.2.2 |
| AZ-MON-005 | Microsoft Defender for Cloud enabled (all plans) | High | SOC 2 CC7.2, NIST CSF DE.CM-1 |
Azure Storage Security
| Check ID | Control | Severity | Frameworks |
|---|---|---|---|
| AZ-ST-001 | Storage accounts require HTTPS transfer | High | SOC 2 CC6.7, ISO 27001 A.10.1.1, PCI-DSS 4.1 |
| AZ-ST-002 | Storage account public access disabled | Critical | SOC 2 CC6.6, ISO 27001 A.13.1.1 |
| AZ-ST-003 | Storage accounts use customer-managed keys | Medium | SOC 2 CC6.7, PCI-DSS 3.5 |
| AZ-ST-004 | Shared Access Signatures (SAS) use short expiry | Medium | SOC 2 CC6.1, ISO 27001 A.9.4.2 |
AKS Security
| Check ID | Control | Severity | Frameworks |
|---|---|---|---|
| AZ-AKS-001 | AKS uses managed identity (not service principal) | High | SOC 2 CC6.1, ISO 27001 A.9.4.1 |
| AZ-AKS-002 | Azure Policy for AKS enabled | Medium | SOC 2 CC7.1 |
| AZ-AKS-003 | AKS API server authorized IP ranges configured | High | SOC 2 CC6.6, ISO 27001 A.13.1.1 |
| AZ-AKS-004 | AKS uses Azure CNI (not kubenet) for network policies | Medium | SOC 2 CC6.6 |
GCP Security Audit Checklist
GCP IAM and Service Accounts
| Check ID | Control | Severity | Frameworks |
|---|---|---|---|
| GCP-IAM-001 | Organization-level IAM policies use groups, not individual users | High | SOC 2 CC6.1, ISO 27001 A.9.2.2 |
| GCP-IAM-002 | Service accounts do not have Owner/Editor roles | Critical | SOC 2 CC6.3, ISO 27001 A.9.4.1 |
| GCP-IAM-003 | User-managed service account keys rotate every 90 days | High | SOC 2 CC6.1, PCI-DSS 3.6.4 |
| GCP-IAM-004 | Domain-restricted sharing enabled via Organization Policy | Medium | SOC 2 CC6.1, ISO 27001 A.9.2.2 |
| GCP-IAM-005 | Workload Identity used for GKE (no service account keys) | High | SOC 2 CC6.1, ISO 27001 A.9.4.1 |
GCP VPC and Network
| Check ID | Control | Severity | Frameworks |
|---|---|---|---|
| GCP-VPC-001 | VPC Service Controls configured for sensitive projects | High | SOC 2 CC6.6, ISO 27001 A.13.1.3 |
| GCP-VPC-002 | Cloud Armor WAF rules protect public-facing services | High | SOC 2 CC6.6, ISO 27001 A.13.1.1 |
| GCP-VPC-003 | VPC Flow Logs enabled for all subnets | High | SOC 2 CC7.2, ISO 27001 A.12.4.1 |
| GCP-VPC-004 | Private Google Access enabled for private subnets | Medium | SOC 2 CC6.6 |
| GCP-VPC-005 | Firewall rules do not allow 0.0.0.0/0 on SSH/RDP | Critical | SOC 2 CC6.6, PCI-DSS 1.3 |
GCP Security Services
| Check ID | Control | Severity | Frameworks |
|---|---|---|---|
| GCP-SEC-001 | Security Command Center (SCC) enabled (Premium) | High | SOC 2 CC7.2, NIST CSF DE.CM-1 |
| GCP-SEC-002 | Cloud KMS keys have rotation scheduled | Medium | SOC 2 CC6.7, PCI-DSS 3.6.4 |
| GCP-SEC-003 | Cloud Audit Logs enabled for all services | High | SOC 2 CC7.2, ISO 27001 A.12.4.1 |
| GCP-SEC-004 | Binary Authorization enabled for GKE | Medium | SOC 2 CC7.1 |
| GCP-SEC-005 | Organization Policy Service enforces constraints | High | SOC 2 CC7.1, ISO 27001 A.18.2.2 |
GKE Security
| Check ID | Control | Severity | Frameworks |
|---|---|---|---|
| GCP-GKE-001 | GKE uses private cluster (no public endpoint) or authorized networks | High | SOC 2 CC6.6, ISO 27001 A.13.1.1 |
| GCP-GKE-002 | GKE Shielded Nodes enabled | Medium | SOC 2 CC6.7 |
| GCP-GKE-003 | GKE node auto-upgrade enabled | Medium | SOC 2 CC7.1, NIST CSF PR.IP-12 |
| GCP-GKE-004 | GKE workload identity enabled (no node service account keys) | High | SOC 2 CC6.1 |
| GCP-GKE-005 | Container-Optimized OS used for nodes | Medium | SOC 2 CC7.1 |
---
2. DNS Security
Email Authentication Chain
SPF, DKIM, and DMARC form a layered email authentication system. ALL three must be configured correctly for effective protection against spoofing and phishing.
SPF (Sender Policy Framework)
| Check ID | Control | Severity | Frameworks |
|---|---|---|---|
| DNS-SPF-001 | SPF record exists for primary domain | High | SOC 2 CC6.6, ISO 27001 A.13.2.1, NIST CSF PR.AC-3 |
| DNS-SPF-002 | SPF record uses -all (hard fail) not ~all (soft fail) | High | SOC 2 CC6.6, ISO 27001 A.13.2.1 |
| DNS-SPF-003 | SPF record has fewer than 10 DNS lookups (RFC 7208 limit) | Medium | SOC 2 CC6.6 |
| DNS-SPF-004 | SPF record does not use +all (permits all senders) | Critical | SOC 2 CC6.6, ISO 27001 A.13.2.1 |
| DNS-SPF-005 | Non-sending domains have v=spf1 -all to prevent spoofing | Medium | ISO 27001 A.13.2.1 |
| DNS-SPF-006 | SPF record avoids deprecated PTR mechanism | Low | RFC 7208 |
| DNS-SPF-007 | SPF flattening used if approaching lookup limit | Low | Best practice |
SPF syntax reference:
v=spf1 include:_spf.google.com include:sendgrid.net ip4:203.0.113.0/24 -allKey rules:
- Maximum 10 DNS lookups (include, a, mx, ptr, exists, redirect each count as 1)
ip4andip6mechanisms do NOT count toward the 10-lookup limit- Nested includes count toward the limit
- Record must be a single TXT record (no multiple SPF records)
- Maximum 255 characters per DNS string (use string concatenation for longer records)
DKIM (DomainKeys Identified Mail)
| Check ID | Control | Severity | Frameworks |
|---|---|---|---|
| DNS-DKIM-001 | DKIM record exists for all sending domains | High | SOC 2 CC6.6, ISO 27001 A.13.2.1 |
| DNS-DKIM-002 | DKIM key is minimum 2048-bit RSA | High | SOC 2 CC6.7, ISO 27001 A.10.1.1 |
| DNS-DKIM-003 | DKIM keys rotate every 6-12 months | Medium | SOC 2 CC6.7, ISO 27001 A.10.1.2 |
| DNS-DKIM-004 | Multiple DKIM selectors for different sending services | Low | Best practice |
| DNS-DKIM-005 | DKIM testing mode (t=y) removed for production domains | Medium | SOC 2 CC6.6 |
DKIM record format:
selector._domainkey.example.com IN TXT "v=DKIM1; k=rsa; p=MIIBIjANBgkq..."DMARC (Domain-based Message Authentication, Reporting, and Conformance)
| Check ID | Control | Severity | Frameworks |
|---|---|---|---|
| DNS-DMARC-001 | DMARC record exists at _dmarc.example.com | High | SOC 2 CC6.6, ISO 27001 A.13.2.1, NIST CSF PR.AC-3 |
| DNS-DMARC-002 | DMARC policy is p=reject (maximum enforcement) | High | SOC 2 CC6.6, ISO 27001 A.13.2.1 |
| DNS-DMARC-003 | DMARC rua (aggregate reporting) tag configured | Medium | SOC 2 CC7.2, ISO 27001 A.12.4.1 |
| DNS-DMARC-004 | DMARC ruf (forensic reporting) tag configured | Low | SOC 2 CC7.2 |
| DNS-DMARC-005 | DMARC subdomain policy sp=reject configured | Medium | ISO 27001 A.13.2.1 |
| DNS-DMARC-006 | DMARC alignment modes — adkim=s and aspf=s (strict) preferred | Medium | SOC 2 CC6.6 |
| DNS-DMARC-007 | DMARC pct=100 (applies to all messages) | Medium | SOC 2 CC6.6 |
DMARC record format:
_dmarc.example.com IN TXT "v=DMARC1; p=reject; sp=reject; adkim=s; aspf=s; rua=mailto:dmarc-agg@example.com; ruf=mailto:dmarc-forensic@example.com; pct=100"DMARC rollout strategy (avoid disrupting legitimate email): 1. p=none; rua=mailto:... — Monitor for 2-4 weeks 2. p=quarantine; pct=10 — Quarantine 10% of failing messages 3. p=quarantine; pct=50 — Increase gradually 4. p=quarantine; pct=100 — Full quarantine 5. p=reject; pct=100 — Full enforcement
DNSSEC
| Check ID | Control | Severity | Frameworks |
|---|---|---|---|
| DNS-SEC-001 | DNSSEC signing enabled for domain | High | SOC 2 CC6.6, ISO 27001 A.13.1.1, NIST CSF PR.DS-2 |
| DNS-SEC-002 | DS record published in parent zone | High | SOC 2 CC6.6, ISO 27001 A.13.1.1 |
| DNS-SEC-003 | DNSSEC algorithm is ECDSAP256SHA256 (13) or newer | Medium | SOC 2 CC6.7 |
| DNS-SEC-004 | DNSSEC key rotation schedule documented | Medium | SOC 2 CC6.7, ISO 27001 A.10.1.2 |
CAA (Certificate Authority Authorization)
| Check ID | Control | Severity | Frameworks |
|---|---|---|---|
| DNS-CAA-001 | CAA record exists restricting certificate issuance | High | SOC 2 CC6.7, ISO 27001 A.10.1.2 |
| DNS-CAA-002 | CAA iodef tag configured for certificate issuance notifications | Medium | SOC 2 CC7.2 |
| DNS-CAA-003 | Only authorized CAs listed in CAA record | High | SOC 2 CC6.7 |
CAA record format:
example.com IN CAA 0 issue "letsencrypt.org"
example.com IN CAA 0 issue "digicert.com"
example.com IN CAA 0 issuewild "letsencrypt.org"
example.com IN CAA 0 iodef "mailto:security@example.com"MTA-STS and TLS-RPT
| Check ID | Control | Severity | Frameworks |
|---|---|---|---|
| DNS-MTA-001 | MTA-STS policy published at /.well-known/mta-sts.txt | Medium | ISO 27001 A.13.2.1 |
| DNS-MTA-002 | MTA-STS DNS record _mta-sts.example.com exists | Medium | ISO 27001 A.13.2.1 |
| DNS-MTA-003 | MTA-STS mode is enforce (not testing or none) | Medium | ISO 27001 A.13.2.1 |
| DNS-MTA-004 | TLS-RPT record _smtp._tls.example.com configured | Low | ISO 27001 A.12.4.1 |
MTA-STS policy (at https://mta-sts.example.com/.well-known/mta-sts.txt):
version: STSv1
mode: enforce
mx: mail.example.com
mx: *.example.com
max_age: 604800Domain Security
| Check ID | Control | Severity | Frameworks |
|---|---|---|---|
| DNS-DOM-001 | Registrar lock enabled (clientTransferProhibited) | High | SOC 2 CC6.7, ISO 27001 A.13.1.1 |
| DNS-DOM-002 | WHOIS privacy enabled | Low | GDPR Art.5 |
| DNS-DOM-003 | 2FA enabled on domain registrar account | Critical | SOC 2 CC6.1, ISO 27001 A.9.4.2 |
| DNS-DOM-004 | Domain expiration monitored (>60 days before expiry) | Medium | SOC 2 A1.2 |
| DNS-DOM-005 | Subdomain inventory maintained (prevent subdomain takeover) | High | SOC 2 CC6.6, ISO 27001 A.13.1.1 |
| DNS-DOM-006 | Dangling DNS records (CNAME to deprovisioned services) monitored | High | SOC 2 CC6.6 |
| DNS-DOM-007 | DNS monitoring alerts configured for unauthorized changes | Medium | SOC 2 CC7.2, ISO 27001 A.12.4.1 |
---
3. TLS/SSL Security
Certificate Management
| Check ID | Control | Severity | Frameworks |
|---|---|---|---|
| TLS-CERT-001 | Certificates issued by trusted CA (not self-signed for public services) | High | SOC 2 CC6.7, ISO 27001 A.10.1.1, PCI-DSS 4.1 |
| TLS-CERT-002 | Automated certificate renewal via ACME (Let's Encrypt, ZeroSSL) | Medium | SOC 2 CC6.7 |
| TLS-CERT-003 | Certificate expiration monitored (alert at 30, 14, 7 days) | High | SOC 2 A1.2, ISO 27001 A.10.1.2 |
| TLS-CERT-004 | Certificate Transparency (CT) log monitoring enabled | Medium | SOC 2 CC7.2 |
| TLS-CERT-005 | No wildcard certificates for high-security domains | Medium | SOC 2 CC6.7, PCI-DSS 4.1 |
| TLS-CERT-006 | Certificate validity period 90 days maximum (Let's Encrypt standard) | Low | Best practice |
| TLS-CERT-007 | OCSP stapling enabled | Medium | SOC 2 CC6.7 |
| TLS-CERT-008 | Certificate pinning only for mobile apps (not web — risk of bricking) | Info | Best practice |
Protocol and Cipher Configuration
| Check ID | Control | Severity | Frameworks |
|---|---|---|---|
| TLS-PROTO-001 | TLS 1.2 minimum (TLS 1.0 and 1.1 disabled) | Critical | SOC 2 CC6.7, ISO 27001 A.10.1.1, PCI-DSS 4.1, NIST CSF PR.DS-2, HIPAA 164.312(e)(1) |
| TLS-PROTO-002 | TLS 1.3 preferred where supported | Medium | SOC 2 CC6.7, NIST CSF PR.DS-2 |
| TLS-PROTO-003 | SSL 2.0 and 3.0 disabled | Critical | PCI-DSS 4.1, NIST CSF PR.DS-2 |
| TLS-CIPHER-001 | Forward secrecy enabled (ECDHE or DHE key exchange) | High | SOC 2 CC6.7, ISO 27001 A.10.1.1, PCI-DSS 4.1 |
| TLS-CIPHER-002 | AEAD cipher suites only (GCM, ChaCha20-Poly1305) | High | SOC 2 CC6.7, PCI-DSS 4.1 |
| TLS-CIPHER-003 | No RC4, 3DES, DES, NULL, or EXPORT ciphers | Critical | PCI-DSS 4.1, NIST CSF PR.DS-2 |
| TLS-CIPHER-004 | No CBC mode ciphers (BEAST/POODLE vulnerability) | High | PCI-DSS 4.1 |
| TLS-CIPHER-005 | RSA key exchange disabled (no forward secrecy) | Medium | SOC 2 CC6.7 |
Recommended TLS 1.2 cipher suites (in order):
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256TLS 1.3 cipher suites (always use all three):
TLS_AES_256_GCM_SHA384
TLS_CHACHA20_POLY1305_SHA256
TLS_AES_128_GCM_SHA256HTTP Security Headers
| Check ID | Control | Severity | Frameworks |
|---|---|---|---|
| TLS-HSTS-001 | HSTS enabled with max-age >= 31536000 (1 year) | High | SOC 2 CC6.7, ISO 27001 A.10.1.1, PCI-DSS 4.1, NIST CSF PR.DS-2 |
| TLS-HSTS-002 | HSTS includeSubDomains directive set | High | SOC 2 CC6.7 |
| TLS-HSTS-003 | HSTS preload submitted to hstspreload.org | Medium | SOC 2 CC6.7 |
| TLS-HSTS-004 | HTTP to HTTPS redirect configured (301 permanent) | High | SOC 2 CC6.7, PCI-DSS 4.1 |
Internal TLS
| Check ID | Control | Severity | Frameworks |
|---|---|---|---|
| TLS-INT-001 | mTLS configured for service-to-service communication | High | SOC 2 CC6.7, ISO 27001 A.13.1.1, PCI-DSS 4.1 (if CDE) |
| TLS-INT-002 | Internal PKI with short-lived certificates (24h-7d) | Medium | SOC 2 CC6.7, ISO 27001 A.10.1.2 |
| TLS-INT-003 | Service mesh (Istio/Linkerd) manages mTLS transparently | Medium | SOC 2 CC6.7 |
| TLS-INT-004 | Database connections use TLS | High | SOC 2 CC6.7, PCI-DSS 4.1, HIPAA 164.312(e)(1) |
---
4. Endpoint Security
Mobile Device Management (MDM)
| Check ID | Control | Severity | Frameworks |
|---|---|---|---|
| EP-MDM-001 | MDM solution deployed (Jamf, Intune, Kandji) | High | SOC 2 CC6.7, ISO 27001 A.6.2.1, HIPAA 164.310(d)(1), NIST CSF PR.AC-3 |
| EP-MDM-002 | All corporate devices enrolled in MDM | High | SOC 2 CC6.7, ISO 27001 A.6.2.1 |
| EP-MDM-003 | MDM compliance policies enforced (auto-remediate non-compliant devices) | Medium | SOC 2 CC6.7 |
| EP-MDM-004 | MDM reports integrated into security dashboard | Low | SOC 2 CC7.2 |
Disk Encryption
| Check ID | Control | Severity | Frameworks |
|---|---|---|---|
| EP-ENC-001 | Full disk encryption enabled on all endpoints (FileVault/BitLocker/LUKS) | Critical | SOC 2 CC6.7, ISO 27001 A.10.1.1, PCI-DSS 3.4, HIPAA 164.312(a)(2)(iv), GDPR Art.32, NIST CSF PR.DS-1 |
| EP-ENC-002 | Encryption recovery keys escrowed in MDM or central key management | High | SOC 2 CC6.7, ISO 27001 A.10.1.2 |
| EP-ENC-003 | Encryption status verified on every endpoint via MDM | Medium | SOC 2 CC6.7 |
| EP-ENC-004 | Mobile devices have device encryption enabled | High | SOC 2 CC6.7, HIPAA 164.312(a)(2)(iv) |
Antivirus and EDR
| Check ID | Control | Severity | Frameworks |
|---|---|---|---|
| EP-AV-001 | EDR solution deployed on all endpoints (CrowdStrike, SentinelOne, Defender for Endpoint) | High | SOC 2 CC6.8, ISO 27001 A.12.2.1, PCI-DSS 5.1, HIPAA 164.308(a)(5)(ii)(B), NIST CSF DE.CM-4 |
| EP-AV-002 | Real-time protection enabled and cannot be disabled by users | High | SOC 2 CC6.8, PCI-DSS 5.1 |
| EP-AV-003 | Definitions updated automatically (maximum 24h staleness) | Medium | SOC 2 CC6.8, PCI-DSS 5.2 |
| EP-AV-004 | EDR telemetry centralized for threat hunting | Medium | SOC 2 CC7.2, NIST CSF DE.AE-2 |
| EP-AV-005 | Automatic quarantine/isolation for critical threats | Medium | SOC 2 CC6.8, NIST CSF RS.MI-1 |
OS Patch Management
| Check ID | Control | Severity | Frameworks |
|---|---|---|---|
| EP-PATCH-001 | Critical patches applied within 24 hours | Critical | SOC 2 CC7.1, ISO 27001 A.12.6.1, PCI-DSS 6.2, NIST CSF PR.IP-12 |
| EP-PATCH-002 | High patches applied within 72 hours | High | SOC 2 CC7.1, ISO 27001 A.12.6.1, PCI-DSS 6.2 |
| EP-PATCH-003 | Medium patches applied within 7 days | Medium | SOC 2 CC7.1, ISO 27001 A.12.6.1 |
| EP-PATCH-004 | Low patches applied within 30 days | Low | SOC 2 CC7.1, ISO 27001 A.12.6.1 |
| EP-PATCH-005 | Patch compliance reported weekly | Medium | SOC 2 CC7.1, ISO 27001 A.12.6.1 |
| EP-PATCH-006 | Emergency patch process documented and tested | Medium | SOC 2 CC7.1, NIST CSF RS.MI-3 |
Additional Endpoint Controls
| Check ID | Control | Severity | Frameworks |
|---|---|---|---|
| EP-LOCK-001 | Screen lock after 5 minutes of inactivity | Medium | SOC 2 CC6.1, ISO 27001 A.11.2.8, PCI-DSS 8.1.8, HIPAA 164.310(b) |
| EP-USB-001 | USB storage devices blocked or controlled via MDM | Medium | SOC 2 CC6.7, ISO 27001 A.8.3.1, PCI-DSS 9.7 |
| EP-BRW-001 | Browser extension allow-listing enforced | Medium | SOC 2 CC6.8, ISO 27001 A.12.2.1 |
| EP-BRW-002 | Safe browsing / web filtering enabled | Low | SOC 2 CC6.8, ISO 27001 A.13.1.1 |
| EP-WIPE-001 | Remote wipe capability verified for all corporate devices | High | SOC 2 CC6.7, ISO 27001 A.6.2.1, HIPAA 164.310(d)(2)(iii) |
| EP-BYOD-001 | BYOD policy documented and enforced via MDM container | Medium | SOC 2 CC6.7, ISO 27001 A.6.2.1, GDPR Art.32 |
| EP-FW-001 | Host-based firewall enabled on all endpoints | Medium | SOC 2 CC6.6, ISO 27001 A.13.1.1, PCI-DSS 1.4 |
---
5. Access Control and Authentication
Identity Provider (IdP) Configuration
| Check ID | Control | Severity | Frameworks |
|---|---|---|---|
| AC-IDP-001 | Centralized IdP deployed (Okta, Azure AD/Entra ID, Google Workspace) | High | SOC 2 CC6.1, ISO 27001 A.9.2.1, PCI-DSS 8.1, HIPAA 164.312(d), NIST CSF PR.AC-1, FedRAMP AC-2 |
| AC-IDP-002 | All applications integrated with IdP via SSO | High | SOC 2 CC6.1, ISO 27001 A.9.4.2 |
| AC-IDP-003 | IdP has admin MFA enforced (hardware key required for admin) | Critical | SOC 2 CC6.1, ISO 27001 A.9.4.2, PCI-DSS 8.3 |
| AC-IDP-004 | IdP audit logs exported to SIEM | Medium | SOC 2 CC7.2, ISO 27001 A.12.4.1 |
Single Sign-On (SSO)
| Check ID | Control | Severity | Frameworks |
|---|---|---|---|
| AC-SSO-001 | SSO implemented via SAML 2.0 or OIDC (no password-based SSO) | High | SOC 2 CC6.1, ISO 27001 A.9.4.2, NIST CSF PR.AC-1 |
| AC-SSO-002 | SSO session timeout configured (maximum 8 hours) | Medium | SOC 2 CC6.1, ISO 27001 A.9.4.2, PCI-DSS 8.1.8 |
| AC-SSO-003 | SSO enforced (local authentication disabled where possible) | High | SOC 2 CC6.1, ISO 27001 A.9.4.2 |
| AC-SSO-004 | SCIM provisioning enabled for automated user lifecycle | High | SOC 2 CC6.2, ISO 27001 A.9.2.1, NIST CSF PR.AC-1 |
| AC-SSO-005 | Deprovisioning triggers immediate SSO session revocation | High | SOC 2 CC6.2, ISO 27001 A.9.2.6 |
Multi-Factor Authentication (MFA)
| Check ID | Control | Severity | Frameworks |
|---|---|---|---|
| AC-MFA-001 | MFA enforced for ALL user accounts (no exceptions) | Critical | SOC 2 CC6.1, ISO 27001 A.9.4.2, PCI-DSS 8.3, HIPAA 164.312(d), NIST CSF PR.AC-7, GDPR Art.32, NIS2 Art.21, DORA Art.9, FedRAMP IA-2 |
| AC-MFA-002 | Phishing-resistant MFA (FIDO2/WebAuthn) required for privileged accounts | Critical | SOC 2 CC6.1, ISO 27001 A.9.4.2, NIST CSF PR.AC-7, FedRAMP IA-2(6) |
| AC-MFA-003 | SMS-based MFA prohibited (SIM swap vulnerability) | High | SOC 2 CC6.1, NIST CSF PR.AC-7 |
| AC-MFA-004 | TOTP (time-based one-time password) accepted as minimum MFA | Medium | SOC 2 CC6.1 |
| AC-MFA-005 | Hardware security keys (YubiKey 5 Series, Bio Series) deployed for all admins | High | SOC 2 CC6.1, ISO 27001 A.9.4.2, NIST CSF PR.AC-7 |
| AC-MFA-006 | MFA recovery process documented (not bypass, requires identity verification) | Medium | SOC 2 CC6.1, ISO 27001 A.9.2.4 |
| AC-MFA-007 | MFA enrollment status reported (100% coverage target) | Medium | SOC 2 CC6.1 |
Hardware Security Key (YubiKey) Implementation:
Enrollment process: 1. User registers primary YubiKey to IdP (Okta, Azure AD, Google Workspace) 2. User registers backup YubiKey (stored in secure location) 3. IdP policy updated to require FIDO2/WebAuthn for user 4. TOTP/push fallback disabled for privileged accounts
YubiKey policy requirements:
- Each user has minimum 2 registered keys (primary + backup)
- Backup key stored in secure, documented location
- PIN configured on YubiKey (FIDO2 user verification)
- Touch required for every authentication
- Bio Series (fingerprint) preferred for shared workstations
- Inventory of all issued keys maintained
- Lost key process: immediate revocation, identity reverification, new key issuance
IdP-specific configuration:
- Okta: Enroll YubiKey via FIDO2 (WebAuthn) factor, set Authentication Policy to require phishing-resistant MFA
- Azure AD/Entra ID: Configure FIDO2 security key in Authentication Methods, create Conditional Access policy requiring authentication strength "Phishing-resistant MFA"
- Google Workspace: Enroll security key in 2-Step Verification, enable Advanced Protection Program for admins
Privileged Access Management (PAM)
| Check ID | Control | Severity | Frameworks |
|---|---|---|---|
| AC-PAM-001 | Just-in-time (JIT) access implemented for privileged roles | High | SOC 2 CC6.1, ISO 27001 A.9.2.3, PCI-DSS 7.1, NIST CSF PR.AC-4 |
| AC-PAM-002 | Privileged access requests require approval workflow | High | SOC 2 CC6.1, ISO 27001 A.9.2.3 |
| AC-PAM-003 | Privileged session time-limited (maximum 4 hours, re-approval needed) | Medium | SOC 2 CC6.1, ISO 27001 A.9.2.3 |
| AC-PAM-004 | Privileged sessions recorded (screen recording or command logging) | High | SOC 2 CC7.2, ISO 27001 A.12.4.1, PCI-DSS 10.2 |
| AC-PAM-005 | Break-glass procedure documented and tested quarterly | Medium | SOC 2 CC6.1, ISO 27001 A.9.2.3, NIST CSF PR.AC-4 |
| AC-PAM-006 | Privileged account inventory maintained and reviewed quarterly | High | SOC 2 CC6.2, ISO 27001 A.9.2.5, PCI-DSS 7.1 |
| AC-PAM-007 | Standing privileged access eliminated (no permanent admin accounts) | High | SOC 2 CC6.1, ISO 27001 A.9.2.3, NIST CSF PR.AC-4 |
Role-Based Access Control (RBAC)
| Check ID | Control | Severity | Frameworks |
|---|---|---|---|
| AC-RBAC-001 | RBAC model documented with role definitions and permissions | High | SOC 2 CC6.3, ISO 27001 A.9.2.2, PCI-DSS 7.1, HIPAA 164.312(a)(1), NIST CSF PR.AC-4 |
| AC-RBAC-002 | Role assignments reviewed quarterly (access recertification) | High | SOC 2 CC6.2, ISO 27001 A.9.2.5, PCI-DSS 7.1.1 |
| AC-RBAC-003 | Separation of duties enforced (no single user has conflicting roles) | High | SOC 2 CC6.3, ISO 27001 A.6.1.2, PCI-DSS 6.4.2 |
| AC-RBAC-004 | Default deny — users get minimum necessary permissions | High | SOC 2 CC6.3, ISO 27001 A.9.4.1 |
| AC-RBAC-005 | Role changes logged and auditable | Medium | SOC 2 CC7.2, ISO 27001 A.12.4.1 |
Service Account and API Key Governance
| Check ID | Control | Severity | Frameworks |
|---|---|---|---|
| AC-SVC-001 | No shared credentials for service accounts | Critical | SOC 2 CC6.1, ISO 27001 A.9.2.4, PCI-DSS 8.5 |
| AC-SVC-002 | Service account permissions follow least privilege | High | SOC 2 CC6.3, ISO 27001 A.9.4.1 |
| AC-SVC-003 | Service account credentials rotate every 90 days maximum | High | SOC 2 CC6.1, ISO 27001 A.9.2.4, PCI-DSS 8.2.4 |
| AC-SVC-004 | Service account inventory maintained with owner assignment | High | SOC 2 CC6.2, ISO 27001 A.9.2.5 |
| AC-SVC-005 | API keys scoped to minimum required permissions | High | SOC 2 CC6.3, ISO 27001 A.9.4.1 |
| AC-SVC-006 | API keys have expiration dates (maximum 1 year) | Medium | SOC 2 CC6.1, ISO 27001 A.9.2.4 |
| AC-SVC-007 | API key usage monitored and anomalous access alerted | Medium | SOC 2 CC7.2, ISO 27001 A.12.4.1 |
SSH Key Management
| Check ID | Control | Severity | Frameworks |
|---|---|---|---|
| AC-SSH-001 | ED25519 keys required (or RSA >= 4096 bit) | High | SOC 2 CC6.7, ISO 27001 A.10.1.1 |
| AC-SSH-002 | SSH certificate-based authentication for infrastructure | Medium | SOC 2 CC6.7, ISO 27001 A.9.4.2 |
| AC-SSH-003 | SSH key passphrase required | Medium | SOC 2 CC6.1, ISO 27001 A.9.4.2 |
| AC-SSH-004 | SSH key inventory maintained with owner assignment | Medium | SOC 2 CC6.2, ISO 27001 A.9.2.5 |
| AC-SSH-005 | SSH keys rotate annually at minimum | Medium | SOC 2 CC6.1, PCI-DSS 3.6.4 |
| AC-SSH-006 | Root SSH login disabled | High | SOC 2 CC6.1, ISO 27001 A.9.4.2, PCI-DSS 2.1 |
| AC-SSH-007 | SSH password authentication disabled (key-only) | High | SOC 2 CC6.1, ISO 27001 A.9.4.2 |
Zero Trust Architecture
| Check ID | Control | Severity | Frameworks |
|---|---|---|---|
| AC-ZT-001 | Identity-based access (verify user, device, and context) | High | SOC 2 CC6.1, ISO 27001 A.9.4.2, NIST CSF PR.AC-4 |
| AC-ZT-002 | Device posture checked before granting access | High | SOC 2 CC6.1, ISO 27001 A.6.2.1 |
| AC-ZT-003 | Network location is not trusted (no implicit trust for internal network) | High | SOC 2 CC6.6, ISO 27001 A.13.1.1, NIST CSF PR.AC-5 |
| AC-ZT-004 | Continuous verification (re-authenticate for sensitive operations) | Medium | SOC 2 CC6.1, NIST CSF PR.AC-7 |
| AC-ZT-005 | Microsegmentation between services | Medium | SOC 2 CC6.6, ISO 27001 A.13.1.3, PCI-DSS 1.2 |
---
6. Network Security
Firewall Configuration
| Check ID | Control | Severity | Frameworks |
|---|---|---|---|
| NET-FW-001 | Default deny policy (deny all, allow by exception) | Critical | SOC 2 CC6.6, ISO 27001 A.13.1.1, PCI-DSS 1.2, NIST CSF PR.AC-5 |
| NET-FW-002 | Egress filtering enabled (restrict outbound traffic) | High | SOC 2 CC6.6, ISO 27001 A.13.1.1, PCI-DSS 1.3 |
| NET-FW-003 | Firewall rules reviewed quarterly | Medium | SOC 2 CC6.6, PCI-DSS 1.1.7 |
| NET-FW-004 | Firewall rule documentation (business justification for each rule) | Medium | SOC 2 CC6.6, PCI-DSS 1.1.6 |
| NET-FW-005 | No "any/any" rules in firewall ruleset | Critical | SOC 2 CC6.6, PCI-DSS 1.2 |
| NET-FW-006 | Firewall change management process documented | Medium | SOC 2 CC6.6, PCI-DSS 1.1.1 |
Network Segmentation
| Check ID | Control | Severity | Frameworks |
|---|---|---|---|
| NET-SEG-001 | Network segmentation isolates sensitive environments (production, staging, dev) | High | SOC 2 CC6.6, ISO 27001 A.13.1.3, PCI-DSS 1.2, HIPAA 164.312(e)(1) |
| NET-SEG-002 | Cardholder Data Environment (CDE) segmented from general network | Critical | PCI-DSS 1.3 |
| NET-SEG-003 | Database tier isolated from public-facing tier | High | SOC 2 CC6.6, ISO 27001 A.13.1.3, PCI-DSS 1.3 |
| NET-SEG-004 | Microsegmentation for East-West traffic | Medium | SOC 2 CC6.6, ISO 27001 A.13.1.3, NIST CSF PR.AC-5 |
| NET-SEG-005 | Management network separated from production | High | SOC 2 CC6.6, PCI-DSS 1.2 |
| NET-SEG-006 | Guest WiFi isolated from corporate network | Medium | SOC 2 CC6.6, ISO 27001 A.13.1.3 |
Web Application Firewall (WAF)
| Check ID | Control | Severity | Frameworks |
|---|---|---|---|
| NET-WAF-001 | WAF deployed for all public-facing web applications | High | SOC 2 CC6.6, ISO 27001 A.13.1.1, PCI-DSS 6.6, NIST CSF PR.IP-1 |
| NET-WAF-002 | OWASP Top 10 rules enabled | High | SOC 2 CC6.6, PCI-DSS 6.6 |
| NET-WAF-003 | Rate limiting configured | Medium | SOC 2 CC6.6, ISO 27001 A.13.1.1 |
| NET-WAF-004 | WAF in blocking mode (not just detection) | High | SOC 2 CC6.6, PCI-DSS 6.6 |
| NET-WAF-005 | WAF rules regularly updated | Medium | SOC 2 CC6.6, PCI-DSS 6.6 |
| NET-WAF-006 | Custom rules for application-specific attack patterns | Low | SOC 2 CC6.6 |
DDoS Protection
| Check ID | Control | Severity | Frameworks |
|---|---|---|---|
| NET-DDOS-001 | DDoS protection enabled (Cloudflare, AWS Shield, Azure DDoS Protection) | High | SOC 2 A1.2, ISO 27001 A.13.1.1, NIST CSF PR.DS-4 |
| NET-DDOS-002 | Layer 7 DDoS protection configured | Medium | SOC 2 A1.2, ISO 27001 A.13.1.1 |
| NET-DDOS-003 | DDoS response plan documented | Medium | SOC 2 A1.2, ISO 27001 A.16.1.1, NIST CSF RS.RP-1 |
| NET-DDOS-004 | DDoS alert thresholds configured | Medium | SOC 2 A1.2, ISO 27001 A.12.4.1 |
VPN Configuration
| Check ID | Control | Severity | Frameworks |
|---|---|---|---|
| NET-VPN-001 | VPN uses WireGuard or IPSec (no PPTP or L2TP without IPSec) | High | SOC 2 CC6.7, ISO 27001 A.13.1.1, PCI-DSS 4.1, NIST CSF PR.DS-2 |
| NET-VPN-002 | Split tunneling disabled for compliance environments | Medium | SOC 2 CC6.7, PCI-DSS 1.4 |
| NET-VPN-003 | VPN requires MFA for connection | High | SOC 2 CC6.1, ISO 27001 A.9.4.2, PCI-DSS 8.3 |
| NET-VPN-004 | VPN access logged and monitored | Medium | SOC 2 CC7.2, ISO 27001 A.12.4.1, PCI-DSS 10.2 |
| NET-VPN-005 | VPN being replaced or augmented by ZTNA (Zero Trust Network Access) | Info | NIST CSF PR.AC-5 |
Intrusion Detection/Prevention
| Check ID | Control | Severity | Frameworks |
|---|---|---|---|
| NET-IDS-001 | IDS/IPS deployed at network perimeter | High | SOC 2 CC6.6, ISO 27001 A.13.1.1, PCI-DSS 11.4, NIST CSF DE.CM-1, HIPAA 164.312(e)(1) |
| NET-IDS-002 | IDS/IPS signatures updated regularly | Medium | SOC 2 CC6.6, PCI-DSS 11.4 |
| NET-IDS-003 | IDS alerts integrated with SIEM | Medium | SOC 2 CC7.2, ISO 27001 A.12.4.1 |
| NET-IDS-004 | Network traffic monitoring for anomalies | Medium | SOC 2 CC7.2, NIST CSF DE.AE-1 |
---
7. Container and Kubernetes Security
Base Image Security
| Check ID | Control | Severity | Frameworks |
|---|---|---|---|
| K8S-IMG-001 | Base images from trusted registries only (verified publishers) | High | SOC 2 CC7.1, ISO 27001 A.14.2.7, NIST CSF PR.IP-12 |
| K8S-IMG-002 | Minimal base images (distroless, Alpine, scratch) | Medium | SOC 2 CC7.1, ISO 27001 A.14.2.7 |
| K8S-IMG-003 | No running as root in containers (USER directive in Dockerfile) | High | SOC 2 CC6.1, ISO 27001 A.9.4.1, PCI-DSS 2.1 |
| K8S-IMG-004 | Container images scanned for vulnerabilities (Trivy, Snyk, Grype) | High | SOC 2 CC7.1, ISO 27001 A.12.6.1, PCI-DSS 6.2, NIST CSF DE.CM-8 |
| K8S-IMG-005 | No secrets baked into container images | Critical | SOC 2 CC6.7, PCI-DSS 3.4 |
| K8S-IMG-006 | Images tagged with specific version/digest (no latest tag) | Medium | SOC 2 CC7.1 |
| K8S-IMG-007 | Image signing verified before deployment (cosign, Notary) | High | SOC 2 CC7.1, NIST CSF PR.IP-1 |
Container Runtime Security
| Check ID | Control | Severity | Frameworks |
|---|---|---|---|
| K8S-RT-001 | Seccomp profiles applied (runtime default minimum) | Medium | SOC 2 CC6.6, ISO 27001 A.13.1.1 |
| K8S-RT-002 | AppArmor/SELinux profiles applied | Medium | SOC 2 CC6.6, ISO 27001 A.13.1.1 |
| K8S-RT-003 | Read-only root filesystem for containers | Medium | SOC 2 CC6.7, ISO 27001 A.12.4.3 |
| K8S-RT-004 | No privileged containers | Critical | SOC 2 CC6.1, ISO 27001 A.9.4.1, PCI-DSS 2.1 |
| K8S-RT-005 | No host PID/network/IPC namespace sharing | High | SOC 2 CC6.6, ISO 27001 A.13.1.3 |
| K8S-RT-006 | Resource limits set (CPU, memory) to prevent resource abuse | Medium | SOC 2 A1.2, ISO 27001 A.12.1.3 |
Kubernetes Cluster Security
| Check ID | Control | Severity | Frameworks |
|---|---|---|---|
| K8S-RBAC-001 | RBAC enabled with least-privilege role bindings | High | SOC 2 CC6.3, ISO 27001 A.9.4.1, PCI-DSS 7.1 |
| K8S-RBAC-002 | No cluster-admin bindings for application workloads | Critical | SOC 2 CC6.3, ISO 27001 A.9.4.1 |
| K8S-RBAC-003 | Default ServiceAccount token automounting disabled | Medium | SOC 2 CC6.1 |
| K8S-NET-001 | Network Policies defined for all namespaces | High | SOC 2 CC6.6, ISO 27001 A.13.1.3, PCI-DSS 1.2 |
| K8S-NET-002 | Default deny network policy in place | High | SOC 2 CC6.6, PCI-DSS 1.2 |
| K8S-POD-001 | Pod Security Standards enforced (restricted profile) | High | SOC 2 CC6.6, ISO 27001 A.14.2.7 |
| K8S-SEC-001 | External Secrets Operator or Sealed Secrets for secret management | High | SOC 2 CC6.7, PCI-DSS 3.4 |
| K8S-SEC-002 | Etcd encrypted at rest | High | SOC 2 CC6.7, ISO 27001 A.10.1.1 |
| K8S-ADM-001 | Admission controllers configured (OPA Gatekeeper or Kyverno) | High | SOC 2 CC7.1, ISO 27001 A.14.2.7 |
| K8S-ADM-002 | Image pull policy set to Always for production | Medium | SOC 2 CC7.1 |
| K8S-MESH-001 | Service mesh deployed for mTLS between services (Istio, Linkerd) | Medium | SOC 2 CC6.7, ISO 27001 A.13.1.1 |
| K8S-REG-001 | Private container registry with authentication | High | SOC 2 CC6.6, ISO 27001 A.13.1.1 |
| K8S-REG-002 | Registry vulnerability scanning enabled | Medium | SOC 2 CC7.1 |
| K8S-REG-003 | Image retention policies configured | Low | SOC 2 CC6.7 |
---
8. CI/CD Pipeline Security
Source Code Management
| Check ID | Control | Severity | Frameworks |
|---|---|---|---|
| CICD-SCM-001 | Branch protection on main/production branches (required reviews) | High | SOC 2 CC7.1, ISO 27001 A.14.2.2, PCI-DSS 6.4.2, NIST CSF PR.IP-1 |
| CICD-SCM-002 | Minimum 2 approvals for production branch merges | Medium | SOC 2 CC7.1, ISO 27001 A.14.2.2, PCI-DSS 6.4.2 |
| CICD-SCM-003 | Status checks required before merge | Medium | SOC 2 CC7.1, ISO 27001 A.14.2.2 |
| CICD-SCM-004 | Signed commits enforced (GPG or SSH signing) | Medium | SOC 2 CC7.1, ISO 27001 A.14.2.2 |
| CICD-SCM-005 | Force push to protected branches prohibited | High | SOC 2 CC7.1, ISO 27001 A.14.2.2 |
| CICD-SCM-006 | Repository access follows least privilege | High | SOC 2 CC6.3, ISO 27001 A.9.4.1 |
| CICD-SCM-007 | Code owners configured for critical paths | Medium | SOC 2 CC7.1 |
Security Scanning
| Check ID | Control | Severity | Frameworks |
|---|---|---|---|
| CICD-SCAN-001 | Secret scanning enabled in all repositories | Critical | SOC 2 CC6.7, ISO 27001 A.9.4.3, PCI-DSS 3.4 |
| CICD-SCAN-002 | Pre-commit hooks prevent secret commits (gitleaks, truffleHog) | High | SOC 2 CC6.7, PCI-DSS 3.4 |
| CICD-SCAN-003 | Dependency scanning automated (Dependabot, Snyk, Renovate) | High | SOC 2 CC7.1, ISO 27001 A.12.6.1, PCI-DSS 6.2, NIST CSF PR.IP-12 |
| CICD-SCAN-004 | SAST in CI pipeline (Semgrep, SonarQube, CodeQL) | High | SOC 2 CC7.1, ISO 27001 A.14.2.8, PCI-DSS 6.3.2, NIST CSF PR.IP-1 |
| CICD-SCAN-005 | DAST for staging/pre-production (OWASP ZAP, Burp Suite) | Medium | SOC 2 CC7.1, ISO 27001 A.14.2.8, PCI-DSS 6.6 |
| CICD-SCAN-006 | SCA (Software Composition Analysis) for license compliance | Medium | SOC 2 CC7.1, ISO 27001 A.18.1.2 |
| CICD-SCAN-007 | Container image scanning in CI pipeline | High | SOC 2 CC7.1, ISO 27001 A.12.6.1, PCI-DSS 6.2 |
| CICD-SCAN-008 | Infrastructure as Code scanning (tfsec, checkov, KICS) | High | SOC 2 CC7.1, ISO 27001 A.14.2.8 |
Supply Chain Security
| Check ID | Control | Severity | Frameworks |
|---|---|---|---|
| CICD-SC-001 | SBOM generated for all releases (CycloneDX or SPDX format) | High | SOC 2 CC7.1, NIST CSF PR.IP-1, NIS2 Art.21 |
| CICD-SC-002 | Artifact signing for all builds (Sigstore/cosign) | High | SOC 2 CC7.1, NIST CSF PR.IP-1 |
| CICD-SC-003 | Dependency pinning (lock files committed, hash verification) | Medium | SOC 2 CC7.1, ISO 27001 A.14.2.7 |
| CICD-SC-004 | Third-party dependency review process | Medium | SOC 2 CC7.1, ISO 27001 A.15.1.1 |
| CICD-SC-005 | CI/CD pipeline hardened (no arbitrary code execution from PRs) | High | SOC 2 CC7.1, ISO 27001 A.14.2.7 |
Deployment Security
| Check ID | Control | Severity | Frameworks |
|---|---|---|---|
| CICD-DEP-001 | Deployment approval gates for production | High | SOC 2 CC7.1, ISO 27001 A.14.2.2, PCI-DSS 6.4.5 |
| CICD-DEP-002 | Production deployments audited (who, what, when) | High | SOC 2 CC7.2, ISO 27001 A.12.4.1, PCI-DSS 10.2 |
| CICD-DEP-003 | Rollback capability tested and documented | Medium | SOC 2 A1.2, ISO 27001 A.14.2.2 |
| CICD-DEP-004 | Deployment credentials managed via secrets manager (not pipeline env vars) | High | SOC 2 CC6.7, PCI-DSS 3.4 |
| CICD-DEP-005 | CI/CD service accounts have minimum required permissions | High | SOC 2 CC6.3, ISO 27001 A.9.4.1 |
| CICD-DEP-006 | Immutable build artifacts (reproducible builds preferred) | Medium | SOC 2 CC7.1 |
---
9. Secrets Management
Secrets Management Solutions
| Check ID | Control | Severity | Frameworks |
|---|---|---|---|
| SEC-MGR-001 | Centralized secrets manager deployed (Vault, AWS SM, Azure KV, GCP SM) | High | SOC 2 CC6.7, ISO 27001 A.10.1.2, PCI-DSS 3.5, HIPAA 164.312(a)(2)(iv), NIST CSF PR.DS-1 |
| SEC-MGR-002 | Secrets manager has HA/DR configuration | Medium | SOC 2 A1.2, ISO 27001 A.17.1.1 |
| SEC-MGR-003 | Secrets access audited (who accessed what secret, when) | High | SOC 2 CC7.2, ISO 27001 A.12.4.1, PCI-DSS 10.2 |
| SEC-MGR-004 | Dynamic secrets used where possible (database credentials on demand) | Medium | SOC 2 CC6.7, ISO 27001 A.9.4.2 |
Secret Rotation
| Check ID | Control | Severity | Frameworks |
|---|---|---|---|
| SEC-ROT-001 | Database credentials rotate every 90 days maximum | High | SOC 2 CC6.1, ISO 27001 A.9.2.4, PCI-DSS 8.2.4 |
| SEC-ROT-002 | API keys rotate every 90 days maximum | High | SOC 2 CC6.1, ISO 27001 A.9.2.4 |
| SEC-ROT-003 | Service account passwords rotate every 90 days maximum | High | SOC 2 CC6.1, ISO 27001 A.9.2.4, PCI-DSS 8.2.4 |
| SEC-ROT-004 | TLS private keys rotate annually at minimum | Medium | SOC 2 CC6.7, ISO 27001 A.10.1.2 |
| SEC-ROT-005 | Encryption keys rotate annually (auto-rotation preferred) | Medium | SOC 2 CC6.7, PCI-DSS 3.6.4 |
| SEC-ROT-006 | Rotation is automated (no manual credential changes) | Medium | SOC 2 CC6.1 |
Code and Repository Security
| Check ID | Control | Severity | Frameworks |
|---|---|---|---|
| SEC-CODE-001 | No secrets in source code (scan entire git history) | Critical | SOC 2 CC6.7, ISO 27001 A.9.4.3, PCI-DSS 3.4 |
| SEC-CODE-002 | .env files in .gitignore | High | SOC 2 CC6.7, PCI-DSS 3.4 |
| SEC-CODE-003 | Pre-commit hooks block secret commits (gitleaks) | High | SOC 2 CC6.7, PCI-DSS 3.4 |
| SEC-CODE-004 | GitHub/GitLab secret scanning alerts enabled and triaged | High | SOC 2 CC6.7, PCI-DSS 3.4 |
| SEC-CODE-005 | Historical leaked secrets rotated (not just removed from code) | Critical | SOC 2 CC6.7 |
| SEC-CODE-006 | Environment-specific secrets never shared between environments | Medium | SOC 2 CC6.7, PCI-DSS 3.4 |
Hardware Security Modules (HSM)
| Check ID | Control | Severity | Frameworks |
|---|---|---|---|
| SEC-HSM-001 | HSM (CloudHSM, Azure Dedicated HSM) used for root CA keys | High | SOC 2 CC6.7, ISO 27001 A.10.1.2, PCI-DSS 3.5, FedRAMP SC-12 |
| SEC-HSM-002 | HSM used for payment processing keys | Critical | PCI-DSS 3.5 |
| SEC-HSM-003 | HSM firmware kept current | Medium | SOC 2 CC7.1, PCI-DSS 3.5 |
| SEC-HSM-004 | HSM access restricted to authorized personnel only | High | SOC 2 CC6.1, PCI-DSS 3.5 |
---
10. Logging and Monitoring
Centralized Logging
| Check ID | Control | Severity | Frameworks |
|---|---|---|---|
| LOG-CEN-001 | All systems forward logs to centralized platform (ELK, Splunk, Datadog) | High | SOC 2 CC7.2, ISO 27001 A.12.4.1, PCI-DSS 10.5.3, HIPAA 164.312(b), NIST CSF DE.CM-1, FedRAMP AU-6 |
| LOG-CEN-002 | Log collection covers: authentication, authorization, data access, system changes | High | SOC 2 CC7.2, ISO 27001 A.12.4.1, PCI-DSS 10.2 |
| LOG-CEN-003 | Logs include: timestamp, source, user, action, result, source IP | High | SOC 2 CC7.2, ISO 27001 A.12.4.1, PCI-DSS 10.3 |
| LOG-CEN-004 | Log shipping uses TLS encryption | Medium | SOC 2 CC6.7, PCI-DSS 10.5 |
| LOG-CEN-005 | Log source time synchronized via NTP (max 1 second drift) | Medium | SOC 2 CC7.2, PCI-DSS 10.4 |
SIEM
| Check ID | Control | Severity | Frameworks |
|---|---|---|---|
| LOG-SIEM-001 | SIEM deployed with correlation rules | High | SOC 2 CC7.2, ISO 27001 A.12.4.1, PCI-DSS 10.6, NIST CSF DE.AE-2, NIS2 Art.21 |
| LOG-SIEM-002 | SIEM detection rules cover MITRE ATT&CK framework | Medium | NIST CSF DE.AE-2 |
| LOG-SIEM-003 | SIEM alerts have defined response procedures | Medium | SOC 2 CC7.3, ISO 27001 A.16.1.1, NIST CSF RS.RP-1 |
| LOG-SIEM-004 | SIEM tuned to reduce false positives (<10% false positive rate) | Low | SOC 2 CC7.2 |
Retention and Integrity
| Check ID | Control | Severity | Frameworks |
|---|---|---|---|
| LOG-RET-001 | Log retention minimum 1 year (365 days) | High | SOC 2 CC7.2, ISO 27001 A.12.4.1, PCI-DSS 10.7, HIPAA 164.312(b) |
| LOG-RET-002 | Logs immutable (write-once, no modification or deletion) | High | SOC 2 CC7.2, ISO 27001 A.12.4.3, PCI-DSS 10.5 |
| LOG-RET-003 | Log backup and disaster recovery tested | Medium | SOC 2 A1.2, ISO 27001 A.12.3.1 |
| LOG-RET-004 | PCI-DSS environments retain logs for minimum 1 year, 3 months immediately available | High | PCI-DSS 10.7 |
| LOG-RET-005 | HIPAA environments retain logs for minimum 6 years | High | HIPAA 164.530(j)(2) |
Alerting and Detection
| Check ID | Control | Severity | Frameworks |
|---|---|---|---|
| LOG-ALERT-001 | Alerts for: failed auth attempts (>5 in 5 min), privilege escalation, data exfiltration patterns | High | SOC 2 CC7.2, ISO 27001 A.12.4.1, PCI-DSS 10.6, NIST CSF DE.CM-1 |
| LOG-ALERT-002 | Alert escalation matrix documented (L1 -> L2 -> L3 -> management) | Medium | SOC 2 CC7.3, ISO 27001 A.16.1.1 |
| LOG-ALERT-003 | On-call rotation for security alerts (24/7 coverage) | Medium | SOC 2 CC7.3, ISO 27001 A.16.1.1 |
| LOG-ALERT-004 | Mean time to acknowledge (MTTA) < 15 minutes for critical alerts | Medium | SOC 2 CC7.3 |
| LOG-ALERT-005 | Anomaly detection enabled (UEBA — User and Entity Behavior Analytics) | Medium | SOC 2 CC7.2, NIST CSF DE.AE-1 |
| LOG-ALERT-006 | File integrity monitoring (FIM) deployed for critical files | High | SOC 2 CC7.2, ISO 27001 A.12.4.3, PCI-DSS 11.5 |
---
11. Physical Security
Data Center Security
| Check ID | Control | Severity | Frameworks |
|---|---|---|---|
| PHYS-DC-001 | Cloud provider SOC 2 Type II report obtained and reviewed annually | High | SOC 2 CC6.4, ISO 27001 A.11.1.1, PCI-DSS 9.1 |
| PHYS-DC-002 | Data center physical access restricted to authorized personnel | High | SOC 2 CC6.4, ISO 27001 A.11.1.2, PCI-DSS 9.1 |
| PHYS-DC-003 | 24/7 video surveillance at data center | Medium | SOC 2 CC6.4, ISO 27001 A.11.1.2, PCI-DSS 9.1 |
| PHYS-DC-004 | Visitor access logged and escorted | Medium | SOC 2 CC6.4, ISO 27001 A.11.1.2, PCI-DSS 9.4 |
| PHYS-DC-005 | Environmental controls (fire suppression, HVAC, UPS) | Medium | SOC 2 A1.2, ISO 27001 A.11.1.4, PCI-DSS 9.1 |
Office Security
| Check ID | Control | Severity | Frameworks |
|---|---|---|---|
| PHYS-OFF-001 | Badge access for office entry | Medium | SOC 2 CC6.4, ISO 27001 A.11.1.2 |
| PHYS-OFF-002 | Visitor management system (sign-in, badge, escort) | Low | SOC 2 CC6.4, ISO 27001 A.11.1.2 |
| PHYS-OFF-003 | Clean desk policy documented and enforced | Low | SOC 2 CC6.4, ISO 27001 A.11.2.9 |
| PHYS-OFF-004 | Server/network rooms locked with restricted access | Medium | SOC 2 CC6.4, ISO 27001 A.11.1.2, PCI-DSS 9.1 |
Media Disposal
| Check ID | Control | Severity | Frameworks |
|---|---|---|---|
| PHYS-DISP-001 | Media disposal follows NIST 800-88 guidelines (clear, purge, destroy) | High | SOC 2 CC6.5, ISO 27001 A.8.3.2, PCI-DSS 9.8, HIPAA 164.310(d)(2)(i), NIST CSF PR.IP-6 |
| PHYS-DISP-002 | Certificate of destruction obtained for physical media | High | SOC 2 CC6.5, ISO 27001 A.8.3.2, PCI-DSS 9.8 |
| PHYS-DISP-003 | Disposal vendor contracted with background checks | Medium | SOC 2 CC6.5, ISO 27001 A.8.3.2 |
| PHYS-DISP-004 | Electronic media cryptographically erased before disposal | High | SOC 2 CC6.5, PCI-DSS 9.8, HIPAA 164.310(d)(2)(i) |
---
12. Compliance Framework Mapping
Each control in this audit maps to one or more compliance frameworks. The mapping enables organizations pursuing multiple certifications to satisfy overlapping requirements with single implementations.
Supported Frameworks:
| Framework | Abbreviation | Focus Area |
|---|---|---|
| SOC 2 Type II | SOC 2 | Trust Services Criteria (Security, Availability, Processing Integrity, Confidentiality, Privacy) |
| ISO 27001:2022 | ISO 27001 | Information Security Management System (Annex A controls) |
| HIPAA | HIPAA | Healthcare data protection (Security Rule, Privacy Rule) |
| GDPR | GDPR | EU data protection and privacy |
| PCI-DSS v4.0 | PCI-DSS | Payment card data security |
| NIS2 Directive | NIS2 | EU network and information security (critical infrastructure) |
| DORA | DORA | EU Digital Operational Resilience Act (financial services) |
| NIST CSF 2.0 | NIST CSF | Cybersecurity Framework (Identify, Protect, Detect, Respond, Recover) |
| FedRAMP | FedRAMP | US federal cloud security (based on NIST 800-53) |
| CCPA/CPRA | CCPA | California consumer privacy |
Framework Coverage Summary:
| Audit Domain | SOC 2 | ISO 27001 | HIPAA | GDPR | PCI-DSS | NIS2 | DORA | NIST CSF | FedRAMP | CCPA |
|---|---|---|---|---|---|---|---|---|---|---|
| Cloud Infrastructure | CC6.1-CC6.7 | A.9, A.10, A.12, A.13 | 164.312 | Art.32 | 1-4, 7-8, 10 | Art.21 | Art.9 | PR.AC, PR.DS, DE.CM | AC, SC, AU | 1798.150 |
| DNS Security | CC6.6 | A.13.1, A.13.2 | - | - | - | Art.21 | - | PR.AC, PR.DS | - | - |
| TLS/SSL | CC6.7 | A.10.1, A.13.1 | 164.312(e) | Art.32 | 4.1 | Art.21 | Art.9 | PR.DS-2 | SC-8, SC-13 | - |
| Endpoint Security | CC6.7-CC6.8 | A.6.2, A.8.3, A.10.1, A.11.2, A.12.2, A.12.6 | 164.310, 164.312 | Art.32 | 1.4, 3.4, 5.1-5.4, 6.2 | Art.21 | Art.9 | PR.AC, PR.DS, PR.IP, DE.CM | - | - |
| Access Control | CC6.1-CC6.3 | A.9.1-A.9.4 | 164.312(a)(d) | Art.32 | 7.1-8.3 | Art.21 | Art.9 | PR.AC | AC, IA | 1798.150 |
| Network Security | CC6.6, A1.2 | A.13.1 | 164.312(e) | Art.32 | 1.1-1.3, 6.6, 11.4 | Art.21 | Art.9 | PR.AC-5, DE.CM-1 | SC, SI | - |
| Container/K8s | CC6.1-CC7.1 | A.9.4, A.13.1, A.14.2 | - | - | 1.2, 2.1, 6.2, 7.1 | Art.21 | - | PR.AC, PR.IP | - | - |
| CI/CD Pipeline | CC7.1-CC7.2 | A.14.2 | - | - | 6.2-6.6 | Art.21 | Art.9 | PR.IP-1, PR.IP-12 | SA, SI | - |
| Secrets Management | CC6.7 | A.9.4, A.10.1 | 164.312(a) | Art.32 | 3.4-3.6, 8.2 | Art.21 | Art.9 | PR.DS-1 | SC-12, SC-28 | - |
| Logging/Monitoring | CC7.2-CC7.3 | A.12.4 | 164.312(b) | Art.32 | 10.1-10.7, 11.5 | Art.21 | Art.9 | DE.AE, DE.CM | AU | - |
| Physical Security | CC6.4-CC6.5 | A.8.3, A.11.1, A.11.2 | 164.310 | Art.32 | 9.1-9.8 | Art.21 | - | PR.IP-6 | PE | - |
Multi-Framework Evidence Strategy:
For each control, collect evidence once and map to all applicable frameworks:
1. Policy Document — Covers SOC 2, ISO 27001, HIPAA, GDPR (one policy, multiple mappings) 2. Technical Configuration — Screenshot/export showing control is active (maps to all technical frameworks) 3. Audit Log — Proves ongoing compliance (SOC 2, PCI-DSS, HIPAA all require audit trails) 4. Review Record — Quarterly review minutes satisfy multiple framework requirements simultaneously
---
Audit Workflows, Scoring & Success Criteria
Step-by-step audit workflows, pre/post-audit validation checklists, the severity-weighted scoring methodology, and success criteria. Read this when planning or executing an audit engagement and interpreting scores.
Workflows
Workflow 1: Full Infrastructure Audit
1. Prepare inventory → Document all cloud accounts, domains, endpoints, services
2. Run infra_audit_runner.py → Generate findings across all 11 domains
3. Triage findings → Prioritize Critical > High > Medium > Low
4. Map to frameworks → Identify which framework requirements are met/unmet
5. Create remediation plan → Assign owners, set deadlines by severity SLA
6. Execute remediation → Fix Critical within 24h, High within 72h
7. Re-audit → Verify fixes, update compliance evidence
8. Generate report → Executive summary + detailed findings + evidenceSeverity SLAs:
| Severity | Remediation Deadline | Re-audit Deadline |
|---|---|---|
| Critical | 24 hours | 48 hours |
| High | 72 hours | 7 days |
| Medium | 7 days | 14 days |
| Low | 30 days | 45 days |
| Info | No deadline | Next audit cycle |
Workflow 2: DNS Security Assessment
1. Enumerate domains → Primary + all subdomains
2. Run dns_security_checker.py → Check SPF, DKIM, DMARC, DNSSEC, CAA, MTA-STS
3. Validate email chain → SPF → DKIM → DMARC alignment
4. Check domain security → Registrar lock, 2FA, WHOIS, expiration
5. Subdomain audit → Check for dangling CNAME records (takeover risk)
6. Generate DNS report → Findings + remediation DNS recordsWorkflow 3: Access Control Review
1. Export IdP configuration → Users, groups, roles, policies
2. Run access_control_auditor.py → Check MFA, SSO, RBAC, PAM, service accounts
3. Verify MFA coverage → Must be 100%, flag any exceptions
4. Review privileged access → Who has admin? Is JIT in place?
5. Check service accounts → Rotation, ownership, permissions
6. Access recertification → Verify all access is current and justified
7. Generate access report → Gaps + remediation stepsWorkflow 4: Continuous Compliance Monitoring
1. Schedule automated scans → Weekly infra audit, daily DNS check
2. Track compliance score trends → Score per domain over time
3. Alert on regressions → Score drop or new Critical finding triggers alert
4. Quarterly full audit → Manual review + automated scan
5. Annual certification preparation → Compile evidence for auditors---
Validation Checkpoints
Pre-Audit Validation
- [ ] Infrastructure inventory is complete and current
- [ ] All cloud accounts identified and accessible
- [ ] Domain list verified (primary + all active subdomains)
- [ ] Endpoint MDM reports available
- [ ] IdP configuration export available
- [ ] Previous audit findings reviewed
Post-Audit Validation
- [ ] All 11 domains audited with no skipped checks
- [ ] Every finding has severity, framework mapping, and remediation
- [ ] Critical and High findings have assigned owners
- [ ] Compliance score calculated per domain and overall
- [ ] Executive summary prepared
- [ ] Evidence package compiled for applicable frameworks
- [ ] Remediation deadlines set per severity SLA
---
Scoring Methodology
Each audit domain is scored 0-100 based on the controls assessed:
Score Calculation:
Domain Score = (Passed Controls * Weight) / (Total Controls * Weight) * 100
Weights by severity:
Critical = 10
High = 5
Medium = 2
Low = 1
Info = 0 (informational, not scored)Overall Score:
Overall Score = Weighted Average of Domain Scores
Domain Weights:
Cloud Infrastructure: 15%
Access Control: 15%
Network Security: 12%
Secrets Management: 10%
Logging/Monitoring: 10%
CI/CD Pipeline: 8%
Container/K8s: 8%
Endpoint Security: 7%
TLS/SSL: 5%
DNS Security: 5%
Physical Security: 5%Score Interpretation:
| Score Range | Rating | Meaning |
|---|---|---|
| 90-100 | Excellent | Audit-ready, minimal findings |
| 80-89 | Good | Minor gaps, mostly compliant |
| 70-79 | Fair | Notable gaps, remediation needed before audit |
| 60-69 | Poor | Significant compliance gaps |
| Below 60 | Critical | Major overhaul required, not audit-ready |
---
Success Criteria
- Overall infrastructure score of 80+ (Good or Excellent) -- indicating audit-readiness with only minor gaps across all 11 domains
- Zero Critical findings across all domains -- all Critical-severity controls (root MFA, no wildcard IAM policies, encryption at rest, hardware key admin MFA) passing
- Framework-specific compliance above 85% -- for each targeted compliance framework (SOC 2, ISO 27001, PCI-DSS, etc.), the mapped controls show 85%+ pass rate
- DNS security fully configured -- SPF, DKIM, and DMARC (policy=reject) records validated, DNSSEC enabled, CAA records set, and MTA-STS deployed
- Access control audit passes all Critical and High controls -- centralized IdP deployed, SSO integrated for all applications, hardware security keys enforced for admin accounts, PAM implemented, and RBAC documented
- Secrets management score above 90% -- dedicated secrets vault deployed, automated rotation configured, no secrets in source code (git scanning enabled), and HSM for cryptographic operations
- Evidence artifacts generated for audit -- JSON or markdown reports suitable for auditor review, with per-control pass/fail status and framework mapping
Cloud Security Baseline Reference
Comprehensive security baselines for AWS, Azure, and GCP aligned with CIS Benchmarks and compliance framework requirements.
---
AWS Security Baseline
CIS AWS Foundations Benchmark v3.0 Summary
The CIS AWS Foundations Benchmark provides prescriptive guidance for configuring security options in AWS. The following summarizes the most impactful controls.
1. Identity and Access Management
1.1 Root Account Security
Required Configuration:
- MFA enabled on root account (hardware MFA strongly preferred)
- No access keys on root account
- Root account used only for account-level operations
- Security contact configured on root account
- AWS Organizations SCP restricts root usageRoot account checklist:
- [ ] Hardware MFA (YubiKey or AWS-compatible TOTP device)
- [ ] Zero access keys (delete any existing keys)
- [ ] Contact information current (email + phone)
- [ ] Root activity triggers CloudWatch alarm
- [ ] Root API usage tracked via CloudTrail
1.2 IAM Users and Policies
Required Configuration:
- No wildcard permissions (Action:* Resource:*)
- MFA required for all IAM users
- Password policy: 14+ chars, complexity, 90-day expiry
- Unused credentials disabled (>90 days inactive)
- Access keys rotated every 90 days
- IAM Access Analyzer enabled
- No inline policies (use managed policies)Example IAM password policy (CLI):
aws iam update-account-password-policy \
--minimum-password-length 14 \
--require-symbols \
--require-numbers \
--require-uppercase-characters \
--require-lowercase-characters \
--allow-users-to-change-password \
--max-password-age 90 \
--password-reuse-prevention 241.3 IAM Roles and Trust Policies
Best Practices:
- Use roles (not users) for applications and services
- External ID required for cross-account roles
- Condition keys restrict by source IP, VPC, or MFA
- Role session duration limited (1h for sensitive roles)
- Regular review of trust policiesExample trust policy with external ID:
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Principal": {"AWS": "arn:aws:iam::ACCOUNT-ID:root"},
"Action": "sts:AssumeRole",
"Condition": {
"StringEquals": {
"sts:ExternalId": "unique-external-id"
}
}
}]
}2. Storage Security
2.1 S3 Bucket Security
Required Configuration:
- Account-level Block Public Access: ALL four settings enabled
- Bucket-level Block Public Access: ALL four settings enabled
- Default encryption: SSE-S3 minimum, SSE-KMS preferred
- Versioning enabled for data buckets
- Access logging enabled
- Lifecycle policies for cost and compliance
- MFA Delete for critical buckets
- S3 Object Lock for compliance (WORM)Enable account-level block public access:
aws s3control put-public-access-block \
--account-id $ACCOUNT_ID \
--public-access-block-configuration \
"BlockPublicAcls=true,IgnorePublicAcls=true,BlockPublicPolicy=true,RestrictPublicBuckets=true"Enable default encryption:
aws s3api put-bucket-encryption \
--bucket my-bucket \
--server-side-encryption-configuration '{
"Rules": [{
"ApplyServerSideEncryptionByDefault": {
"SSEAlgorithm": "aws:kms",
"KMSMasterKeyID": "arn:aws:kms:region:account:key/key-id"
},
"BucketKeyEnabled": true
}]
}'3. Networking
3.1 VPC Security
Required Configuration:
- VPC Flow Logs enabled (ALL traffic, sent to CloudWatch or S3)
- Default security group: deny all inbound, deny all outbound
- No security groups allow 0.0.0.0/0 on SSH (22) or RDP (3389)
- Private subnets for databases, application tiers
- VPC endpoints for AWS services (avoid public internet)
- NACLs as defense-in-depth (not primary control)Enable VPC Flow Logs:
aws ec2 create-flow-logs \
--resource-type VPC \
--resource-ids vpc-12345678 \
--traffic-type ALL \
--log-destination-type cloud-watch-logs \
--log-group-name vpc-flow-logs \
--deliver-logs-permission-arn arn:aws:iam::ACCOUNT:role/flow-logs-role3.2 Security Group Best Practices
Rules:
- Default deny (no rules = deny)
- Source restrictions: specific IPs or security groups, never 0.0.0.0/0 for admin ports
- Protocol-specific rules (not "all traffic")
- Description on every rule (business justification)
- Regular review (quarterly minimum)4. Logging and Monitoring
4.1 CloudTrail
Required Configuration:
- Multi-region trail enabled
- Log file validation enabled
- S3 bucket access logging enabled for CloudTrail bucket
- CloudTrail integrated with CloudWatch Logs
- KMS encryption for CloudTrail logs
- S3 bucket policy prevents public accessCreate multi-region trail:
aws cloudtrail create-trail \
--name organization-trail \
--s3-bucket-name cloudtrail-logs-bucket \
--is-multi-region-trail \
--enable-log-file-validation \
--kms-key-id arn:aws:kms:region:account:key/key-id \
--include-global-service-events4.2 CloudWatch Alarms (CIS Required)
Create alarms for these events:
- Unauthorized API calls
- Console sign-in without MFA
- Root account usage
- IAM policy changes
- CloudTrail configuration changes
- S3 bucket policy changes
- Security group changes
- NACL changes
- Network gateway changes
- Route table changes
- VPC changes
- AWS Organizations changes
- Failed console sign-ins (>3 in 5 min)
4.3 GuardDuty
Required Configuration:
- Enabled in all active regions
- S3 protection enabled
- EKS protection enabled (if using EKS)
- Malware protection enabled
- Findings exported to Security Hub
- High/Critical findings trigger SNS notification4.4 AWS Config
Required Configuration:
- Enabled in all active regions
- Recording all resource types
- Conformance packs deployed (CIS Benchmark, SOC 2)
- Non-compliant resources trigger remediation5. Encryption and Key Management
5.1 KMS
Required Configuration:
- Customer-managed keys (CMK) for sensitive data
- Annual key rotation enabled
- Key policies follow least privilege
- Key aliases for identification
- Cross-account key sharing uses grants (not key policies)
- Key deletion requires 30-day waiting periodEnable key rotation:
aws kms enable-key-rotation --key-id $KEY_ID5.2 RDS Encryption
Required Configuration:
- Encryption at rest enabled (KMS)
- SSL/TLS connections enforced (parameter: rds.force_ssl = 1)
- Automated backups with 7+ day retention
- Multi-AZ for production
- Not publicly accessible
- Enhanced monitoring enabled
- Deletion protection enabled
- IAM authentication enabled (where supported)---
Azure Security Baseline
CIS Azure Foundations Benchmark v2.1 Summary
1. Identity and Access Management
1.1 Azure AD / Entra ID
Required Configuration:
- Security Defaults enabled (if no Conditional Access)
- Maximum 5 Global Administrator accounts
- All Global Admins have MFA (phishing-resistant preferred)
- Conditional Access policies configured:
- Require MFA for all users
- Block legacy authentication
- Require compliant device for sensitive apps
- Require approved client apps
- Privileged Identity Management (PIM) enabled
- JIT activation for admin roles
- Approval required for Global Admin activation
- Maximum activation duration: 4 hours
- Guest user access restricted
- Self-service password reset configured with MFA1.2 Conditional Access (Key Policies)
| Policy | Target | Requirement |
|---|---|---|
| Require MFA | All users | MFA for all cloud apps |
| Block legacy auth | All users | Block protocols: IMAP, POP3, SMTP, ActiveSync |
| Require compliant device | All users | MDM enrollment required |
| Require phishing-resistant MFA | Admins | FIDO2 security key required |
| Block high-risk sign-ins | All users | Block when sign-in risk is High |
| Require password change | All users | When user risk is High |
| Restrict admin portal | Global Admins | Require phishing-resistant MFA + compliant device |
2. Security Center and Defender
Required Configuration:
- Microsoft Defender for Cloud enabled (all plans):
- Defender for Servers (Plan 2)
- Defender for App Service
- Defender for SQL
- Defender for Storage
- Defender for Key Vault
- Defender for Containers
- Defender for DNS
- Secure Score monitored (target: 80%+)
- Auto-provisioning enabled for agents
- Security contacts configured (email + phone)
- Alert severity notifications: High and Critical3. Storage Accounts
Required Configuration:
- Secure transfer required (HTTPS only)
- Public access disabled
- Customer-managed keys for sensitive data
- Soft delete enabled (14+ days)
- Infrastructure encryption enabled
- Shared Access Signature (SAS) expiry: maximum 1 hour
- Private endpoints for PaaS access
- Storage Analytics logging enabled
- Firewall: deny by default, allow by VNet/IP4. Networking
Required Configuration:
- NSG rules: deny all inbound by default, allow by exception
- NSG flow logs enabled (Version 2, retention 90+ days)
- Azure Firewall or NVA deployed
- DDoS Protection Standard for public IPs
- Private endpoints for PaaS services
- Network Watcher enabled in all regions
- No NSG allows any/any inbound
- No NSG allows 0.0.0.0/0 on SSH (22) or RDP (3389)5. Key Vault
Required Configuration:
- RBAC authorization (not legacy access policies)
- Soft delete enabled (90 days)
- Purge protection enabled
- Diagnostic logging enabled
- Firewall: allow from specific VNets/IPs only
- Key rotation policy configured
- Private endpoint for access
- Certificate auto-renewal configured6. Monitoring
Required Configuration:
- Activity Log alerts for:
- Create/update/delete NSG
- Create/update/delete NSG rule
- Create/update/delete security solution
- Create/update/delete SQL Server firewall rule
- Create/update policy assignment
- Create/update/delete public IP
- Diagnostic settings on all resources
- Log Analytics workspace with 365+ day retention
- Microsoft Sentinel deployed (SIEM)
- Azure Policy assignments enforcing compliance---
GCP Security Baseline
CIS GCP Foundations Benchmark v3.0 Summary
1. Identity and Access Management
Required Configuration:
- Organization-level policies use groups (not individual users)
- No service accounts with Owner or Editor roles
- User-managed service account keys rotate every 90 days
- Workload Identity for GKE (no service account keys)
- Domain-restricted sharing via Organization Policy
- Essential Contacts configured for Security notifications
- Service Account Key creation disabled via Organization Policy (use Workload Identity)Organization Policy constraints:
constraints/iam.disableServiceAccountKeyCreation: true
constraints/iam.allowedPolicyMemberDomains: ["C0xxxxxxx"]2. Logging and Monitoring
Required Configuration:
- Cloud Audit Logs enabled for all services:
- Admin Activity (always on, no charge)
- Data Access logs enabled for sensitive services
- System Event logs (always on)
- Log sinks to Cloud Storage or BigQuery for retention
- Log-based metrics for:
- Project ownership changes
- Audit configuration changes
- Custom role changes
- VPC network changes
- Firewall rule changes
- Route changes
- Network changes
- Storage IAM changes
- SQL instance configuration changes
- Alert policies for all log-based metrics3. Networking
Required Configuration:
- Default network deleted
- VPC Flow Logs enabled for all subnets (sample rate 100%)
- Firewall rules: no 0.0.0.0/0 on SSH (22) or RDP (3389)
- Private Google Access enabled for private subnets
- VPC Service Controls for sensitive projects
- Cloud Armor WAF for public services
- Cloud DNS DNSSEC enabled
- SSL policies enforce TLS 1.2+ with MODERN profileFirewall audit query (gcloud):
gcloud compute firewall-rules list \
--filter="sourceRanges:0.0.0.0/0 AND (allowed.ports:22 OR allowed.ports:3389)" \
--format="table(name,network,sourceRanges,allowed)"4. Cloud Storage
Required Configuration:
- Uniform bucket-level access enabled
- Public access prevention enforced (organization policy)
- Customer-managed encryption keys (CMEK) for sensitive data
- Object versioning enabled
- Access logging enabled
- Retention policy for compliance data
- No allUsers or allAuthenticatedUsers in bucket IAMOrganization Policy:
constraints/storage.publicAccessPrevention: enforced
constraints/storage.uniformBucketLevelAccess: true5. Compute and GKE
Required Configuration:
- Compute instances:
- No default service account
- No external IP (use NAT or IAP)
- Shielded VM enabled
- OS Login enabled
- Serial port disabled
- GKE:
- Private cluster (no public endpoint, or authorized networks)
- Workload Identity enabled
- Shielded Nodes enabled
- Node auto-upgrade enabled
- Container-Optimized OS for nodes
- Network Policies enabled
- Binary Authorization enabled
- Release channel: Regular or Stable6. Security Command Center
Required Configuration:
- SCC Premium enabled
- Web Security Scanner enabled
- Event Threat Detection enabled
- Container Threat Detection enabled
- Security Health Analytics enabled
- Findings exported to SIEM
- High/Critical findings trigger notifications---
Cross-Cloud Security Comparison
| Control | AWS | Azure | GCP |
|---|---|---|---|
| Identity | IAM Users/Roles | Entra ID/PIM | Cloud IAM/Groups |
| MFA | IAM MFA, SSO | Conditional Access | Google 2-Step |
| Encryption at rest | KMS (CMK) | Key Vault (CMK) | Cloud KMS (CMEK) |
| Encryption in transit | ACM + ALB | App Gateway + Front Door | Cloud Load Balancer |
| Network firewall | Security Groups, NACLs | NSG, Azure Firewall | VPC Firewall Rules |
| WAF | AWS WAF | Azure WAF (App GW/Front Door) | Cloud Armor |
| DDoS | Shield Standard/Advanced | DDoS Protection Standard | Cloud Armor |
| Logging | CloudTrail, CloudWatch | Activity Log, Monitor | Cloud Audit Logs |
| SIEM | Security Hub, Detective | Microsoft Sentinel | Chronicle, SCC |
| Vulnerability scan | Inspector | Defender for Cloud | SCC, Web Security Scanner |
| Container security | ECR scanning, GuardDuty | Defender for Containers | Container Threat Detection |
| Secrets | Secrets Manager | Key Vault | Secret Manager |
| Config compliance | AWS Config | Azure Policy | Organization Policy |
| CIS Benchmark | CIS AWS v3.0 | CIS Azure v2.1 | CIS GCP v3.0 |
---
Minimum Viable Security Baseline (Any Cloud)
For organizations just starting, implement these controls first:
Tier 1 — Immediate (Week 1)
1. Enable MFA for all accounts (hardware keys for admins) 2. Enable audit logging in all regions 3. Block public access to storage (S3/Storage/GCS) 4. Remove wildcard permissions from IAM 5. Enable encryption at rest for databases 6. No open SSH/RDP to the internet
Tier 2 — Short-term (Month 1)
1. Deploy cloud security posture management (CSPM) 2. Enable VPC/NSG flow logs 3. Configure alerting for security events 4. Enable vulnerability scanning 5. Implement network segmentation 6. Deploy WAF for public applications
Tier 3 — Medium-term (Quarter 1)
1. Implement least-privilege IAM (review all policies) 2. Deploy SIEM with correlation rules 3. Enable container image scanning 4. Implement secrets management 5. Configure key rotation 6. Establish quarterly access reviews
---
Last Updated: March 2026 CIS Benchmark Versions: AWS v3.0, Azure v2.1, GCP v3.0
Compliance Framework Mapping Reference
Master mapping of infrastructure security controls to compliance frameworks. Use this to satisfy multiple framework requirements with single control implementations.
---
Supported Frameworks
| # | Framework | Full Name | Version | Focus |
|---|---|---|---|---|
| 1 | SOC 2 | Service Organization Control 2 | Trust Services Criteria 2017 (updated 2022) | Service provider security, availability, processing integrity, confidentiality, privacy |
| 2 | ISO 27001 | ISO/IEC 27001 | 2022 | Information security management system (93 Annex A controls) |
| 3 | HIPAA | Health Insurance Portability and Accountability Act | Security Rule (45 CFR Part 164) | Protected health information (PHI) security |
| 4 | GDPR | General Data Protection Regulation | EU 2016/679 | Personal data protection and privacy |
| 5 | PCI-DSS | Payment Card Industry Data Security Standard | v4.0 (March 2024) | Cardholder data protection |
| 6 | NIS2 | Network and Information Security Directive | EU 2022/2555 | Critical infrastructure cybersecurity |
| 7 | DORA | Digital Operational Resilience Act | EU 2022/2554 | Financial services ICT resilience |
| 8 | NIST CSF | NIST Cybersecurity Framework | 2.0 (February 2024) | Cybersecurity risk management |
| 9 | FedRAMP | Federal Risk and Authorization Management Program | Rev 5 (based on NIST 800-53) | US federal cloud security |
| 10 | CCPA | California Consumer Privacy Act / CPRA | Cal. Civ. Code 1798.100+ | Consumer data privacy rights |
---
Master Control Mapping Table
Access Control
| Control | Description | SOC 2 | ISO 27001 | HIPAA | GDPR | PCI-DSS | NIS2 | DORA | NIST CSF | FedRAMP | CCPA |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Centralized IdP | Single identity provider for all apps | CC6.1 | A.5.15 | 164.312(d) | Art.32 | 8.1 | Art.21.2.j | Art.9.4 | PR.AA-01 | AC-2 | - |
| MFA all users | Multi-factor for every account | CC6.1 | A.8.5 | 164.312(d) | Art.32 | 8.3 | Art.21.2.j | Art.9.4 | PR.AA-03 | IA-2(1) | 1798.150 |
| Phishing-resistant MFA | FIDO2/WebAuthn for admins | CC6.1 | A.8.5 | 164.312(d) | Art.32 | 8.3 | Art.21.2.j | Art.9.4 | PR.AA-03 | IA-2(6) | - |
| SSO (SAML/OIDC) | Federated authentication | CC6.1 | A.8.5 | 164.312(d) | Art.32 | 8.1 | Art.21.2.j | Art.9.4 | PR.AA-01 | AC-2 | - |
| SCIM provisioning | Automated user lifecycle | CC6.2 | A.5.16 | 164.312(a)(1) | Art.32 | 8.1.4 | Art.21.2.j | Art.9.4 | PR.AA-02 | AC-2(2) | - |
| JIT privileged access | Time-limited admin access | CC6.1 | A.8.2 | 164.312(a)(1) | Art.32 | 7.1 | Art.21.2.i | Art.9.4 | PR.AA-05 | AC-2(2) | - |
| Access review (quarterly) | Recertification of access | CC6.2 | A.5.18 | 164.312(a)(1) | Art.32 | 7.1.1 | Art.21.2.j | Art.9.4 | PR.AA-05 | AC-2(3) | - |
| RBAC documented | Role-based access model | CC6.3 | A.5.15 | 164.312(a)(1) | Art.32 | 7.1 | Art.21.2.i | Art.9.4 | PR.AA-05 | AC-3 | - |
| Separation of duties | No conflicting roles | CC6.3 | A.5.3 | 164.312(a)(1) | - | 6.4.2 | Art.21.2.i | Art.9.4 | PR.AA-05 | AC-5 | - |
| Service account governance | Unique creds, rotation, inventory | CC6.1 | A.5.16 | 164.312(d) | Art.32 | 8.5 | Art.21.2.j | Art.9.4 | PR.AA-02 | AC-2 | - |
| SSH key management | ED25519, no root login | CC6.7 | A.8.5 | 164.312(d) | Art.32 | 8.3.2 | - | - | PR.AA-03 | IA-5 | - |
| Password policy (14+ chars) | Strong password requirements | CC6.1 | A.5.17 | 164.312(d) | Art.32 | 8.2.3 | Art.21.2.j | Art.9.4 | PR.AA-03 | IA-5 | - |
Encryption
| Control | Description | SOC 2 | ISO 27001 | HIPAA | GDPR | PCI-DSS | NIS2 | DORA | NIST CSF | FedRAMP | CCPA |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Encryption at rest (data) | Storage encryption | CC6.7 | A.8.24 | 164.312(a)(2)(iv) | Art.32 | 3.4 | Art.21.2.h | Art.9.2 | PR.DS-01 | SC-28 | 1798.150 |
| Encryption at rest (disk) | Full disk encryption | CC6.7 | A.8.24 | 164.312(a)(2)(iv) | Art.32 | 3.4 | Art.21.2.h | Art.9.2 | PR.DS-01 | SC-28 | - |
| Encryption in transit (TLS 1.2+) | Network encryption | CC6.7 | A.8.24 | 164.312(e)(1) | Art.32 | 4.1 | Art.21.2.h | Art.9.2 | PR.DS-02 | SC-8 | 1798.150 |
| Key management (KMS) | Centralized key management | CC6.7 | A.8.24 | 164.312(a)(2)(iv) | Art.32 | 3.5 | Art.21.2.h | Art.9.2 | PR.DS-01 | SC-12 | - |
| Key rotation | Regular key rotation | CC6.7 | A.8.24 | - | Art.32 | 3.6.4 | Art.21.2.h | Art.9.2 | PR.DS-01 | SC-12(1) | - |
| Certificate management | TLS cert lifecycle | CC6.7 | A.8.24 | 164.312(e)(1) | Art.32 | 4.1 | Art.21.2.h | Art.9.2 | PR.DS-02 | SC-17 | - |
| mTLS (service-to-service) | Internal encryption | CC6.7 | A.8.24 | 164.312(e)(1) | Art.32 | 4.1 | Art.21.2.h | Art.9.2 | PR.DS-02 | SC-8(1) | - |
Network Security
| Control | Description | SOC 2 | ISO 27001 | HIPAA | GDPR | PCI-DSS | NIS2 | DORA | NIST CSF | FedRAMP | CCPA |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Network segmentation | Isolate environments | CC6.6 | A.8.22 | 164.312(e)(1) | Art.32 | 1.2 | Art.21.2.a | Art.9.2 | PR.IR-01 | SC-7 | - |
| Firewall (default deny) | Deny-all ingress/egress | CC6.6 | A.8.22 | 164.312(e)(1) | Art.32 | 1.2 | Art.21.2.a | Art.9.2 | PR.IR-01 | SC-7 | - |
| WAF deployed | Web application firewall | CC6.6 | A.8.22 | - | Art.32 | 6.6 | Art.21.2.a | Art.9.2 | PR.IR-01 | SC-7 | - |
| DDoS protection | Volumetric attack defense | A1.2 | A.8.22 | - | Art.32 | - | Art.21.2.a | Art.9.2 | PR.IR-04 | SC-5 | - |
| IDS/IPS | Intrusion detection/prevention | CC6.6 | A.8.16 | 164.312(e)(1) | Art.32 | 11.4 | Art.21.2.a | Art.9.2 | DE.CM-01 | SI-4 | - |
| VPN (WireGuard/IPSec) | Secure remote access | CC6.7 | A.8.22 | 164.312(e)(1) | Art.32 | 4.1 | Art.21.2.a | Art.9.2 | PR.DS-02 | SC-8 | - |
| ZTNA | Zero trust network access | CC6.6 | A.8.22 | 164.312(e)(1) | Art.32 | - | Art.21.2.a | Art.9.4 | PR.AA-05 | SC-7 | - |
Logging and Monitoring
| Control | Description | SOC 2 | ISO 27001 | HIPAA | GDPR | PCI-DSS | NIS2 | DORA | NIST CSF | FedRAMP | CCPA |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Centralized logging | All logs to one platform | CC7.2 | A.8.15 | 164.312(b) | Art.30 | 10.5.3 | Art.21.2.b | Art.10 | DE.CM-09 | AU-6 | - |
| SIEM deployed | Security event correlation | CC7.2 | A.8.16 | 164.312(b) | Art.30 | 10.6 | Art.21.2.b | Art.10 | DE.AE-02 | SI-4 | - |
| Audit trail (who/what/when) | Complete audit logging | CC7.2 | A.8.15 | 164.312(b) | Art.30 | 10.2 | Art.21.2.b | Art.10 | DE.CM-09 | AU-3 | 1798.150 |
| Log retention (1 year) | Minimum retention period | CC7.2 | A.8.15 | 164.312(b) | - | 10.7 | Art.21.2.b | Art.10 | DE.CM-09 | AU-11 | - |
| Log integrity | Immutable logs | CC7.2 | A.8.15 | 164.312(b) | - | 10.5 | Art.21.2.b | Art.10 | DE.CM-09 | AU-9 | - |
| Security alerts | Automated alerting | CC7.3 | A.5.25 | 164.308(a)(6) | Art.33 | 10.6 | Art.23 | Art.17 | DE.AE-02 | IR-6 | - |
| FIM (file integrity) | File change monitoring | CC7.2 | A.8.15 | 164.312(b) | - | 11.5 | Art.21.2.b | Art.10 | DE.CM-09 | SI-7 | - |
| UEBA | User behavior analytics | CC7.2 | A.8.16 | - | - | - | Art.21.2.b | Art.10 | DE.AE-01 | SI-4 | - |
Endpoint Security
| Control | Description | SOC 2 | ISO 27001 | HIPAA | GDPR | PCI-DSS | NIS2 | DORA | NIST CSF | FedRAMP | CCPA |
|---|---|---|---|---|---|---|---|---|---|---|---|
| MDM deployed | Device management | CC6.7 | A.8.1 | 164.310(d)(1) | Art.32 | - | Art.21.2.d | Art.9.2 | PR.AC-03 | - | - |
| EDR/AV deployed | Endpoint detection | CC6.8 | A.8.7 | 164.308(a)(5)(ii)(B) | Art.32 | 5.1 | Art.21.2.d | Art.9.2 | DE.CM-04 | SI-3 | - |
| Patch management | OS and app patching | CC7.1 | A.8.8 | 164.308(a)(5)(ii)(B) | Art.32 | 6.2 | Art.21.2.d | Art.9.2 | PR.PS-02 | SI-2 | - |
| Screen lock (5 min) | Automatic lock | CC6.1 | A.8.1 | 164.310(b) | - | 8.1.8 | - | - | PR.AC-03 | AC-11 | - |
| USB control | Removable media policy | CC6.7 | A.8.12 | 164.310(d)(1) | Art.32 | 9.7 | Art.21.2.d | Art.9.2 | PR.DS-01 | MP-7 | - |
| Remote wipe | Lost device protection | CC6.7 | A.8.1 | 164.310(d)(2)(iii) | Art.32 | - | Art.21.2.d | Art.9.2 | PR.DS-01 | - | - |
CI/CD and Supply Chain
| Control | Description | SOC 2 | ISO 27001 | HIPAA | GDPR | PCI-DSS | NIS2 | DORA | NIST CSF | FedRAMP | CCPA |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Branch protection | Required reviews, status checks | CC7.1 | A.8.25 | - | - | 6.4.2 | Art.21.2.e | Art.9.2 | PR.PS-01 | SA-11 | - |
| Secret scanning | Detect secrets in code | CC6.7 | A.8.4 | 164.312(a)(2)(iv) | Art.32 | 3.4 | Art.21.2.e | Art.9.2 | PR.DS-01 | SA-11 | - |
| SAST (static analysis) | Code security scanning | CC7.1 | A.8.25 | - | - | 6.3.2 | Art.21.2.e | Art.9.2 | PR.PS-01 | SA-11 | - |
| Dependency scanning | Third-party vulnerability | CC7.1 | A.8.8 | - | - | 6.2 | Art.21.2.d | Art.9.2 | PR.PS-02 | SA-11 | - |
| Container scanning | Image vulnerability | CC7.1 | A.8.8 | - | - | 6.2 | Art.21.2.d | Art.9.2 | PR.PS-02 | SA-11 | - |
| SBOM generation | Software bill of materials | CC7.1 | A.5.21 | - | - | - | Art.21.2.d | Art.9.2 | PR.PS-01 | SA-17 | - |
| Artifact signing | Build artifact integrity | CC7.1 | A.8.25 | - | - | - | Art.21.2.e | Art.9.2 | PR.PS-01 | SA-10 | - |
| Deploy approval gates | Production change control | CC7.1 | A.8.25 | - | - | 6.4.5 | Art.21.2.e | Art.9.2 | PR.PS-01 | CM-3 | - |
Secrets Management
| Control | Description | SOC 2 | ISO 27001 | HIPAA | GDPR | PCI-DSS | NIS2 | DORA | NIST CSF | FedRAMP | CCPA |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Secrets manager | Centralized secret storage | CC6.7 | A.8.24 | 164.312(a)(2)(iv) | Art.32 | 3.5 | Art.21.2.h | Art.9.2 | PR.DS-01 | SC-28 | - |
| Secret rotation (90d) | Regular credential rotation | CC6.1 | A.5.17 | 164.312(d) | Art.32 | 8.2.4 | Art.21.2.j | Art.9.4 | PR.AA-03 | IA-5 | - |
| No secrets in code | Code scanning for secrets | CC6.7 | A.8.4 | 164.312(a)(2)(iv) | Art.32 | 3.4 | Art.21.2.e | Art.9.2 | PR.DS-01 | SA-11 | - |
| Pre-commit hooks | Prevent secret commits | CC6.7 | A.8.4 | 164.312(a)(2)(iv) | Art.32 | 3.4 | Art.21.2.e | Art.9.2 | PR.DS-01 | SA-11 | - |
| HSM for critical keys | Hardware key protection | CC6.7 | A.8.24 | 164.312(a)(2)(iv) | Art.32 | 3.5 | Art.21.2.h | Art.9.2 | PR.DS-01 | SC-12(1) | - |
Physical Security
| Control | Description | SOC 2 | ISO 27001 | HIPAA | GDPR | PCI-DSS | NIS2 | DORA | NIST CSF | FedRAMP | CCPA |
|---|---|---|---|---|---|---|---|---|---|---|---|
| DC SOC 2 report | Provider security assurance | CC6.4 | A.5.21 | 164.310(a)(1) | Art.28 | 9.1 | Art.21.2.d | Art.28 | GV.SC-06 | PE-1 | - |
| Badge access | Physical entry control | CC6.4 | A.7.2 | 164.310(a)(1) | - | 9.1 | Art.21.2.f | - | PR.AC-03 | PE-3 | - |
| Media disposal | NIST 800-88 destruction | CC6.5 | A.7.14 | 164.310(d)(2)(i) | Art.32 | 9.8 | Art.21.2.h | Art.9.2 | PR.IP-06 | MP-6 | - |
| Visitor management | Visitor logging and escort | CC6.4 | A.7.2 | 164.310(a)(1) | - | 9.4 | Art.21.2.f | - | PR.AC-03 | PE-8 | - |
---
Control Overlap Analysis
Highest-Overlap Controls (Implement First)
These controls satisfy the most frameworks simultaneously:
| Control | Frameworks Covered | Priority |
|---|---|---|
| MFA enforcement | 9/10 (all except CCPA) | P0 — Immediate |
| Encryption at rest | 9/10 | P0 — Immediate |
| Encryption in transit (TLS 1.2+) | 9/10 | P0 — Immediate |
| Centralized logging | 8/10 | P0 — Immediate |
| Access control (RBAC) | 8/10 | P0 — Immediate |
| Audit trail (who/what/when) | 8/10 | P0 — Immediate |
| Patch management | 8/10 | P1 — Week 1 |
| Network segmentation | 8/10 | P1 — Week 1 |
| EDR/AV deployed | 8/10 | P1 — Week 1 |
| Incident response plan | 8/10 | P1 — Week 1 |
| Secret management | 8/10 | P1 — Week 1 |
| Key management | 7/10 | P2 — Month 1 |
| IDS/IPS | 7/10 | P2 — Month 1 |
| SIEM deployed | 7/10 | P2 — Month 1 |
| SBOM generation | 5/10 | P3 — Quarter 1 |
Framework-Specific Controls (Low Overlap)
These controls are required by only 1-2 frameworks:
| Control | Framework | Priority |
|---|---|---|
| PCI DSS scoping (CDE isolation) | PCI-DSS only | Required if processing cards |
| DPIA (Data Protection Impact Assessment) | GDPR, CCPA | Required if processing EU/CA personal data |
| ICT resilience testing (TLPT) | DORA only | Required for financial services |
| NIS2 incident reporting (24h/72h) | NIS2 only | Required for critical infrastructure |
| FedRAMP authorization package | FedRAMP only | Required for US federal cloud |
| HIPAA BAA (Business Associate Agreement) | HIPAA only | Required for PHI processing |
---
Prioritization Guide for Multi-Framework Compliance
If pursuing SOC 2 + ISO 27001 (most common combination)
Overlap: ~85% — Most SOC 2 controls map directly to ISO 27001 Annex A controls.
Implementation order: 1. Access control (IdP, SSO, MFA, RBAC) — satisfies CC6.1-CC6.3 + A.5.15-A.8.5 2. Encryption (at rest + in transit) — satisfies CC6.7 + A.8.24 3. Logging and monitoring — satisfies CC7.2 + A.8.15-A.8.16 4. Change management (CI/CD security) — satisfies CC7.1 + A.8.25 5. Vendor management — satisfies CC9.2 + A.5.19-A.5.21 6. Incident response — satisfies CC7.3-CC7.4 + A.5.24-A.5.28 7. Physical security — satisfies CC6.4-CC6.5 + A.7.1-A.7.14
If pursuing SOC 2 + HIPAA (healthcare SaaS)
Overlap: ~70% — HIPAA has specific PHI requirements beyond SOC 2.
Additional HIPAA-specific: 1. PHI inventory and data flow mapping 2. Business Associate Agreements (BAAs) 3. Minimum necessary standard (data minimization) 4. Patient rights (access, amendment, accounting) 5. Breach notification (60 days to HHS, individuals) 6. Risk analysis (annual, documented) 7. Contingency plan (emergency mode, disaster recovery)
If pursuing SOC 2 + PCI-DSS (fintech/payments)
Overlap: ~60% — PCI-DSS has prescriptive requirements beyond SOC 2.
Additional PCI-DSS-specific: 1. Cardholder Data Environment (CDE) scoping and isolation 2. Quarterly ASV (Approved Scanning Vendor) scans 3. Annual penetration testing 4. PAN (Primary Account Number) masking/tokenization 5. Key management lifecycle (custodians, split knowledge) 6. Wireless scanning (quarterly) 7. Service provider management (PCI compliance verification)
If pursuing NIS2 + DORA (EU critical infrastructure + financial)
Overlap: ~75% — DORA is more prescriptive than NIS2.
Combined requirements: 1. ICT risk management framework 2. Incident reporting (NIS2: 24h early warning, 72h full; DORA: 4h initial, 72h intermediate) 3. Resilience testing (DORA: TLPT for significant entities) 4. Supply chain security (both) 5. Business continuity and DR 6. Board-level accountability
---
Evidence Collection Strategy
Single-Evidence, Multi-Framework Approach
For each control, collect ONE evidence artifact that satisfies ALL applicable frameworks:
| Evidence Type | Example | Satisfies |
|---|---|---|
| Policy Document | Access Control Policy v3.0 | SOC 2 CC6.1, ISO 27001 A.5.15, HIPAA 164.312(a), PCI-DSS 7.1 |
| Configuration Screenshot | MFA enforcement in Okta | SOC 2 CC6.1, ISO 27001 A.8.5, HIPAA 164.312(d), PCI-DSS 8.3 |
| Audit Log Export | 90 days of authentication logs | SOC 2 CC7.2, ISO 27001 A.8.15, HIPAA 164.312(b), PCI-DSS 10.2 |
| Review Minutes | Q1 Access Review meeting notes | SOC 2 CC6.2, ISO 27001 A.5.18, PCI-DSS 7.1.1 |
| Scan Report | Quarterly vulnerability scan | SOC 2 CC7.1, ISO 27001 A.8.8, PCI-DSS 11.2, NIST CSF DE.CM-08 |
| Test Results | DR test results document | SOC 2 A1.2, ISO 27001 A.5.30, HIPAA 164.308(a)(7), PCI-DSS 12.10 |
| Training Records | Security awareness completion | SOC 2 CC1.4, ISO 27001 A.6.3, HIPAA 164.308(a)(5), PCI-DSS 12.6 |
| Vendor Assessment | Cloud provider SOC 2 report | SOC 2 CC9.2, ISO 27001 A.5.21, HIPAA 164.308(b), PCI-DSS 12.8 |
| Incident Record | Security incident response log | SOC 2 CC7.4, ISO 27001 A.5.26, HIPAA 164.308(a)(6), PCI-DSS 12.10 |
| Risk Register | Annual risk assessment | SOC 2 CC3.1, ISO 27001 Cl.6.1, HIPAA 164.308(a)(1), PCI-DSS 12.2 |
Evidence Collection Calendar
| Frequency | Evidence | Owner |
|---|---|---|
| Daily | Automated scan results (pushed to evidence repo) | Security tooling |
| Weekly | Patch compliance report | IT operations |
| Monthly | Access provisioning/deprovisioning report | IAM team |
| Quarterly | Access recertification results | Managers + Security |
| Quarterly | Vulnerability scan results | Security |
| Quarterly | Security awareness training completion | HR |
| Semi-annually | Penetration test results | External vendor |
| Semi-annually | DR/BC test results | IT operations |
| Annually | Risk assessment | Security + Leadership |
| Annually | Policy review and updates | Security + Legal |
| Annually | Vendor security assessments | Security + Procurement |
| Annually | SOC 2 report from cloud providers | Security |
| On change | Change management records | Engineering |
| On incident | Incident response documentation | Security |
---
Framework-Specific Quick Reference
SOC 2 Trust Services Criteria (Most Common)
| Category | Criteria | Focus |
|---|---|---|
| CC1 | Control Environment | Organization, management, board oversight |
| CC2 | Communication and Information | Internal/external communication |
| CC3 | Risk Assessment | Risk identification, analysis, management |
| CC4 | Monitoring Activities | Ongoing evaluation of controls |
| CC5 | Control Activities | Policies and procedures |
| CC6 | Logical and Physical Access | Authentication, authorization, physical security |
| CC7 | System Operations | Change management, monitoring, incident response |
| CC8 | Change Management | System changes, testing, approval |
| CC9 | Risk Mitigation | Vendor management, business continuity |
| A1 | Availability | System availability and recovery |
| PI1 | Processing Integrity | Accurate, complete processing |
| C1 | Confidentiality | Data protection |
| P1 | Privacy | Personal information handling |
ISO 27001:2022 Annex A Control Families
| Family | Controls | Focus |
|---|---|---|
| A.5 | Organizational (37 controls) | Policies, roles, threat intel, asset management |
| A.6 | People (8 controls) | Screening, terms, awareness, remote working |
| A.7 | Physical (14 controls) | Perimeters, entry, equipment, media |
| A.8 | Technological (34 controls) | Access, crypto, endpoints, logging, development |
NIST CSF 2.0 Functions
| Function | Code | Focus |
|---|---|---|
| Govern | GV | Risk management strategy, roles, policies |
| Identify | ID | Asset management, risk assessment, improvement |
| Protect | PR | Access control, awareness, data security, platform security |
| Detect | DE | Continuous monitoring, adverse event analysis |
| Respond | RS | Incident management, analysis, mitigation, reporting |
| Recover | RC | Recovery planning, communication |
---
Last Updated: March 2026 Frameworks Covered: 10 (SOC 2, ISO 27001, HIPAA, GDPR, PCI-DSS, NIS2, DORA, NIST CSF, FedRAMP, CCPA) Total Control Mappings: 250+
Related skills
FAQ
Which frameworks does it map to?
SOC 2, ISO 27001, HIPAA, GDPR, PCI-DSS, NIS2, DORA, NIST CSF, FedRAMP, and CCPA.
Does it do penetration testing?
No; it performs configuration-based assessment from JSON input, not active testing, live scanning, or certification.