Lorsque trois équipes produit partagent une passerelle OpenClaw sur unMac-mini, le premier incident n’est jamais la « qualité du modèle » : c’est un agent qui a découvertcurlpeut publier des secrets, ourmvit dans le même répertoire quegit. En 2026, les équipes matures s'associentallowed-tools(noms d'outils explicites que le runtime peut appeler) aveclistes autorisées de préfixes de commande(uniquement les commandes shell dont les chemins argv[0] commencent par des préfixes approuvés). Cet article est un guide de terrain destiné aux ingénieurs de plate-forme qui doivent fournir ces contrôles sans bloquer les flux de travail existants. Vérifiez les changements de politique avecdiagnostic du médecin de passerelleet gardez les dépenses prévisibles en utilisant les boutonsbudgets de jetons et limitation des outils—les listes d'autorisation arrêtent les accidents ; les régulateurs arrêtent les coûts incontrôlables.
Vous obtiendrez une matrice de comparaison, des exemples concrets de préfixes, des numéros de déploiement qui ont survécu à l'examen de sécurité, des armes à pied spécifiques à macOS et une FAQ destinée aux opérateurs et non aux chercheurs.
Modèle de menace sur une passerelle partagée
Supposons que le résultat du modèle soit compromis : le travail de l'assistant consiste à maximiser l'utilité, et non à respecter votre schéma de réseau interne. Tout outil capable d'ouvrir TLS sortant, de muter des fichiers arbitraires ou de générer des shells imbriqués devient une primitive de mouvement latéral. Sur les hôtes Apple Silicon, supposez égalementInvites TCCapparaîtra la première fois qu'un outil touche l'appareil photo, le microphone ou l'accès complet au disque : les utilisateurs cliquent sur "Autoriser" plus rapidement qu'ils ne lisent les identifiants du bundle.
Quantifiez le rayon d'explosion avant de choisir les outils : classez chaque intégration sur une échelle de 1 à 5, où 5 signifie "peut exfiltrer les informations personnelles du client sans invite supplémentaire". Tout ce qui obtient un score de 4+ doit faire l'objet d'une deuxième étape d'approbation humaine, et non d'une liste blanche générique.
Documentez quels canaux correspondent à quelles zones de confiance : les fils de discussion Slack des clients ne doivent jamais partager le même profil d'outil que le débogage du personnel interne.
Red-team chaque trimestre avec un pack de scripts qui relit les transcriptions historiques contenant des extraits de shell limites ; si plus de2%des transcriptions échouent soudainement après un changement de politique, vous avez resserré de manière trop agressive d’un seul coup.
Conservez un récepteur de journaux immuable hors hôte afin qu'une passerelle compromise ne puisse pas tronquer les preuves : S3 ou GCS avec verrouillage d'objet est typique.
Liste d'autorisation, liste de refus et hybride
| Pattern | Charge de travail de l'opérateur | Posture de sécurité | Meilleur ajustement |
|---|---|---|---|
Explicit allowed-tools | High | Refus fort par défaut | Passerelles Mac mini partagées |
| Liste de refus des expressions régulières | Low | Faible : manque de nouveaux verbes | Ordinateurs portables de développement personnel uniquement |
| Hybride (autoriser les outils + préfixe shell) | Medium | Fort avec les audits | La plupart des flottes de production en 2026 |
Les hybrides gagnent parce que certains fournisseurs proposent cinquante micro-outils ; lister chaque nom devient un spaghetti de configuration. Au lieu de cela, autorisez le nom de l'outil d'orchestration mais limitez l'exécution du shell avec des préfixes de portée de répertoire afin/opt/homebrew/binne peut pas silencieusement aliascurlsauf si vous autorisez explicitement ce chemin binaire.
Création d'outils et de préfixes autorisés
Commencez à partir d'un manifeste gelé archivé dans Git, jamais à partir d'une découverte en direct en production, sinon vous bénirez accidentellement tout ce qu'un agent a essayé mardi dernier. Une esquisse YAML minimale (les noms de champs varient selon la distribution) ressemble à :
gateway:
allowed_tools:
- read_file
- list_directory
- http_get
shell:
command_prefix_allowlist:
- /usr/bin/git
- /usr/bin/xcodebuild
- /opt/homebrew/bin/node
- /Users/build/ci-scripts/
Normaliser les chemins avecrealpathpendant CI afin que les liens symboliques ne puissent pas contourner les règles : si/usr/local/bin/gitdécide de/Library/Developer/CommandLineTools/usr/bin/git, votre liste verte doit inclure la cible résolue, pas seulement le lien symbolique convivial.
Croissance de la liste de plafonds : plus de25des préfixes de shell distincts signalent généralement une prolifération : refactorisez des scripts wrapper dans un répertoire audité au lieu de mettre sur liste blanche chaque clic d'Accueilbrew.
Versionnez le manifeste avec les balises semver ; attachez la balise à chaque ligne de journal de passerelle afin que les intervenants en cas d'incident sachent quelle stratégie a interprété une commande refusée.
Lorsque l'automatisation du navigateur est requise, isolez-le dans un profil d'outil dédié sans aucun outil d'écriture du système de fichiers activé sur la même conversation.
Cadence de déploiement et bris de glace
Expédier en trois vagues : la première semaine active le mode de journalisation uniquement qui aurait bloqué les commandes ; la deuxième semaine s'applique à la mise en scène ; la troisième semaine s'applique en production pendant les heures de bureau avec un alias de téléavertisseur. Attendre5 à 15 %des transcriptions historiques échouent lors de la première passe d’application – la plupart des échecs sont des différences de chemin bénignes, et non des attaques.
Maintenir un15-minuteprocédure de bris de glace : approbation par deux personnes, élargissement temporaire enregistré dans le ticket, minuterie de retour automatique. C'est en cas de bris de verre sans minuterie que le « temporaire » devient permanent.
Communiquer des budgets chiffrés : pas plus dethreeajouts de préfixes par sprint, sauf s'ils sont liés à un CVE ou à un contrat client.
Entraînez le support pour capturer l'extrait stderr exact : les messages ambigus de « commande bloquée » perdent des heures à diviser en deux si le shell ou la couche d'orchestration a été déclenché.
Après chaque serrage de production, exécutezdoctorlatence médiane des sondes et des instantanés ; régressions ci-dessus120 mscela signifie souvent que les chemins de validation DNS ou de signature de code ont été modifiés lorsque les fichiers binaires ont été déplacés.
macOS PATH, SIP et hôtes multi-utilisateurs
Les LaunchAgents héritent d'un PATH différent de celui des shells SSH interactifs. Les agents qui « travaillaient dans tmux » peuvent échouer sous les listes autorisées car argv[0] se résout différemment lorsque le parent estlaunchd. Corrigez le problème en définissant un PATH explicite dans le plist et en faisant référence aux binaires absolus dans les politiques.
La protection de l'intégrité du système signifie que certains fichiers binaires ne peuvent pas être remplacés même si un agent essaie (c'est bien) mais cela n'empêche pas les utilisateurs d'installer des copies alternatives sous~/bin. Refusez les répertoires accessibles en écriture par l'utilisateur dans les listes de préfixes, sauf si ces répertoires appartiennent à root et au chmod 755.
Sur les minis partagés, séparez les espaces de travail par client avec des comptes Unix distincts ou au minimum des montages de volumes séparés ; les listes autorisées ne remplacent pas les autorisations du système de fichiers.
Des tempêtes de fourches se produisent encore lorsque les agents parallélisent les outils shell ; combiner les listes autorisées avec les plafonds de concurrence décrits dansconseils de limitation.
Quand vous manquez de matériel de rechange, louez un cloudMac-minipour refléter la production : les hôtes MacHTML Apple Silicon sont généralement disponibles à proximité16,9 $/jouravec SSH pour les modifications de plist et VNC pour reproduire les flux de consentement de l'interface graphique, ce qui est moins coûteux que de suspendre une publication de revenus.
Une télémétrie qui prouve la conformité
Compteurs d'exportation : tentatives d'outil refusées par heure, préfixes de shell refusés par heure, version de liste autorisée et création de passerelle. Les évaluateurs de sécurité demandent les raisons de refus regroupées par ID de règle, et non par chaînes argv brutes (qui peuvent contenir des secrets).
Alerter lorsque les refus augmentent3×au-dessus de la référence de sept jours : il s'agit souvent d'un déploiement de fichiers binaires déplacés sans mise à jour des préfixes.
Conserver les événements d’audit structuré pendant au moins90 jours; les fenêtres plus courtes évitent les abus de combustion lente.
Le taux de réussite des tâches légitimes et les refus sont pris en compte dans le tableau de bord, de sorte que le produit n'optimise pas les mesures de sécurité tout en interrompant silencieusement le débit.
Trimestriel, échantillon50événements refusés manuellement ; la classification automatisée étiquette toujours mal les scripts wrapper dans les dépôts multilingues.
Enfin, associez les annotations Grafana aux fusions Git en touchant le manifeste afin que les ingénieurs de garde puissent passer directement d'un graphique de pointes au commit qui a déplacé un chemin binaire.
Stockez le hachage du manifeste dans le répertoire de la passerelle/healthzcharge utile afin que les équilibreurs de charge et les sondes synthétiques détectent réellement les configurations obsolètes bien avant le trafic utilisateur.
FAQ
Les listes autorisées remplacent-elles les contrôles de sortie du réseau ?
Non, combinez les deux. Un autoriséhttp_getL'outil peut toujours atteindre les points de terminaison de métadonnées internes si votre VPC ne dispose pas de règles de sortie.
À quelle fréquence les préfixes doivent-ils changer ?
Au maximum une fois par sprint pour les passerelles de production, sauf si vous corrigez un incident.
Puis-je partager une politique entre les développeurs et la production ?
Uniquement si le développement ne peut pas accéder aux données de production ; sinon, conservez des manifestes séparés pour éviter la dérive « fonctionne sur mon ordinateur portable ».
Apple Silicon Mac minile matériel reste l'endroit le plus fiable pour valider le renforcement d'OpenClaw : les véritables invites TCC, la planification LaunchAgent et les chemins de la chaîne d'outils Xcode correspondent à ce que les auditeurs de sécurité attendent.MacHTMLfournit la location de Mac mini dans le cloud avec SSH/VNC afin que vous puissiez répéter les déploiements de listes d'autorisation, les contrôles médicaux et les limitations sur des hôtes isolés : lancez-vous pour le sprint de durcissement, testez les contrôles, puis mettez hors service lorsqu'il est vert.
Renforcez OpenClaw sur un Mac mini cloud dédié
Louez la capacité Apple Silicon pour tester les listes d’autorisation, les diagnostics médicaux et les limitations de jetons par rapport au comportement réel de macOS avant de toucher aux passerelles de production.