IA / automatisation 26 avril 2026

OpenClaw : listes d’autorisation des serveurs MCP vs. politique tools.exec – matrice 2026 sur Mac mini en location

Équipe ingénierie VmMac 26 avril 2026 ~23 min de lecture

Les architectes sécurité qui déploient OpenClaw sur un Mac mini Apple Silicon en location chez VmMac ont déjà durci tools.exec – puis constatent que le modèle peut malgré tout joindre des serveurs MCP capables de lire des bases clients ou d’enclencher des webhooks sortants. Cette matrice 2026 traite MCP comme deuxième surface d’exécution : autre transport, surface d’explosion comparable. Vous comparerez les confiances, des modèles de listes couplées, huit marches de gouvernance et un tableau d’observabilité en deux colonnes pour les flottes Hong Kong, Japon, Corée, Singapour et États-Unis. Croisez avec approbations et listes d’exécution, skills tiers, épinglage et déploiement par phases (2026) et le guide d’installation et de déploiement, afin qu’aucun fichier de politique ne constitue la seule ligne de défense. Les équipes qui alignent les deux plans réduisent les post-mortems où l’on apprend que seule la coque shell, pas le catalogue, a bougé – documentez un journal unique plutôt que deux silos.

L’aide couvre les accès SSH et les modèles de session ; consultez les tarifs dès qu’un passage MCP à haut risque mérite un hôte dédié, et VNC quand seul un œil humain débloque le débogage, plutôt que de fixer toute la nuit un gateway headless coincé derrière un dialogue TCC personne n’a vu s’ouvrir.

Pourquoi MCP est une seconde surface d’exécution quand le shell est déjà verrouillé

MCP relie les modèles par protocole structuré – souvent stdio, parfois HTTP ou WebSocket – en contournant les hypothèses argv autour desquelles vos listes d’exécution ont été bâties. Un serveur MCP compromis peut exfiltrer par morceaux au nom de « résultat d’outil » pendant que tools.exec.security=deny reste vert au tableau de bord. Traitez les catalogues comme de petits fichiers sudoers : courts, relus, versionnés, volontairement ennuyeux, pas comme du simple câble MCP. Les transports distants sur DNS paresseux mènent à des MITM qui ressemblent plus à des pics de latence qu’à des intrusions classiques, ce que les runbooks de SOC oublient parfois.

  • Rétrogradation de transport : remplacer le TLS par du clair sur un segment LAN cru sûr à tort (VLANs mal jumelés, colocation, Wi-Fi invité proche d’un câble série).
  • Ombre d’outils : deux serveurs enregistrent le même nom de capacité avec des implémentations différentes – le sait-on avant qu’une écriture ne parte vers la mauvaise base de mandant ?
  • Masquage par latence : des appels MCP lents saturent les pools de workers sans toucher l’alerte CPU, idéal pour cacher un abus quand l’on mesure SLO en millisecondes, pas en « tickets ouverts ».
Hors sujet ici : ce texte n’invente pas de clé JSON spécifique à un fournisseur ; il consigne des motifs que l’équipe conformité mappe sur votre branche OpenClaw une fois les noms canon fixés, pour éviter que la revue ne se répète en deux canaux incompatibles.

Matrice : transport, identité, fin des règles exec classiques

Surface Risque principal Contrôle naturel Lacune fréquente
tools.exec Exfiltration via shell hôte Listes d’arguments, modes ask enveloppes sh -c trop larges
Serveur MCP stdio Imitation de processus local ancrage binaire, somme de contrôle PATH mutable dans la plist launchd
MCP HTTP distant SSRF, vol de jeton mTLS, liste DNS DNS de staging partagé avec plists de prod

Modèles de listes couplées qui passent le code review

