diff --git a/common/mcp-nas-security-audit.md b/common/mcp-nas-security-audit.md index eb666d6..a478abb 100644 --- a/common/mcp-nas-security-audit.md +++ b/common/mcp-nas-security-audit.md @@ -99,4 +99,9 @@ Le préfixe réutilisé couvrait **~11 familles** (pas 5) + fuite dans **context - **Bifrost VKs** (Nabil-Key + Yesmine-Key) : rotation dans `config.db` (`UPDATE governance_virtual_keys SET value=…` + `allow_all_keys=1`) + **restart bifrost**. **Piège port** : l'API bifrost est en **3085** (8080 interne), **3086 = proxy openresty** (renvoie 401 trompeur) → tester sur 3085. **Piège scan** : la VK vit aussi dans `redaction-pro/nginx.conf` (`.conf` raté par un scan `.env/.json/.yml`) et dans **9 workflows n8n en base** (`UPDATE workflow_entity SET nodes=replace(nodes::text,old,new)::jsonb` sur postgres n8n-DB `n8nuser`/`n8n`, puis restart n8n pour recharger le cache). Vérif : nouvelle VK → 200, ancienne → 401 `virtual_key_not_found`. Yesmine-Key = aucun consommateur infra (clé perso). - **Scrub** : 673 secrets masqués dans 105 fichiers de log (sessions/cron/claude_contexte/data-logs/anciens .env) via `sudo python3`. +- **SMTP** : migration OVH `postmaster@bolbol.tn` → **Infomaniak `nabil.derouiche@ik.me`** (mail.infomaniak.com, 465 SSL / 587 STARTTLS) pour baserow + portainer/311. ⚠️ Infomaniak SMTP externe **exige un mot de passe d'application** (le mdp compte/webmail est rejeté `535`). Baserow : `EMAIL_SMTP_USE_SSL` et `USE_TLS` **mutuellement exclusifs** (Django ImproperlyConfigured → crashloop) → n'en garder qu'un. + +### 🚨 INCIDENT — leçon critique : jamais de remplacement texte sur des `.db`/binaires +Un `open(f).read().replace(old,new)` en masse sur `hermes-platform` a corrompu les **3 `state.db` SQLite** des agents (décalage d'octets) → **perte de l'historique conversation** (tables sessions/messages), aucun backup. Savoir des agents intact (fichiers). Récup : stop agent → `mv state.db*` → start (recrée vierge) → **supprimer le lock `gateway-locks/telegram-bot-token-*.lock`** sinon le bot Telegram ne poll plus. **RÈGLE : tout script de scrub/remplacement DOIT exclure `*.db*`/binaires et se scoper aux extensions texte.** + **Nouvelles valeurs** : PAS dans ce runbook — remises à Nabil (Bitwarden). **Reste** : SMTP OVH (externe), SSH_PASS_NYORA, re-scoper token `nyora-notes-claude-code`, nettoyer docs/skills restants, run non-root.