Adding secure NTP
This commit is contained in:
@@ -122,7 +122,7 @@ ISM/PSPF style). Ratings are **pre-treatment** unless stated; the AO accepts the
|
||||
| Secure build & change control | ISM-1483* | Controlled, repeatable builds. | Reproducible Packer build in CI; digest-pinned deployment; one commit/release; rollback = revert commit. | Implemented | — |
|
||||
| Protect build/signing key material | ISM-0501*, ISM-1233* | Protect keys. | Signing keys CI/HSM-held; **never** in repo or build VM; never logged. | Implemented | — |
|
||||
| Privileged actions logged | ISM-1509* | Admin actions auditable. | auditd rules capture privileged/admin events. | Implemented | R-07 (offload protection) |
|
||||
| Disable debug/back-door access | ISM-1491* | No undocumented access paths. | `debug_shell=true` currently bakes a **passwordless root tty** (lab debugging). | Partial | **R-02 (must remove before prod)** |
|
||||
| Disable debug/back-door access | ISM-1491* | No undocumented access paths. | The `debug_shell` passwordless-root-tty option was **removed from the template 2026-07-11** (`poam-hardening`); no build can bake it. | Implemented | R-02 (remediated); F-07 (runtime drift telemetry) |
|
||||
| Device enrolment & identity lifecycle | ISM-1195*, ISM-0475* | Controlled device onboarding. | **TPM enrolment broker** (v0.3): the host generates a key in-TPM, submits a CSR to the one *unauthenticated pre-auth* endpoint; an admin verifies an **OOB fingerprint** and **approves over mTLS**, then **step-ca** signs the leaf into TPM NV and the manager births the inventory record (cert-serial = key). No auto-approval; identity is human-anchored. Server-side = connected system. | Partial (connected system) | R-14 |
|
||||
| Server-authoritative management plane | ISM-1483*, ISM-1509* | Controlled remote management. | `fleet-agent` streams telemetry + receives desired-state over mTLS; **v1 logs commands but does not act** (no host mutation). Inventory/desired-state is server-authoritative. Reconcile actuators deferred. | Partial | R-14, **R-15 (actuators = future remote-mutation channel)** |
|
||||
|
||||
@@ -187,8 +187,8 @@ asked to accept. Treatments map to [docs/TODO.md](TODO.md) (working POA&M).
|
||||
| ID | Residual risk | ISM linkage | Likelihood × Consequence → **Rating** | Existing compensating controls | Treatment (POA&M) | Post-treat. residual | Owner / target |
|
||||
|---|---|---|---|---|---|---|---|
|
||||
| **R-01** | Secure path (802.1X EAP-TLS + MACsec) **implemented but not bench-verified end-to-end**; disabled in test builds (`disable_dot1x=true`). Until verified, devices may attach to an unauthenticated/unencrypted link. | 2.4, 2.7, 2.8 (ISM-1546*, 0520*, 1187*) | Likely × Major → **High** | Test path on an isolated lab LAN; full auth stack present (dormant); design follows ASD intent. | Full boot-chain bench test (swtpm + hostapd + FreeRADIUS): port `Authorized`, macsec0 addressed, MKA survives switch-root, NVMe root mounts. Re-enable in CI. | **Low** (once verified) | Platform team — *before production ATO* |
|
||||
| **R-02** | `debug_shell=true` bakes a **passwordless root shell** on a tty — an undocumented privileged access path. | 2.5 (ISM-1491*) | Possible × Severe → **High** | Lab-only; physical access required; isolated environment. | Set `debug_shell=false` for all non-lab builds; assert absent in CI. | **Low** | Platform team — *before production* |
|
||||
| **R-03** | STIG hardening **applied + bench-verified** (2026-06-20, all REVIEW rows triaged); residual is ensuring **CI ships `enable_stig=true`** for production builds (it was toggled off during bring-up). | 2.3 (ISM-1407*/1408*) | Possible × Moderate → **Medium** | Tailoring + register + per-build report; SELinux/fapolicyd/USBGuard on; verified on a real hardened build. | Confirm `ENABLE_STIG="true"` in CI; keep the 0-eval guard; re-run the deviations report on the assessed build. | **Low** | Platform team — *before assessment* |
|
||||
| **R-02** | ~~`debug_shell=true` bakes a **passwordless root shell** on a tty~~ — **REMOVED 2026-07-11** (`poam-hardening`): the `debug_shell` variable and its `debug-shell.service` provisioner were deleted from the template; no build path can bake a debug shell. | 2.5 (ISM-1491*) | ~~Possible × Severe → **High**~~ → **eliminated at source** | Lab-only; physical access required; isolated environment (historical). | **Done** — removed from the template. Assessor verifies absence on the assessed digest (POA&M P-02 M2). | **Low** (residual = drift only, F-07) | Platform team — **remediated** |
|
||||
| **R-03** | STIG hardening **applied + bench-verified** (2026-06-20, all REVIEW rows triaged); `enable_stig=true` is now **enforced by Packer variable validation** (a false build fails `packer validate`) and CI fails closed on unsigned/placeholder-CA builds (2026-07-11). Residual: confirm on the *assessed* digest. | 2.3 (ISM-1407*/1408*) | Possible × Moderate → **Medium** | Tailoring + register + per-build report; SELinux/fapolicyd/USBGuard on; verified on a real hardened build; enforced-true toggle + 0-eval guard. | Re-run the deviations report on the assessed (signed) build; keep the 0-eval guard. | **Low** | Platform team — *before assessment* |
|
||||
| **R-04** | NVMe/TCP **root traffic plaintext** on the LAN — exposure of OS content / injection if the segment is compromised. | 2.9 (ISM-1139*/1453*) | Unlikely × Major → **Medium** | Isolated boot LAN; MACsec on the access link (once R-01 done) protects the first hop; dm-verity makes injected root blocks fail verification (integrity preserved even if confidentiality isn't). | Production: TLS/IPsec for the storage transport, or rely on MACsec end-to-end across the fabric; document the decision. | **Low–Medium** | Platform/network — *production* |
|
||||
| **R-05** | **NOPASSWD key-only host admin**; no per-host or rotatable access model. (Management-plane admin MFA is now **enforced** via WebAuthn passkeys — v0.3; residual is the *host SSH* access model.) | 2.4 (ISM-1507*/1173*) | Possible × Moderate → **Medium** | Single fleet-generic admin, key-only, root disabled, ECDSA/RSA key, **SELinux-confined to `staff_u`** with sudo role/type elevation, fully audited; no interactive password to attack. Mgmt-plane admin actions now behind a phishing-resistant passkey. | Per-host/rotatable **host** access (SSH CA / config-agent); the mgmt-plane MFA clause is now met. | **Low–Medium** | Platform team — *roadmap* |
|
||||
| **R-06** | **FIPS off**; ISM **AACA/AACP conformance not formally asserted**; crypto-module evaluation status unconfirmed. | 2.9 (ISM-0471*/1139*/1277*) | Possible × Major → **Medium** | Modern STIG crypto policy; non-exportable TPM key; no deliberately weak algorithms. Acceptable at OFFICIAL; **mandatory to resolve for PROTECTED+.** | Assert AACA/AACP conformance; decide on FIPS module / evaluated crypto alongside Secure Boot signing. | **Low** (at appropriate classification) | Security + Platform — *before PROTECTED+* |
|
||||
@@ -247,8 +247,13 @@ Secure Boot signing verified enforcing on real hardware (R-13 Medium→Low).*
|
||||
5. **Review the STIG generated report** for the build under assessment — every
|
||||
non-pass rule should map to the [deviation register](stig-deviations.md);
|
||||
anything flagged **REVIEW** is an unjustified finding.
|
||||
6. **Confirm lab-only flags are off** in the assessed build: `debug_shell=false`,
|
||||
`enable_stig=true`, `disable_dot1x=false`, real RADIUS CA in place.
|
||||
6. **Confirm lab-only flags are off** in the assessed build. As of 2026-07-11
|
||||
(`poam-hardening`) most are now enforced fail-closed rather than convention:
|
||||
`debug_shell` no longer exists (removed from the template); `enable_stig=true`
|
||||
is enforced by Packer variable validation; the CI Production build gate fails
|
||||
closed unless `SB_KEY`/`SB_CERT`/`FLEET_CA` are set (signed UKI + real RADIUS
|
||||
CA, no placeholder). **Still verify by hand:** `disable_dot1x=false` (not yet
|
||||
enforced — blocked on the P-01 secure-path bench).
|
||||
7. **Confirm boot-chain signing is the default** (R-13): signing + Secure Boot
|
||||
enforcement are **verified on hardware** (VM HTTP + 820 PXE, 2026-06-22) —
|
||||
confirm the *assessed* build is signed and the *assessed* hosts have `db`
|
||||
|
||||
Reference in New Issue
Block a user