Filtra el código privado de un gigante tecnológico tras incluir un token de GitHub en su cámara de seguridad

Filtra el código privado de un gigante tecnológico tras incluir un token de GitHub en su cámara de seguridad

seguridadiotcadena-de-suministroinfraestructura

Fuentes:HN + original research · HN

El 24 de julio de 2026, un investigador de seguridad independiente compró una cámara de seguridad Hanwha (modelo Wisenet XNP-9300RW) para analizar la seguridad de su firmware. Pocas horas después, se dio cuenta de que tenía en sus manos la llave de todo el código privado de la compañía: un token de administrador de GitHub válido y activo que daba acceso a cientos de repositorios privados de toda la organización Hanwha en GitHub, incluidos códigos fuente, configuraciones de canalizaciones CI/CD y documentación interna. Todo ello extraído directamente de la página web de inicio de sesión de la propia cámara.

Cámara de seguridad Hanwha Wisenet XNP-9300RW Foto: La Hanwha Wisenet XNP-9300RW, una cámara de seguridad PTZ de exterior con resolución 4K y zoom óptico de 30x, protagonista de esta filtración.

El hallazgo causó un revuelo inmediato en la comunidad tecnológica. En Hacker News, la publicación superó los 480 puntos y acumuló más de 160 comentarios. Pero lo que resulta verdaderamente preocupante es cómo revela una realidad extremadamente común y a la vez desatendida: cada dispositivo conectado que instalas en casa o en la empresa puede convertirse en una llave hacia los sistemas internos del fabricante, y en este caso, una llave que el propio fabricante dejó puesta en la cerradura.

¿Cómo terminó el código privado dentro de la cámara?

Para comprender el problema, conviene repasar la arquitectura básica. Una cámara IP moderna es, en esencia, un pequeño ordenador Linux embebido. Cuenta con su propio procesador, memoria, sistema operativo (por lo general, una versión reducida de Linux) y un panel web de administración local. La interfaz de este panel está escrita en JavaScript: al acceder a la dirección IP de la cámara mediante un navegador, este descarga el código frontend para renderizar la página.

Ahí fue precisamente donde falló el proceso.

El investigador descompiló el firmware de la cámara (el paquete de instalación de su sistema operativo) y examinó los archivos JavaScript del portal de gestión. En su interior descubrió, incluido en texto plano a lo largo de casi 30 archivos distintos, un token de acceso personal de GitHub completamente funcional.

Imaginemos un token de GitHub como la llave maestra de una caja fuerte. Una vez emitido, quien posea esa llave hereda todos los permisos asociados, que en este caso implicaban acceso total de lectura y escritura a los repositorios privados de Hanwha. Las buenas prácticas dictan que credenciales tan elevadas solo deben estar en manos de ingenieros clave, almacenadas en gestores de secretos y revocadas inmediatamente tras ejecutar las tareas de CI.

En lugar de eso, este token de administrador terminó embebido en millones de cámaras de seguridad distribuidas por todo el mundo.

Cualquier persona capaz de cargar la página de inicio de sesión de la cámara —es decir, cualquiera que pudiera conectarse a su dirección IP— podía obtener esa llave.

¿En qué punto falló el proceso de compilación?

Al seguir el análisis del investigador, la causa del incidente se resume en una frase: un gigante de la seguridad con ingresos anuales de más de 10.000 millones de dólares utilizó un proceso de compilación de software alarmantemente descuidado.

Hanwha utilizó Vite, una popular herramienta de compilación frontend, para empaquetar el panel web de la cámara. Durante la compilación, la herramienta estaba configurada para inyectar todas las variables de entorno (process.env) directamente en el código JavaScript final. El servidor de integración continua (CI) que ejecutaba esa tarea tenía configurado, precisamente como variable de entorno, el token de GitHub con permisos de administrador.

Como resultado, todo el paquete de variables de entorno del servidor CI —incluido el token de administrador de GitHub, direcciones de clústeres de Kubernetes, claves de npm y dominios o puertos de servicios internos— quedó grabado en el código web frontend, empaquetado en el firmware y distribuido a clientes de todo el mundo.

Es el equivalente a que el equipo de seguridad de un hotel de cinco estrellas imprima la clave de la caja fuerte principal en las instrucciones de la tarjeta de apertura de cada habitación.

Un hallazgo aún más preocupante

Además del token de GitHub, el investigador descubrió dentro del firmware varias direcciones IP inusuales. Tras rastrearlas, confirmó que pertenecían a rangos asignados al Departamento de Defensa de los Estados Unidos (DoD).

