common: P1 mcp-nas déployé (denylist ancrée + nas.internal) dans runbook v2
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
4e30ea1947
commit
9ccd8cfca1
|
|
@ -5,7 +5,8 @@
|
||||||
> ⚠️ **OBSOLÈTE EN PARTIE depuis le patch P0 du 2026-07-04** — voir [mcp-nas-run-command-v2.md](mcp-nas-run-command-v2.md).
|
> ⚠️ **OBSOLÈTE EN PARTIE depuis le patch P0 du 2026-07-04** — voir [mcp-nas-run-command-v2.md](mcp-nas-run-command-v2.md).
|
||||||
> Les RÈGLES 1, 2 et 3 ci-dessous (poisoning, heredoc interdit, limite 350 chars/base64) **ne s'appliquent plus** :
|
> Les RÈGLES 1, 2 et 3 ci-dessous (poisoning, heredoc interdit, limite 350 chars/base64) **ne s'appliquent plus** :
|
||||||
> heredocs, quotes et commandes longues fonctionnent nativement, et `reset_session` récupère une session bloquée.
|
> heredocs, quotes et commandes longues fonctionnent nativement, et `reset_session` récupère une session bloquée.
|
||||||
> La section « RÈGLE 4 — Services internes (172.17.0.1) » reste valide.
|
> La section « RÈGLE 4 — Services internes (172.17.0.1) » reste valide ;
|
||||||
|
> depuis le P1, `nas.internal` est un alias stable de 172.17.0.1 dans le container.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -66,6 +66,19 @@ via `send-keys -l` (mode littéral). Conséquences :
|
||||||
curl -s http://127.0.0.1:3042/health
|
curl -s http://127.0.0.1:3042/health
|
||||||
```
|
```
|
||||||
|
|
||||||
## À venir
|
## P1 — denylist ancrée + nas.internal (2026-07-04, commit `7fb13c5`, déployé et testé)
|
||||||
|
|
||||||
- **P1** : denylist ancrée (regex ancrées sur le début de commande) + résolution `nas.internal`.
|
- **Denylist ancrée** : les patterns ne sont plus cherchés n'importe où dans la chaîne brute.
|
||||||
|
La commande est découpée en segments (`;` `&` `|` retours ligne), les préfixes neutres
|
||||||
|
(`sudo`, `env`, `VAR=…`, chemin `/sbin/…`) sont retirés, et les patterns sont ancrés sur le
|
||||||
|
**début de chaque commande**. Les **corps de heredoc sont exclus** de l'analyse.
|
||||||
|
- Fini les faux positifs : `grep reboot /var/log`, `echo "ne pas faire reboot"`, un heredoc
|
||||||
|
de doc contenant « mkfs » → **acceptés**.
|
||||||
|
- Toujours refusés : `reboot`, `/sbin/reboot`, `echo ok && reboot`, `VAR=1 sudo shutdown`,
|
||||||
|
`rm -rf /volume*|/opt|/mnt|/`, `mkfs.*`, `dd of=/dev/*`, fork bomb, `> /dev/sd*`,
|
||||||
|
`docker rm -f`, `fdisk`, `parted`, `syno*`, `chmod -R 777 /`. (30/30 tests unitaires.)
|
||||||
|
- Changement assumé : `rm -rf /tmp/x` est désormais **autorisé** (avant, tout chemin absolu
|
||||||
|
était bloqué) ; les racines critiques restent protégées.
|
||||||
|
- **`nas.internal`** : `extra_hosts: nas.internal:host-gateway` dans le compose → depuis toute
|
||||||
|
session, `nas.internal` = l'hôte NAS (172.17.0.1). Utiliser `http://nas.internal:3232` (Gitea),
|
||||||
|
`:9000` (Portainer), `:8787` (NyoraNotes)… au lieu de mémoriser 172.17.0.1.
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue