chore(0004): close issue, bump unibus to 0.5.0, record dataplane-acl decision
Issue 0004 (security hardening) done across 0004a-0004f. app.md version 0.5.0 with the capability growth log entry; dev/0004d-dataplane-acl.md documents the chosen minimum-defense strategy for the NATS data plane and its residual limit (per-subject ACL deferred to 0003). Full work report in projects/message_bus/reports/0005-2026-06-07-unibus-security-hardening.md. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
name: unibus
|
||||
lang: go
|
||||
domain: infra
|
||||
version: 0.4.0
|
||||
version: 0.5.0
|
||||
description: "Bus de mensajería unificado sobre NATS+JetStream con cifrado E2E por room (megolm/olm reducido): service de membresía/claves, librería cliente y peers demo."
|
||||
tags: [service, messaging, nats, e2e]
|
||||
uses_functions:
|
||||
@@ -154,6 +154,19 @@ agent.<nombre>.{in,out} inbox/outbox de agente LLM (agent.scout.in)
|
||||
|
||||
## Capability growth log
|
||||
|
||||
- v0.5.0 (2026-06-07) — hardening de seguridad (issue 0004) que cierra los
|
||||
hallazgos de la auditoría red-team (report 0004) y lleva el veredicto de
|
||||
exposición pública de "NO" a "sí-con-condiciones". Anti-DoS pre-auth
|
||||
(`http.MaxBytesReader` por ruta + rechazo por `Content-Length` + rate-limit
|
||||
por IP + `MaxHeaderBytes`); guard de fail-open que prohíbe arrancar con bind
|
||||
público o TLS sin `--bus-auth enforce`; autorización por pertenencia en los GET
|
||||
de room (metadata y clave sellada solo para miembros / el propio endpoint);
|
||||
rooms cleartext deshabilitadas en bind público (contenido siempre E2E, mínimo
|
||||
defensivo del data plane mientras la ACL por subject llega con 0003); TLS en el
|
||||
control plane HTTP con la CA propia y cliente que exige `https` cuando hay CA;
|
||||
y los medios H6/H7/H12 (owner ligado al firmante, `IsAuthorized` antes del
|
||||
nonce-cache con poda O(expired) + cap, errores genéricos al cliente). Cada
|
||||
hallazgo lleva su test adversarial `TestAudit_*` portado como regresión.
|
||||
- v0.4.0 (2026-06-07) — descubrimiento de rooms: `GET /members/{endpoint}/rooms`
|
||||
lista las rooms de un endpoint con su metadata y rol, y `client.ListMyRooms()`
|
||||
lo consume. El control plane es pull (no hay push de invitaciones), así que un
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
---
|
||||
issue: 0004
|
||||
title: Hardening de seguridad — autorización, anti-DoS y confidencialidad antes de exponer público
|
||||
status: spec
|
||||
status: done
|
||||
created: 2026-06-07
|
||||
completed: 2026-06-07
|
||||
report: projects/message_bus/reports/0005-2026-06-07-unibus-security-hardening.md
|
||||
domain: security
|
||||
scope: unibus (pkg/membership/server.go, auth.go, pkg/embeddednats, pkg/client, cmd/membershipd, deploy/tls)
|
||||
depends_on: 0001 (cierra los gaps que la auditoría 0004 encontró sobre lo entregado en 0001)
|
||||
|
||||
Reference in New Issue
Block a user