NIST SP 800-53 Architecture Mapping
On this page
This page maps NIST SP 800-53 Rev. 5 security controls to CRAIG’s concrete implementation. Each control is linked to the specific code, configuration, or infrastructure component that satisfies the requirement. This mapping supports the Authority to Operate (ATO) process for deploying agencies.
CRAIG tracks NIST control implementation status programmatically via the nist_controls table on craig-security.
Use GET /v1/security/nist to query current control status, or the CLI: craig security nist list.
|
Access Control (AC)
| Control | Requirement | CRAIG Implementation |
|---|---|---|
AC-2 |
Account Management |
Keycloak OIDC manages the full account lifecycle (creation, modification, disabling, removal). Nine RBAC roles defined (the realm also carries the |
AC-3 |
Access Enforcement |
Every protected API handler extracts claims via the |
AC-6 |
Least Privilege |
Nine granular roles enforce least privilege through the jurisdiction-swappable authz rulesets. Caseworkers cannot access admin functions (user management, archive, NIST controls). The |
AC-7 |
Unsuccessful Logon Attempts |
Keycloak enforces account lockout policies: configurable failed attempt threshold, lockout duration, and permanent lockout after repeated failures. Lockout events are logged in the Keycloak event log. CRAIG’s audit subscriber captures authentication failure events published by the Keycloak integration. |
Audit and Accountability (AU)
| Control | Requirement | CRAIG Implementation |
|---|---|---|
AU-2 |
Event Logging |
A wildcard RabbitMQ subscriber on |
AU-6 |
Audit Review, Analysis, and Reporting |
|
Configuration Management (CM)
| Control | Requirement | CRAIG Implementation |
|---|---|---|
CM-2 |
Baseline Configuration |
All service containers are built from |
CM-6 |
Configuration Settings |
All configuration uses the |
Identification and Authentication (IA)
| Control | Requirement | CRAIG Implementation |
|---|---|---|
IA-2 |
Identification and Authentication (Organizational Users) |
Keycloak provides OIDC authentication. The web UI uses Authorization Code flow with PKCE (no client secret exposed to the browser). The CLI and integration tests use Resource Owner Password Credentials (ROPC) grant. All tokens are JWT with RS256 signing. JWKS endpoint is used for key retrieval with rotation support. Token expiry is enforced on every request. |
IA-5 |
Authenticator Management |
Keycloak manages all password policies: minimum length, complexity requirements, password history, expiration. No passwords are stored in CRAIG’s databases. API keys for partner intake integration are hashed with SHA-256 before storage — only the hash is persisted; the plaintext key is returned exactly once at creation time. |
System and Communications Protection (SC)
| Control | Requirement | CRAIG Implementation |
|---|---|---|
SC-7 |
Boundary Protection |
CORS middleware enforces an explicit origin allowlist (not wildcard in production) with specific method enumeration (GET, POST, PUT, DELETE, OPTIONS). Public intake endpoints are rate-limited (configurable per-hour via |
SC-8 |
Transmission Confidentiality |
TLS is enforced via Keycloak redirect URI validation (HTTPS-only in production). Session cookies are set with |
SC-13 |
Cryptographic Protection |
JWT tokens use RS256 (RSA 2048-bit + SHA-256) via Keycloak. Intake report integrity verification uses ECDSA P-256 with detached JWS (ES256). API key hashing uses SHA-256. All inter-service communication uses TLS in production. No custom cryptographic implementations — all cryptography uses audited libraries ( |
System and Information Integrity (SI)
| Control | Requirement | CRAIG Implementation |
|---|---|---|
SI-2 |
Flaw Remediation |
|
SI-10 |
Information Input Validation |
SQLx compile-time query validation prevents SQL injection by verifying all queries against the database schema at build time — no string concatenation of SQL. The |
Additional Controls
The following controls are tracked in the nist_controls table but are primarily deployment-environment responsibilities:
| Control | Requirement | Deployment Responsibility |
|---|---|---|
CP-9 |
Information System Backup |
Deploying agencies must configure PostgreSQL backup schedules (pg_dump or continuous archiving), RabbitMQ definitions export, Keycloak realm export, and object storage replication. CRAIG’s architecture supports backup by using standard infrastructure components with well-documented backup procedures. |
IR-4 |
Incident Handling |
CRAIG provides the detection and audit infrastructure (AU-2, AU-6). Deploying agencies must establish incident response teams, communication plans, and escalation procedures appropriate to their organization. See Incident Response Overview for the recommended framework. |
PE-(Physical) |
Physical and Environmental Protection |
Not applicable to CRAIG as a software system. Physical security is the responsibility of the hosting environment (data center, cloud provider). |
PL-(Planning) |
Security Planning |
Deploying agencies must develop a System Security Plan (SSP) that references this architecture mapping. See ATO Readiness Checklist for guidance. |
Coverage Summary
| Control Family | Controls Mapped | Status |
|---|---|---|
Access Control (AC) |
AC-2, AC-3, AC-6, AC-7 |
Fully implemented in application code and Keycloak |
Audit and Accountability (AU) |
AU-2, AU-6 |
Fully implemented via wildcard audit subscriber |
Configuration Management (CM) |
CM-2, CM-6 |
Fully implemented via Docker + env var architecture |
Identification and Authentication (IA) |
IA-2, IA-5 |
Fully implemented via Keycloak OIDC |
System and Communications Protection (SC) |
SC-7, SC-8, SC-13 |
Fully implemented in application middleware |
System and Information Integrity (SI) |
SI-2, SI-10 |
Fully implemented via CI scanning + compile-time validation |
Contingency Planning (CP) |
CP-9 |
Architecture supports; deployment-specific configuration required |
Incident Response (IR) |
IR-4 |
Detection infrastructure provided; response procedures are organizational |
Physical (PE) |
PE-* |
Not applicable (software system) |
Planning (PL) |
PL-* |
SSP template guidance provided |
Related Pages
-
Security Operations — remediation SLAs, penetration testing, incident response
-
ATO Readiness Checklist — actionable checklist for deploying agencies
-
Configuration Reference — all security-related configuration settings
-
Architecture — system architecture overview