Versionnez exec-allowlist.v1.yaml et mcp-catalog.v1.json, chacun avec un propriétaire nommé. Chaque entrée MCP déclare SHA256 binaire (ou digest conteneur), req/s max et classe de données (PUBLIC, INTERNAL, CUSTOMER). Rejetez toute entrée dépassant ce que l’hôte de la région VmMac a le droit de traiter. Faites monter le semver ensemble quand l’une des listes change, pour que la CI bloque toute promotion partielle, même si cela pèse en sprint – moins lourd qu’un week-end d’enquête « la classe n’accompagne plus le binaire ». Pour le MCP HTTP, épinglez les certificats par empreinte SPKI, cycle 45 jours, recouvrement, essai de retour, pas de « déploiement d’urgence parce qu’un tweet a hâte ». Toute exigence « un URL MCP de plus » suit le rythme d’un changement de pare-feu : note de risque, test de repli, astreinte capable d’enlever l’entrée de catalogue en dix minutes sans tuer toute la passerelle.

Enregistrez hachage de prompt et version de manifeste ; sous launchd non interactif, vérifiez que TCC n’ouvre pas un dialogue fantôme que personne ne peut cliquer – la file s’arrête, les SLO chutent, la sécurité croit que la coque shell est la cause, alors que c’est juste un dialogue macOS, invisible sur hôte partagé.

Dans un monorepo, préfixez les noms d’outils par dépôt pour empêcher deux services de servir le même appel d’outils avec des portées différentes – silence assuré tant qu’on n’audite que la table exec.

Multilocataire sur un Mac mini partagé : labels, ports, racines d’état

Deux squads partagent parfois une seule location pour l’économie – le noyau, lui, n’est pas cloné. Séparez les étiquettes LaunchAgent, les ports TCP et les répertoires d’état autant qu’on sépare des passerelles prod et staging. Jamais le même chemin de socket MCP par défaut : vous mélangeriez des réponses d’outils entre mandats, inaudits sans corrélation parfaite, ce que l’on sacrifie souvent dès la ligne « monitoring » tronquée par le budget partagé.

Plafond chiffré : au plus 12 serveurs MCP par passerelle ; au-delà, autre hôte ou découpage par risque, plutôt qu’une plist interminable qu’on ne peut plus capturer d’un seul écran d’on-call.

Huit marches de gouvernance pour 2026

  1. Inventorier chaque transport ; supprimez les brouillons de labo non reliés à un flux revenu, faute de quoi Slack, pas Git, tient l’histoire vraie.
  2. Exporter chaque semaine le manifeste réel, diff par rapport au dépôt – la dérive s’y voit, pas seulement au post-mortem.
  3. Valider d’abord un nouveau binaire sur une classe d’hôtes « exec refus stricte », miroir d’inconnues du prod moins l’enjeu public, avant d’y accrocher les mêmes listes qu’en prod.
  4. Journaliser chaque connect/disconnect avec un ID de corrélation vers chaque appel d’outil, plutôt qu’un compteur d’octets muet.
  5. Sondes de lecture toutes les heures, parce qu’une exfiltration lente bat souvent un timeout bavard pour attirer l’œil, mais pas moins sûre.
  6. Canary de 72 heures sur une seule région avant promotion large – un week-end férié ailleurs ne doit pas se confondre avec « Singapour lent aujourd’hui ».
  7. Documenter le retrait d’une seule entrée de catalogue sans recharger toute la passerelle, si c’est supporté, pour ne pas pénaliser toute l’infrastructure le jour où un binaire, pas l’orchestrateur, est fautif.
  8. Simulation trimestrielle de compromis de certificat sous charge : tracez SLO, pas seulement PowerPoint – la rotation redeviendra une compétence, pas une surprise lundi 9 h.

Signaux d’observabilité qui doivent vraiment déclencher une alerte

Signal Réaction
Échecs de vérif. TLS MCP > 0 en une heure Geler les promotions, chercher MITM ou dérive d’horloge jusqu’à seconde preuve – pas conclure « Singapour est juste plus lent » par défaut.
Nouveau nom DNS, absent du catalogue Couper l’exfil possible en egress, ouvrir un incident, surtout sur métal partagé où d’autres secrets CI dorment sur disque, oubliés d’un autre morceau YAML.
p95 MCP > 2,5× la référence Limiter le trafic des modèles, inspecter la saturation amont, éviter d’ajouter seulement des workers qui réinjectent le même trafic – faux sentiment de victoire classique sur la latence.

