Retour à la liste

Blog

Bonnes pratiques de sécurité pour le codage IA à distance

Quand un agent IA a un accès en écriture à votre code et que vous le contrôlez via le réseau, les décisions de sécurité comptent. Voici comment faire les bons choix.

Publié le Tags: sécurité / guide / bonnes-pratiques / seo
Blog

Suivez les mises à jour produit et ingénierie de cette catégorie.

Voir la catégorie

Exécuter un agent de codage IA à distance introduit des considérations de sécurité qui n'existent pas quand vous êtes assis devant votre bureau. L'agent a accès à votre code, peut exécuter des commandes et modifier des fichiers. Le chemin réseau entre votre téléphone et votre Mac traverse un territoire potentiellement non fiable.

Ce n'est pas une raison pour éviter le codage IA à distance. C'est une raison pour comprendre le modèle de menace et prendre des décisions éclairées. La plupart des risques sont gérables avec des pratiques simples.

Le modèle de menace

Avant d'aborder les mesures d'atténuation, comprenez ce que vous protégez :

Actifs :

  • Votre code source (propriété intellectuelle, secrets dans les fichiers de configuration)
  • Votre environnement de développement (capacité à exécuter des commandes)
  • Vos identifiants git et clés SSH sur le Mac
  • Les clés API des services utilisés par votre code

Acteurs de menace :

  • Attaquants opportunistes scannant internet à la recherche de services exposés
  • Espions réseau sur un WiFi partagé
  • Quelqu'un qui trouve ou vole votre téléphone
  • Attaques de la chaîne d'approvisionnement sur les outils que vous utilisez

Surfaces d'attaque :

  • Connexion réseau entre le téléphone et le Mac
  • Mécanisme d'authentification
  • Permissions de l'agent IA sur votre système de fichiers
  • Le processus serveur tournant sur votre Mac

Couche 1 : Sécurité réseau

Utilisez des connexions chiffrées

