cierre §3: lección casper aterrizada — clases de servicio declaradas + mapa clase→permiso musl (plan-freebsd T2.1-T2.2 HECHAS)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-16 22:16:02 -04:00
co-authored by Claude Fable 5
parent 6e1ebfd001
commit 6ef9f2b4a8
+19
View File
@@ -65,6 +65,25 @@ convierte en política atestada sin inventar formato. Filosofía de referencia:
wawa "capacidad = frontera física, no tabla de permisos" (WAWA.md §4.2). Lado runtime:
`pacha-core` / `sandokan-lifecycle`.
**La lección casper (plan-freebsd T2.1T2.2).** Capsicum, más puro que Landlock, terminó
necesitando demonios auxiliares (`casper`) porque hay una clase — *servicios del mundo*
que no son paths y no caben en ninguna jaula por-fichero. La clausura de build **no
contiene esa clase** (builds offline por `--unshare-all`): derivarla a ciegas produce
binarios que revientan en el primer `getaddrinfo`. Política runtime = clausura de build
**+ clases de servicio declaradas por nombre** (D3 aplica en runtime: no se ensancha en
silencio). El mapa clase→permiso en musl cabe aquí porque musl no tiene nsswitch ni
dlopen de módulos NSS — la mitad de por qué casper existe no aplica:
| clase | permiso concreto (musl) |
|---|---|
| `dns` | leer `/etc/resolv.conf` + `/etc/hosts`, socket UDP/TCP :53 |
| `tls-certs` | leer `/etc/ssl/certs/` |
| `random` | `getrandom(2)` — ni path necesita |
| `locale` / `tz` | leer `/etc/TZ`, `/usr/share/zoneinfo/` (locale va embebido en musl) |
| `syslog` | socket unix `/dev/log` |
La clase viaja como campo de la `ConcesionCapacidad` — sin formato nuevo.
### 4. CVE por grafo
`hammer affected CVE-X` exacto (grafo fuente→artefacto→instalado) + frontera mínima de