Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
b70210a
docs: security-hardening program — ConfigService.Set advisory and pha…
randomizedcoder Nov 8, 2026
81071d8
docs(security-hardening): correct guarantees, Landlock ABI gaps, writ…
randomizedcoder Nov 9, 2026
bcff680
docs(security-hardening): setns scope, AppArmor load-bearing, consist…
randomizedcoder Nov 9, 2026
46bf359
docs(security-hardening): privilege brokers (Phase 5, L7), setns scop…
randomizedcoder Nov 9, 2026
bc8713b
docs(security-hardening): startup confinement check (PR-24, W13, I19)
randomizedcoder Nov 9, 2026
7ef6a15
docs(security-hardening): PR-24 knock-ons
randomizedcoder Nov 10, 2026
6504b8f
docs(security-hardening): gRPC for all IPC; broker-side netlink sends
randomizedcoder Nov 10, 2026
f54d7b6
docs(security-hardening): focused container hardening subset
randomizedcoder Nov 11, 2026
ed6cd2c
docs(security-hardening): focused doc review fixes
randomizedcoder Nov 11, 2026
0279ad6
docs(security): per-phase implementation plan for the focused contain…
randomizedcoder Nov 11, 2026
d7a2e29
docs(security): record the answers to the focused doc's open questions
randomizedcoder Nov 11, 2026
c6812a3
docs(security): record Phase F1 as implemented, with deviations and T…
randomizedcoder Nov 12, 2026
0fe5ccc
docs(security): F1 merged (#293-#296); FP-8 as built (#297-#299)
randomizedcoder Nov 12, 2026
20bd18e
docs(security): record the flake check reds found while checking FP-8
randomizedcoder Nov 13, 2026
9145adb
docs(security): the flake check reds are fixed in #300
randomizedcoder Nov 13, 2026
a501aea
docs(security): FP-5 done as #301, with its TODOs
randomizedcoder Nov 13, 2026
23a218d
docs(security): FP-5 namespace cap ranks by pid; per-owner quotas TODO
randomizedcoder Nov 13, 2026
92d6877
docs(security): FP-5 namespace cap never evicts; first-come queue
randomizedcoder Nov 13, 2026
4e42c14
docs(security): FP-5.4-5.7 socket-count gate, reconcile limits, owner…
randomizedcoder Nov 13, 2026
bad6de9
docs(security): FP-5.7 socket-scale VM results; shard key over the na…
randomizedcoder Nov 14, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,10 @@ gRPC defaults to TCP port `8889`, with optional Unix sockets and bearer/HMAC aut

Current TCP/UDS, TTL/hop-limit, bearer/HMAC, and read/admin protections, with defaults, tradeoffs, recommended deployment profiles, secret handling, and verification examples. Authentication is off by default; native TLS and the connection/accept-rate limits proposed in the earlier design are not implemented.

### [Security advisory: `ConfigService.Set` filesystem writes](security-hardening/security-vulnerability-configservice-set-fs-write.md)

`Set` re-executes the daemon with an attacker-chosen config and, absent path validation, becomes a root file-write primitive (`file:` destinations, `capture_path`, `baseline_file`, `ipmeta_cache_path`, unix listeners). The advisory maps every primitive, documents the container deployment and its permission model (runtime settings → Linux primitives, what `NET_ADMIN`+`SYS_ADMIN` really grant, what is restricted/filtered), checks the classic container-escape path idioms target-by-target, and lays out the layered fix: build-time elimination, protovalidate path rules, a runtime path policy with frozen fields, a universal validating interceptor, Landlock self-confinement, a chrooted state-writer process split, and privilege brokers that take the capabilities and `docker.sock` out of the collector. The [hardening plan](security-hardening/plan-configservice-set-hardening.md) tracks the workstreams; the [implementation plan](security-hardening/implementation-plan.md) sequences the phases and PRs; the phase drill-downs go deep: [phase 1](security-hardening/phase-1-code-hardening.md) (build tags, proto validators, path policy, interceptor, audit, CI gates, a startup confinement check), [phase 2](security-hardening/phase-2-kernel-confinement.md) (Landlock self-confinement, full test matrices), [phase 3](security-hardening/phase-3-writer-split.md) (the writer-process split with its path-free proto protocol and the complete write inventory), [phase 4](security-hardening/phase-4-egress-fleet-lockdown.md) (egress pinning, escape-hatch removal, v1.x retirement, standing CI gates), and [phase 5](security-hardening/phase-5-privilege-brokers.md) (netlink and Docker brokers with typed, validated APIs; per-process seccomp and AppArmor profiles).

### [Observability](observability.md)
Prometheus metrics, Go `pprof` endpoints, optional Pyroscope continuous profiling, and the startup capability check that explains exactly which Linux capabilities are required.

Expand Down
297 changes: 297 additions & 0 deletions docs/security-hardening/focused-container-hardening.md

Large diffs are not rendered by default.

460 changes: 460 additions & 0 deletions docs/security-hardening/focused-implementation-plan.md

Large diffs are not rendered by default.

186 changes: 186 additions & 0 deletions docs/security-hardening/implementation-plan.md

Large diffs are not rendered by default.

404 changes: 404 additions & 0 deletions docs/security-hardening/phase-1-code-hardening.md

Large diffs are not rendered by default.

267 changes: 267 additions & 0 deletions docs/security-hardening/phase-2-kernel-confinement.md

Large diffs are not rendered by default.

390 changes: 390 additions & 0 deletions docs/security-hardening/phase-3-writer-split.md

Large diffs are not rendered by default.

183 changes: 183 additions & 0 deletions docs/security-hardening/phase-4-egress-fleet-lockdown.md

Large diffs are not rendered by default.

598 changes: 598 additions & 0 deletions docs/security-hardening/phase-5-privilege-brokers.md

Large diffs are not rendered by default.

378 changes: 378 additions & 0 deletions docs/security-hardening/plan-configservice-set-hardening.md

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Loading