Les skills embarquent des consignes qui invitent à ouvrir encore des connexions MCP : l’épinglage et le déploiement par phase des skills tiers doivent monter d’un cran avec les listes MCP, le même tag de release, pas un vendredi d’écart. Les règles d’approbation et d’exec doivent interdire explicitement de lancer un superviseur qui démarre une autre pile MCP, sauf brique de verre tracée. Alignées, elles laissent votre flotte Hong Kong, Japon, Corée, Singapour, États-Unis se comporter comme une seule classe d’appliance, pas cinq expériences partageant seulement un nom d’hôte, ce qu’un auditeur remarquera vite si l’adresse IP ne colle pas à la capture d’écran, ce qui, soyons clairs, arrive plus souvent qu’on ne l’admet en conférence de conformité, ironiquement.

FAQ : MCP par rapport à tools.exec sur Mac mini

Les opérateurs mémorisent les drapeaux shell mieux qu’un catalogue RPC : tenez un aide-mémoire d’une page, deux colonnes côte à côte, plus l’étiquette Git réellement roulée cette semaine, pas celle qu’on « croyait » épinglée – cela supprime le dimanche où tout marche en local, car quelqu’un a cinq jours de retard, et cinq personnes croient cinq vérités Git différentes.

Un seul JSON peut-il gouverner les deux ? Techniquement oui, en pratique les relectrices perdent le fil : deux fichiers, versions liées, même numéro visible en tête, pas un diff de mille lignes dû à de la mauvaise recherche sémantique.

Chaque serveur MCP exige-t-il VNC ? Rarement, le debug parfois, surtout sur hôte de bris de glace, pas en launchd de prod, sinon le journal mélange menace d’intrusion et dialogue TCC, ce qui, à 3 h, ressemble fâcheusement à un test d’intrusion, alors qu’on a juste cliqué sans le savoir, ou plutôt personne n’a cliqué.

Endpoints Ollama locaux ? Comme toute couche MCP/HTTP : vérifier le bind en bouclage, refuser 0.0.0.0 avant qu’un modèle n’y verse tout, pendant qu’un second service pense qu’il est seul, ce qui, sur un mini à mémoire unifiée, mord vite la bande passante GPU, pas seulement le disque, ce qu’on oublie quand on « teste juste un prompt » le vendredi, promis, deux minutes, qui durent, comme toujours, huit dix, selon la loi d’Amdahl.

Pourquoi le Mac mini M4 et VmMac vont à des agents sur deux plans

Le Mac mini M4 offre assez de mémoire unifiée pour héberger des services MCP près d’une passerelle OpenClaw sans saturer, tout en permettant de louer une seconde machine quand l’expérimentation diverge. VmMac place des hôtes HK, JP, KR, SG, US en premier lieu orientés SSH, ce qui accole les charges MCP aux exigences de résidence sans re-provisionner toute l’histoire chaque fin d’exercice budgétaire. Remplacer un profil corrompu revient surtout à re-publier des politiques et des catalogues versionnés, en général plus vite que de négocier un nouveau clonage d’image VM. La location, dans ce scénario, pousse plutôt la gouvernance (catalogues, listes, tags Git) qu’elle ne s’en sert de prétexte pour la retarder, ce qu’on comprend dès le premier on-call nocturne où l’on compare captures d’outils, région affichée et règles théoriques, pour savoir de quelle surface d’exécution on parle vraiment.

Isoler les passerelles MCP à haut risque

Louez un Mac mini VmMac dédié avant qu’un flux MCP distant n’emprunte le même chemin que les données client réelles – une séparation d’hôte coûte moins en incident qu’en TCO, une fois les heures d’on-call comptabilisées.