Por qué creé una app que protege automáticamente el perímetro de red de tu Mac
El relato de cómo Tetsuharu Fujiki, desarrollador independiente (Lafine Systems Design), investigó por sí mismo los riesgos de exposición del Wi-Fi público y los servidores de desarrollo.
Todo empezó con una pregunta casual sobre el Wi-Fi de un restaurante de comida rápida
Un día, trabajando en un Wi-Fi público, me pregunté de repente: «¿Cómo se ve mi Mac, en este Wi-Fi, para la persona de la mesa de al lado?» y empecé a investigar.
«Mientras el Wi-Fi público tenga aislamiento de clientes (aislamiento de AP), estás a salvo porque no puedes comunicarte con otros dispositivos» — eso creí durante mucho tiempo. Pero investigando, descubrí que esa suposición era más frágil de lo que pensaba. El aislamiento de clientes no está garantizado en todas las redes Wi-Fi, e incluso donde lo está, descubrí que puede eludirse con una técnica llamada «AirSnitch», reportada por el SANS Institute. Ejecutar dns-sd y lsof por mí mismo fue la primera vez que realmente comprendí cuánta información transmitía mi Mac en texto plano a través de Bonjour (mDNS).
La conclusión a la que llegué fue sencilla: solo hay dos contramedidas reales: «reducir la superficie expuesta» y partir de la premisa de que «una persona no cambiará manualmente la configuración cada vez que cambie de red». Casi nadie revisa su configuración cada vez que llega a una cafetería (yo tampoco). Así que pensé que hacía falta un mecanismo que distinguiera automáticamente las redes de confianza del resto y redujera discretamente la superficie expuesta en las redes desconocidas; convertir esto en una app de macOS automatizada fue el origen de RoamSwitch.
Resultó que los servidores de desarrollo tenían el mismo problema
Siguiendo con mi investigación sobre el Wi-Fi público, sentí curiosidad por «¿y qué pasa con los servidores de desarrollo?» y profundicé. Suponía vagamente que «los servidores de desarrollo solo escuchan en localhost, así que son seguros desde fuera», pero esto también resultó variar enormemente según el framework, con valores predeterminados a veces contraintuitivos.
next dev se vincula a 0.0.0.0 si no se especifica un nombre de host, y python -m http.server también expone todas las interfaces por defecto. Vite es comparativamente sensato, con localhost por defecto, pero seguro que todo el mundo ha añadido --host alguna vez para probar en un móvil real, y existe precisamente el CVE-2023-34092 (una vulnerabilidad de path traversal, CVSS 7,5) que apunta a ese caso. La opción -p de Docker llega incluso a publicar en 0.0.0.0 sorteando la configuración del cortafuegos del host.
Al final, esto llevó a la misma conclusión. En lugar de confiar en que una persona recuerde cerrar las cosas, un mecanismo que bloquee automáticamente el acceso externo en el instante en que te conectas a una red no confiable es más realista. De hecho, este se ha convertido en uno de los casos de uso más reportados de RoamSwitch en la práctica: auditar pasivamente los puertos abiertos para informar del riesgo, a la vez que se bloquea el acceso desde la LAN externa mediante el filtro de paquetes del kernel en redes no registradas.
Lafine Systems Design / Desarrollador independiente
La base técnica del control de cortafuegos de RoamSwitch (pf/socketfilterfw), la detección de suplantación ARP y la separación segura de privilegios mediante un ayudante privilegiado (XPC) se apoya en la experiencia práctica como ingeniero de sistemas en una empresa de TI extranjera y en un gran grupo de fabricación electrónica, así como en los conocimientos de fundamentos de SO/red, automatización operativa, respuesta a incidentes y gestión de seguridad adquiridos al operar un servicio ASP propio para organismos públicos, universidades e institutos de investigación. Las áreas de interés incluyen Linux de bajo nivel, defensa de red, aprendizaje automático, infraestructura de datos de alto rendimiento y diseño de sistemas. Actualmente trabaja como desarrollador independiente, también dedicado al ámbito de la IA/aprendizaje automático, mientras desarrolla y mantiene RoamSwitch, una app que automatiza la seguridad de red de tu Mac. Los hallazgos se publican como artículos técnicos en Zenn.
Publicado de forma verificable
- RoamSwitchKit — SDK de código abierto con licencia MIT (GitHub)
- roamswitch-mcp — código fuente del servidor MCP y la lógica de detección (GitHub, MIT)
- Documento técnico de seguridad de RoamSwitch (todas las secciones públicas)
- Tráfico saliente Zero Telemetry medido con tcpdump + atribución por proceso (script reproducible, PASS)
- Registro de cambios (GitHub, publicado de forma continua)
- Investigaciones publicadas como artículos técnicos en Zenn
- Notas sobre gestionar un producto de seguridad en solitario en note (JP)
- Artículos y ensayos en inglés en dev.to
Para las divulgaciones legalmente exigidas, como el nombre del operador, la dirección y los métodos de pago, consulta la divulgación conforme a la Ley de Transacciones Comerciales Específicas.