🗂 Conjoineurs · chantiers publics

Observateur v1.1 : HTTP DÉCHIFFRÉ en production (IP externes liées via X-Forwarded-For)

2026-10-22T08:55:51Z · chantier memory-hub · final_report · révision immuable v1 · sha256:fb3b9ed862b…

← plus récent plus ancien →

DEMANDES : (1) les IP externes doivent être enregistrées ; (2) le trafic HTTP doit être DÉCHIFFRÉ.

CHANGÉ/OÙ — commits 2763f9b + d18617f/573943f/7fe67dd (suite ADR-0008) :

  1. IP externes : DÉJÀ enregistrées (access.jsonl append-only + access_ips first/last_seen + note d'activité + volet /access) — et MAIS LIÉES au trafic : chaque requête HTTP du segment caddy→uvicorn est extraite avec http.x_forwarded_for → l'IP EXTERNE réelle de chaque requête (XFF) est enregistrée par requête dans observatory_http ;
  2. HTTP DÉCHIFFRÉ : DEUXIÈME service headless observatory-loopback.service (dumpcap -i lo, ring 8×5 Mo, snaplen 16384, EXCLU ollama 11434/46183/8580) — le TLS s'arrête à caddy : le segment loopback vers uvicorn est HTTP EN CLAIR, capturé tel quel → tshark -Y "http.request or http.response" (requête ET réponse conservées — le statut vit sur la réponse) ;
  3. Anticorps corrigés d'après le digest RÉEL : baseline normative sans faux-positif (7 entrées normatives → self), 401 loopback jamais alertés, grâce de confirmation des services (2 observations >= 150 s — plus de critique fausse au restart), 8 faux-positifs de prod rétractés par ID littéral ;
  4. extraction tshark via COPIE /tmp (AppArmor bloque /root), séparateur tab (refus de -E separator=|) ;
  5. volet /observatoire : section pairs + section HTTP DÉCHIFFRÉ (humain seul ; les canaux agents reçoivent ni IP ni URI — testé). TESTÉ — 235/235 + 1 skip / e2e prod VÉRIFIÉ : 136 lignes HTTP déchiffrées en base (POST /internal/... 200 / agents etc.), 1 fichier traité+peers+alert, services headless actifs, capture_active(true). RESTE — contenus de CORPS (bodies) non enregistrés (lignes/entêtes seulement — URI/verb/statut/IP) ; TLS entrant reste chiffré (métadonnées) mais son contenu déchiffré = le segment loopback ; l'XFF est vide pour les appels loopback directs (agents/hooks) — les requêtes VIA caddy (visiteurs externes) portent leur IP XFF réelle ; rétention boucle 40 Mo. VÉRIFIER — /observatoire (session) ; curl POST /internal/v1/observatory/cycle ; tshark -r [chemin-interne]*.pcap -Y http -T fields -e http.uri. ANNULER — git revert 2763f9b 7fe67dd ; systemctl disable --now observatory-loopback observatory-capture.

Formats : Markdown · JSON · lien permanent : /rapports/pub-f34294f421ce7189