Brief IA

Hazmat - Vos agents IA en cage sous macOS

💻 Code & Devvia Korben·Korben·

Hazmat - Vos agents IA en cage sous macOS

Hazmat - Vos agents IA en cage sous macOS
En bref
1Hazmat isole les agents IA dans un compte macOS séparé pour protéger les informations sensibles comme les clés SSH et les credentials AWS.
2Cette solution préventive vise à éviter des fuites de données critiques, un enjeu majeur pour les développeurs.
3Dans un environnement où les violations de sécurité sont en hausse, la protection des données est devenue une priorité pour les entreprises technologiques.
💡Pourquoi c'est importantLa sécurité des données est essentielle pour maintenir la confiance des utilisateurs et éviter des pertes financières dues à des violations.
📄
Article traduit en français

Hazmat - Vos agents IA en cage sous macOS

Les agents IA qui codent sur votre machine ont accès à vos clés SSH, vos credentials AWS, votre Keychain, et bien plus encore. Ils ont accès à TOUT ! C'est comme donner les clés de votre appartement à quelqu'un que vous venez de croiser.

Pour résoudre ce problème, au lieu de demander à l'agent de se comporter, il est préférable de l'enfermer dans un compte macOS séparé. Ainsi, vos fichiers tels que ~/.ssh, ~/.aws, et votre Keychain deviennent inaccessibles. Pour mettre cela en place, il suffit d'exécuter :

  • brew install dredozubov/tap/hazmat
  • hazmat init --bootstrap-agent [claude](/dossier/anthropic)

En quelques minutes, votre agent sera isolé. (Le premier snapshot peut prendre du temps, mais les suivants seront plus rapides grâce à la sauvegarde incrémentale.)

L'isolation repose sur trois couches indépendantes, semblables aux sas d'un sous-marin :

  • Un utilisateur agent dédié, rendant vos fichiers personnels inaccessibles.

  • Une politique seatbelt générée dynamiquement à chaque session, où le kernel de macOS vérifie chaque accès aux fichiers et refuse tout ce qui n'est pas explicitement autorisé.

  • Des règles pf firewall qui empêchent l'agent d'envoyer du trafic SMTP, IRC, FTP, Tor ou VPN. Ainsi, un agent tentant d'exfiltrer vos données par email sera bloqué au niveau du noyau.

Concernant la supply chain, Hazmat force npm ignore-scripts=true par défaut. Par exemple, le célèbre hack d'axios qui livrait un RAT via un hook postinstall en quelques secondes n'est plus possible ici. Il y a également une blocklist DNS qui redirige les services de tunnel connus (ngrok, pastebin, webhook.site) vers localhost. Bien qu'un domaine personnel fraîchement enregistré puisse passer, les vecteurs d'exfiltration classiques devraient être bloqués.

Hazmat utilise TLA+, le même formalisme que les ingénieurs d'Amazon pour vérifier les protocoles de DynamoDB. Cela inclut des vérifications comme l'installation des règles sudoers avant le firewall, ce qui crée une fenêtre de vulnérabilité, ou des restrictions qui bloquent les lectures mais pas les écritures. Ce sont des problèmes que les tests unitaires n'auraient pas détectés.

Hazmat supporte Claude Code (y compris le fameux --dangerously-skip-permissions), OpenCode et Codex. Attention, si votre projet utilise Docker, il y a deux scénarios :

  • Le daemon Docker est privé au projet et Hazmat le route automatiquement vers un mode Docker Sandbox.

  • Le daemon est partagé, auquel cas il faudra passer --docker=none explicitement.

La commande hazmat explain montre exactement ce que le sandbox autorise avant de lancer quoi que ce soit, ce qui est essentiel pour éviter des surprises. Le hazmat diff, qui affiche les changements effectués par l'agent depuis le dernier snapshot Kopia, est bien pensé. Si l'agent casse quelque chose, hazmat restore permet de revenir en arrière, comme un Ctrl+Z géant pour tout votre projet.

Si vous avez déjà configuré votre Mac avec teaBASE pour sécuriser votre environnement de développement, Hazmat est un complément logique.

Côté limites, il faut être honnête : Seatbelt n'est pas documenté par Apple depuis macOS 10.5 et constitue une approche de defense-in-depth, mais ce n'est pas une véritable frontière de VM. L'exfiltration HTTPS n'est pas bloquée, car l'agent peut toujours exécuter curl sur le port 443. C'est logique, mais ce n'est pas totalement étanche.

De plus, Hazmat est pour l'instant macOS only (le port Linux est en développement), et le /tmp partagé entre les comptes locaux reste un vecteur potentiel. J'aurais souhaité que le réseau soit coupé par défaut, sauf pour les adresses sur liste blanche, mais cela viendra peut-être plus tard. Entre cela et laisser Claude Code avoir tous les pouvoirs sur votre machine, le choix est vite fait.

En résumé, pour du vibe coding sur Mac, Hazmat est le minimum vital.

TwitterLinkedIn

Brief IA — Veille IA quotidienne

Toutes les innovations IA du monde entier, résumées et analysées automatiquement chaque jour.