Blog
Mejores prácticas de seguridad para codificación IA remota
Cuando un agente IA tiene acceso de escritura a tu código y lo controlas por una red, las decisiones de seguridad importan. Así es cómo tomar las correctas.
Sigue las novedades de producto e ingeniería de esta categoría.
Ver categoríaEjecutar un agente de codificación IA de forma remota introduce consideraciones de seguridad que no existen cuando estás sentado en tu escritorio. El agente tiene acceso a tu código, puede ejecutar comandos y puede modificar archivos. El camino de red entre tu teléfono y tu Mac cruza territorio potencialmente no confiable.
Esto no es razón para evitar la codificación IA remota. Es razón para entender el modelo de amenazas y tomar decisiones informadas. La mayoría de los riesgos son manejables con prácticas sencillas.
El modelo de amenazas
Antes de entrar en mitigaciones, entiende qué estás protegiendo:
Activos:
- Tu código fuente (propiedad intelectual, secretos en archivos de configuración)
- Tu entorno de desarrollo (capacidad de ejecutar comandos)
- Tus credenciales git y claves SSH en el Mac
- Claves API de servicios que usa tu código
Actores de amenaza:
- Atacantes oportunistas escaneando internet en busca de servicios expuestos
- Escuchas de red en WiFi compartido
- Alguien que encuentre o robe tu teléfono
- Ataques a la cadena de suministro en las herramientas que usas
Superficies de ataque:
- Conexión de red entre teléfono y Mac
- Mecanismo de autenticación
- Los permisos del agente IA en tu sistema de archivos
- El proceso del servidor ejecutándose en tu Mac
Capa 1: Seguridad de red
Usa conexiones cifradas
Modo LAN (ws://): El tráfico no está cifrado. Esto es aceptable en tu WiFi doméstico porque el tráfico nunca sale de tu red local. No es aceptable en redes compartidas o públicas.
Cloudflare Tunnel (wss://): El tráfico está cifrado con TLS. Úsalo para cualquier conexión que cruce internet. El túnel cifra entre tu teléfono y el edge de Cloudflare, y entre Cloudflare y tu Mac.
Regla general: Si estás en una red que controlas (casa, oficina), el modo LAN está bien. En cualquier otro lugar, usa Cloudflare Tunnel.
No expongas puertos sin protección
Nunca reenvíes el puerto 8765 (o cualquier puerto) en tu router hacia tu Mac para acceso a Tactic Remote. Esto expone tu servidor directamente a internet sin protección intermedia.
Cloudflare Tunnel evita esto completamente — el Mac inicia una conexión saliente a Cloudflare. No se necesitan puertos de entrada.
La app Mac incluye detección de firewall que te avisa sobre la configuración. Mantén el firewall de tu Mac habilitado con modo sigiloso activo.
Capa 2: Autenticación
Configuración de clave API
Tactic Remote usa autenticación por clave API para conexiones WebSocket:
- Conexiones LAN: La clave API es opcional. Tu red local actúa como límite de confianza.
- Conexiones Cloudflare Tunnel: La clave API es obligatoria. El servidor rechaza conexiones no autenticadas.
La clave API se transmite durante el handshake WebSocket vía la cabecera Sec-WebSocket-Protocol. Sobre wss://, esto está cifrado.
Mejores prácticas para la clave API
- Usa la clave generada. La app Mac genera una clave aleatoria de 32 caracteres. Es más fuerte que cualquier contraseña que elegirías manualmente.
- Transfiere de forma segura. Usa la función de código QR para transferir la clave a tu iPhone en persona. No la envíes por email, Slack o SMS.
- Rota periódicamente. Si sospechas que la clave puede estar comprometida, genera una nueva en la app Mac y actualiza tu iPhone.
- No reutilices. No uses tu clave API de Tactic Remote para otros servicios. Es una credencial de propósito único.
Limitación de tasa
El servidor incluye middleware de limitación de tasa que ralentiza intentos repetidos de autenticación fallida. Esto protege contra ataques de fuerza bruta a la clave API. Con una clave aleatoria de 32 caracteres, la fuerza bruta es computacionalmente inviable, pero la limitación de tasa añade defensa en profundidad.
Capa 3: Control de acceso
Restricciones de ruta
Tactic Remote soporta la variable de entorno CLAUDE_REMOTE_ALLOWED_PATH, que restringe a qué directorios puede acceder Claude Code. Configúrala a tu directorio de código:
Sin esto, Claude Code tiene acceso a todo tu directorio home (su comportamiento por defecto). La restricción de ruta limita el radio de explosión si algo sale mal.
Permisos de Claude Code
Claude Code tiene un sistema de permisos. Dos modos están disponibles en Tactic Remote:
- Modo estándar:
claude— Claude Code pide aprobación antes de operaciones arriesgadas (borrado de archivos, ejecución de comandos desconocidos) - Modo sin permisos:
claude --dangerously-skip-permissions— Claude Code ejecuta sin preguntar. Más rápido, pero sin red de seguridad.
Recomendación para uso remoto: Usa siempre el modo estándar. Los prompts de aprobación son especialmente valiosos cuando estás en remoto porque puedes revisar las acciones propuestas desde tu teléfono y tocar Y/N. Saltar permisos significa que Claude puede hacer cualquier cosa sin tu conocimiento — peligroso cuando no estás mirando.
Validación del lado del servidor
El servidor de Tactic Remote valida todos los comandos entrantes. El módulo lib/validators.js comprueba:
- Corrección de formato de comandos
- Intentos de traversal de rutas
- Límites de longitud de entrada
El módulo lib/execSafe.js envuelve la ejecución de comandos con comprobaciones de seguridad. No son sustituto de los permisos propios de Claude Code, pero añaden una capa de defensa a nivel de servidor.
Capa 4: Seguridad física y de dispositivo
Seguridad del Mac
Tu Mac es el motor de ejecución. Si alguien obtiene acceso físico:
- Puede acceder a todo tu código
- Puede controlar Claude Code directamente
- Puede leer la clave API desde la app Mac
Mitigaciones:
- Habilita FileVault (cifrado completo de disco)
- Usa una contraseña de inicio de sesión fuerte
- Habilita bloqueo automático de pantalla (5 minutos o menos)
- Si ejecutas el servidor mientras estás fuera de tu Mac, asegúrate de que el Mac está en una ubicación físicamente segura
Seguridad del iPhone
Tu iPhone es la superficie de control. Si alguien accede a tu teléfono desbloqueado:
- Puede enviar comandos a tu Mac vía Tactic Remote
- Puede leer tus ajustes de conexión incluyendo la clave API
Mitigaciones:
- Habilita Face ID o un código fuerte
- Mantén iOS actualizado
- No dejes tu teléfono desbloqueado y desatendido
Capa 5: Seguridad operacional
Qué no poner en tus prompts
Al enviar instrucciones a Claude Code desde tu teléfono, recuerda que tus prompts pasan a formar parte del contexto de conversación. No incluyas:
- Contraseñas o claves API en prompts ("Usa la clave API abc123 para...")
- Credenciales de base de datos
- Información personal sobre usuarios o clientes
En su lugar, referencia secretos por nombre de variable de entorno: "Usa la clave API de la variable de entorno STRIPE_SECRET_KEY."
Revisa antes de aprobar
Cuando Claude Code pide aprobación (el prompt Y/N), lee lo que quiere hacer antes de tocar Y. Esto es especialmente importante en remoto porque podrías estar distraído. Solicitudes de aprobación comunes:
- Borrado de archivos
- Ejecución de comandos de shell
- Instalación de paquetes
- Modificación de archivos de configuración
Una revisión rápida toma segundos y previene acciones no intencionadas.
Monitoriza el registro de eventos
La app Mac mantiene un registro de eventos de todos los eventos hook. Revísalo periódicamente para verificar que solo aparecen tus sesiones y comandos. Actividad inesperada podría indicar acceso no autorizado.
Escenarios de amenaza y respuestas
Escenario: Teléfono perdido o robado
Riesgo: El atacante accede a Tactic Remote con tus ajustes de conexión guardados.
Respuesta:
- Desde tu Mac, genera una nueva clave API inmediatamente (invalida la anterior)
- Opcionalmente, detén el servidor hasta que se resuelva la situación
- Borra remotamente el teléfono si no puedes recuperarlo
Escenario: Clave API filtrada
Riesgo: Alguien tiene tu URL de túnel y clave API.
Respuesta:
- Genera una nueva clave API en la app Mac
- Si la URL del túnel también se expuso, reinicia cloudflared (obtiene una nueva URL aleatoria)
- Revisa el registro de eventos en busca de actividad de sesión no autorizada
- Revisa el historial git reciente en busca de commits inesperados
Escenario: Red WiFi no confiable
Riesgo: Escucha de red, ataques man-in-the-middle.
Respuesta: Esto se maneja por diseño. Cloudflare Tunnel usa TLS, así que el tráfico está cifrado. Incluso en una red comprometida, los atacantes ven frames WebSocket cifrados, no el contenido de tu terminal.
Escenario: Claude Code hace cambios no intencionados
Riesgo: El agente IA modifica algo que no esperabas.
Respuesta:
- Usa
Ctrl+Cdesde tu teléfono para interrumpir a Claude - Revisa los cambios:
git diffen la sesión - Revierte si es necesario:
git checkout .ogit reset - Para esto existe el control de versiones git — es tu red de seguridad
Checklist de seguridad
Antes de ir en remoto:
- Cloudflare Tunnel habilitado para acceso por internet
- Clave API configurada (cadena aleatoria de 32+ caracteres)
- Clave API transferida vía código QR (no por internet)
- Firewall del Mac habilitado
- FileVault del Mac habilitado
- Mac configurado para auto-bloqueo
- Código/Face ID del iPhone habilitado
- Claude Code ejecutando en modo estándar (no
--dangerously-skip-permissions) -
CLAUDE_REMOTE_ALLOWED_PATHconfigurado para restringir acceso al sistema de archivos - Commit reciente de git como punto de recuperación antes de empezar
Prueba Tactic Remote
Controla tus agentes de programación desde el móvil
Conéctate a Claude Code, Codex y otros agentes en tu Mac, Windows o Linux. Consulta el progreso y envía la siguiente instrucción desde el iPhone o iPad.