Volver a la lista

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.

Publicado Etiquetas: seguridad / guía / mejores-prácticas / seo
Blog

Sigue las novedades de producto e ingeniería de esta categoría.

Ver categoría

Ejecutar 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

  1. 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.
  2. 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.
  3. Rota periódicamente. Si sospechas que la clave puede estar comprometida, genera una nueva en la app Mac y actualiza tu iPhone.
  4. 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:

export CLAUDE_REMOTE_ALLOWED_PATH=/Users/you/code

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:

  1. Modo estándar: claude — Claude Code pide aprobación antes de operaciones arriesgadas (borrado de archivos, ejecución de comandos desconocidos)
  2. 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:

  1. Desde tu Mac, genera una nueva clave API inmediatamente (invalida la anterior)
  2. Opcionalmente, detén el servidor hasta que se resuelva la situación
  3. 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:

  1. Genera una nueva clave API en la app Mac
  2. Si la URL del túnel también se expuso, reinicia cloudflared (obtiene una nueva URL aleatoria)
  3. Revisa el registro de eventos en busca de actividad de sesión no autorizada
  4. 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:

  1. Usa Ctrl+C desde tu teléfono para interrumpir a Claude
  2. Revisa los cambios: git diff en la sesión
  3. Revierte si es necesario: git checkout . o git reset
  4. 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_PATH configurado 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.