Para contextualizar este punto, conviene recordar qué es Hanwha Group. Aunque popularmente se la conoce por sus cámaras de seguridad Hanwha Vision, su matriz es uno de los diez mayores conglomerados empresariales de Corea del Sur, con presencia en defensa, aeroespacial, finanzas y energía. Entre sus filiales figuran:

  • Hanwha Aerospace
  • Hanwha Defense USA
  • Fabricantes del obús autopropulsado K9 Thunder, el carro de combate K2 Black Panther y el robot centinela SGR-A1

Obús autopropulsado K9 Thunder fabricado por Hanwha Group Foto: El grupo Hanwha fabrica equipamiento militar además de cámaras de seguridad. En la imagen, un obús autopropulsado K9 Thunder utilizado por el ejército finlandés. Fuente: Wikimedia Commons

Esto significa que el firmware de una cámara de seguridad comercial albergaba direcciones de servicios internos vinculadas al Departamento de Defensa estadounidense. El investigador plantea la hipótesis de que las divisiones de Hanwha (seguridad, defensa y aeroespacial) compartían la misma infraestructura de CI/CD. Teóricamente, la vulnerabilidad de una cámara comercial podría servir como punto de entrada hacia sistemas de la industria militar.

Aunque parte de esta hipótesis no está confirmada al cien por cien, la simple existencia de esas direcciones refleja la gravedad del riesgo en la cadena de suministro.

¿Un caso aislado o un mal endémico del sector?

Lamentablemente, este no es un problema exclusivo de Hanwha. El sector del IoT (Internet de las Cosas) en su conjunto opera en un estado de vulnerabilidad casi constante.

La comunidad de seguridad lleva años señalando fallos recurrentes en este tipo de dispositivos:

  • Falta de verificación de firma en el firmware: Muchos dispositivos no comprueban la firma digital, permitiendo la instalación de firmwares manipulados.
  • Credenciales codificadas de fábrica: Credenciales por defecto (como admin/admin) que los usuarios rara vez cambian.
  • Actualizaciones de firmware sin cifrar: Los paquetes de actualización se transmiten en texto plano por HTTP, expuestos a ataques de intermediario (MITM).
  • Secretos incrustados en el código frontend: Incluir claves de API, contraseñas de bases de datos o tokens en el código web de cliente sigue siendo un error crónico en el desarrollo de software.

Sin embargo, incluir un token de administrador de GitHub en el JavaScript de inicio de sesión de una cámara de seguridad representa un caso de estudio de negligencia en la cadena de suministro.

¿Qué deben hacer los usuarios?

Si en tu hogar o empresa hay instaladas cámaras Hanwha (incluidas marcas como Hanwha Vision, Wisenet o antiguas Samsung Techwin), no hay nada que puedas hacer directamente sobre el proceso de compilación del fabricante. Hanwha revocó el token 12 horas después de recibir la notificación, pero se desconoce cuánto tiempo estuvo expuesto o si terceros llegaron a extraerlo antes de su anulación.

Las recomendaciones de la comunidad de seguridad incluyen:

  1. Aislar las cámaras de seguridad en una VLAN dedicada: Configura una red de invitados o una VLAN específica en tu router para separar todos los dispositivos IoT (cámras, altavoces inteligentes, televisores) de tus ordenadores y teléfonos principales.
  2. Utilizar cámaras compatibles con ONVIF y software NVR de código abierto: Opta por dispositivos compatibles con el estándar abierto ONVIF en combinación con gestores de vídeo (VMS) independientes, evitando depender del software web propietario del fabricante.
  3. No confiar por defecto en ningún dispositivo conectado: Cada equipo introducido en la red debe considerarse un punto potencial de riesgo. Comprar hardware implica asumir la seguridad de toda la cadena de suministro de software que lleva detrás.

Conclusión

Lo más inquietante de este incidente no es que haya existido una negligencia puntual: los descuidos ocurren en cualquier organización. El verdadero problema radica en que un gigante tecnológico y de defensa valorado en más de 10.000 millones de dólares no contara con una sola salvaguarda automatizada para evitar que un token de administración terminara grabado en el firmware de un producto de consumo.

Si una corporación de este nivel presenta este tipo de fallos en sus canalizaciones de compilación, el panorama de seguridad en cámaras de marcas blancas o de bajo coste resulta todavía más desalentador.

En la era del IoT, la frontera entre “comprar una cámara de seguridad” y “recibir la llave de la caja fuerte del fabricante” puede depender de un solo script de compilación mal configurado.

Enlaces de referencia:

  • HHH: My security camera shipped a GitHub admin token in its login page (Artículo original)
  • Hilo de discusión en Hacker News (ID: 49034292)
  • El Solitario: GitHub Token Leaked in Hanwha Cameras
  • Wikipedia: Hanwha Group
  • Sitio web oficial de Hanwha Vision