Mode LAN (ws://) : Le trafic n'est pas chiffré. C'est acceptable sur votre WiFi domestique car le trafic ne quitte jamais votre réseau local. Ce n'est pas acceptable sur des réseaux partagés ou publics.

Cloudflare Tunnel (wss://) : Le trafic est chiffré avec TLS. Utilisez ceci pour toute connexion qui traverse internet. Le tunnel chiffre entre votre téléphone et la périphérie Cloudflare, et entre Cloudflare et votre Mac.

Règle générale : Si vous êtes sur un réseau que vous contrôlez (domicile, bureau), le mode LAN suffit. Partout ailleurs, utilisez Cloudflare Tunnel.

N'exposez pas les ports bruts

Ne transférez jamais le port 8765 (ou tout autre port) de votre routeur vers votre Mac pour Tactic Remote. Cela expose votre serveur directement à internet sans protection intermédiaire.

Cloudflare Tunnel évite cela entièrement — le Mac initie une connexion sortante vers Cloudflare. Aucun port entrant nécessaire.

L'app Mac inclut une détection de pare-feu qui vous avertit de la configuration du pare-feu. Gardez le pare-feu de votre Mac activé avec le mode furtif actif.

Couche 2 : Authentification

Configuration de la clé API

Tactic Remote utilise l'authentification par clé API pour les connexions WebSocket :

  • Connexions LAN : La clé API est optionnelle. Votre réseau local sert de frontière de confiance.
  • Connexions Cloudflare Tunnel : La clé API est obligatoire. Le serveur rejette les connexions non authentifiées.

La clé API est transmise lors du handshake WebSocket via l'en-tête Sec-WebSocket-Protocol. Sur wss://, c'est chiffré.

Bonnes pratiques pour la clé API

  1. Utilisez la clé générée. L'app Mac génère une clé aléatoire de 32 caractères. C'est plus robuste que tout mot de passe choisi manuellement.
  2. Transférez de manière sécurisée. Utilisez la fonction QR code pour transférer la clé vers votre iPhone en personne. Ne l'envoyez pas par e-mail, Slack ou SMS.
  3. Faites une rotation périodique. Si vous suspectez que la clé a été compromise, générez-en une nouvelle dans l'app Mac et mettez à jour votre iPhone.
  4. Ne réutilisez pas. N'utilisez pas votre clé API Tactic Remote pour d'autres services. C'est un identifiant à usage unique.

Limitation de débit

Le serveur inclut un middleware de limitation de débit qui ralentit les tentatives d'authentification répétées et échouées. Cela protège contre les attaques par force brute sur la clé API. Avec une clé aléatoire de 32 caractères, la force brute est computationnellement irréalisable, mais la limitation de débit ajoute une défense en profondeur.

Couche 3 : Contrôle d'accès

Restrictions de chemin

Tactic Remote supporte la variable d'environnement CLAUDE_REMOTE_ALLOWED_PATH, qui restreint les répertoires auxquels Claude Code peut accéder. Définissez-la vers votre répertoire de code :

export CLAUDE_REMOTE_ALLOWED_PATH=/Users/you/code

Sans cela, Claude Code a accès à tout votre répertoire personnel (son comportement par défaut). La restriction de chemin limite le rayon d'impact en cas de problème.

Permissions de Claude Code

Claude Code possède son propre système de permissions. Deux modes sont disponibles dans Tactic Remote :

  1. Mode standard : claude — Claude Code demande une approbation avant les opérations risquées (suppression de fichiers, exécution de commandes inconnues)
  2. Mode sans permissions : claude --dangerously-skip-permissions — Claude Code exécute sans demander. Plus rapide, mais sans filet de sécurité.

Recommandation pour l'usage à distance : Utilisez toujours le mode standard. Les invites d'approbation sont particulièrement précieuses à distance car vous pouvez examiner les actions proposées depuis votre téléphone et appuyer sur Y/N. Ignorer les permissions signifie que Claude peut tout faire sans que vous en soyez conscient — dangereux quand vous ne surveillez pas.

Validation côté serveur

Le serveur Tactic Remote valide toutes les commandes entrantes. Le module lib/validators.js vérifie :

  • La conformité du format des commandes
  • Les tentatives de traversée de chemin
  • Les limites de longueur d'entrée

Le module lib/execSafe.js encapsule l'exécution des commandes avec des vérifications de sécurité. Ce n'est pas un substitut aux permissions de Claude Code, mais cela ajoute une couche de défense au niveau serveur.

Couche 4 : Sécurité physique et des appareils

Sécurité du Mac

Votre Mac est le moteur d'exécution. Si quelqu'un obtient un accès physique :

  • Il peut accéder à tout votre code
  • Il peut contrôler Claude Code directement
  • Il peut lire la clé API depuis l'app Mac

Mesures d'atténuation :

  • Activez FileVault (chiffrement complet du disque)
  • Utilisez un mot de passe de connexion fort
  • Activez le verrouillage automatique de l'écran (5 minutes ou moins)
  • Si le serveur tourne pendant votre absence, assurez-vous que le Mac est dans un lieu physiquement sécurisé

Sécurité de l'iPhone

Votre iPhone est la surface de contrôle. Si quelqu'un accède à votre téléphone déverrouillé :

  • Il peut envoyer des commandes à votre Mac via Tactic Remote
  • Il peut lire vos paramètres de connexion, y compris la clé API

Mesures d'atténuation :

  • Activez Face ID ou un code d'accès fort
  • Gardez iOS à jour
  • Ne laissez pas votre téléphone déverrouillé sans surveillance

Couche 5 : Sécurité opérationnelle

Ce qu'il ne faut pas mettre dans vos prompts

Quand vous envoyez des instructions à Claude Code depuis votre téléphone, rappelez-vous que vos prompts font partie du contexte de conversation. N'incluez pas :

  • Mots de passe ou clés API dans les prompts (« Utilise la clé API abc123 pour... »)
  • Identifiants de base de données
  • Informations personnelles sur les utilisateurs ou clients

Référencez plutôt les secrets par nom de variable d'environnement : « Utilise la clé API de la variable d'environnement STRIPE_SECRET_KEY. »

Vérifiez avant d'approuver

Quand Claude Code demande une approbation (l'invite Y/N), lisez ce qu'il veut faire avant d'appuyer sur Y. C'est particulièrement important à distance car vous pourriez être distrait. Demandes d'approbation courantes :

  • Suppression de fichiers
  • Exécution de commandes shell
  • Installation de packages
  • Modification de fichiers de configuration

Une vérification rapide prend quelques secondes et évite les actions non intentionnelles.

Surveillez le journal des événements

L'app Mac maintient un journal des événements de tous les hooks. Consultez-le périodiquement pour vérifier que seuls vos sessions et commandes apparaissent. Une activité inattendue pourrait indiquer un accès non autorisé.

Scénarios de menace et réponses

Scénario : Téléphone perdu ou volé

Risque : Un attaquant accède à Tactic Remote avec vos paramètres de connexion enregistrés.

Réponse :

  1. Depuis votre Mac, générez immédiatement une nouvelle clé API (cela invalide l'ancienne)
  2. Optionnellement, arrêtez le serveur jusqu'à résolution de la situation
  3. Effacez le téléphone à distance si vous ne pouvez pas le récupérer

Scénario : Fuite de la clé API

Risque : Quelqu'un possède votre URL de tunnel et votre clé API.

Réponse :

  1. Générez une nouvelle clé API dans l'app Mac
  2. Si l'URL du tunnel a aussi été exposée, redémarrez cloudflared (il obtient une nouvelle URL aléatoire)
  3. Vérifiez le journal des événements pour toute activité de session non autorisée
  4. Examinez l'historique git récent pour des commits inattendus

Scénario : Réseau WiFi non fiable

Risque : Écoute réseau, attaques de l'homme du milieu.

Réponse : C'est géré par conception. Cloudflare Tunnel utilise TLS, donc le trafic est chiffré. Même sur un réseau compromis, les attaquants voient des trames WebSocket chiffrées, pas votre contenu terminal.

Scénario : Claude Code fait des modifications non intentionnelles

Risque : L'agent IA modifie quelque chose d'inattendu.

Réponse :

  1. Utilisez Ctrl+C depuis votre téléphone pour interrompre Claude
  2. Examinez les modifications : git diff dans la session
  3. Annulez si nécessaire : git checkout . ou git reset
  4. C'est pour cela que le contrôle de version git existe — c'est votre filet de sécurité

Checklist de sécurité

Avant de passer en mode distant :

  • Cloudflare Tunnel activé pour l'accès internet
  • Clé API définie (chaîne aléatoire de 32+ caractères)
  • Clé API transférée via QR code (pas via internet)
  • Pare-feu Mac activé
  • FileVault Mac activé
  • Mac configuré pour le verrouillage automatique
  • Code d'accès/Face ID activé sur iPhone
  • Claude Code en mode standard (pas --dangerously-skip-permissions)
  • CLAUDE_REMOTE_ALLOWED_PATH défini pour restreindre l'accès au système de fichiers
  • Commit git récent comme point de récupération avant de commencer

Essayez Tactic Remote

Pilotez vos agents de programmation depuis votre téléphone

Connectez-vous à Claude Code, Codex et aux autres agents sur votre Mac, PC Windows ou Linux. Consultez leur progression et envoyez la prochaine instruction depuis votre iPhone ou iPad.