Para un desarrollador o investigador de seguridad, GitHub es una mina de oro. Es el lugar donde se comparte código, se colabora en proyectos y, muy a menudo, donde se publican las pruebas de concepto (PoC, por sus siglas en inglés) de nuevas vulnerabilidades. Un PoC es un código que demuestra que un fallo de seguridad existe, permitiendo a los equipos de seguridad entenderlo y parchearlo. Por eso es relevante la historia del troyano ChocoPoC
La confianza en la plataforma está siendo explotada por los ciberdelincuentes con una táctica muy astuta. Han comenzado a publicar repositorios con falsos PoC que, en lugar de ayudar a los investigadores, instalan un potente troyano en sus ordenadores. El objetivo es claro: robar información valiosa de quienes buscan proteger sistemas, no infectarlos. Saber cómo identificar un repositorio falso de prueba de concepto en GitHub es, hoy más que nunca, una habilidad esencial.

El caso del troyano «ChocoPoC»
Recientemente, se descubrió una campaña que utilizaba repositorios en GitHub que aparentaban contener el código de prueba (PoC) para una nueva vulnerabilidad muy sonada. El código principal se veía limpio y funcional. Sin embargo, los desarrolladores habían ocultado el verdadero malware en un lugar donde muchos no miran: las dependencias.
Las dependencias son librerías o paquetes de código externo que un proyecto necesita para funcionar. En este caso, el archivo de configuración del proyecto (por ejemplo, requirements.txt en Python) incluía una dependencia llamada «skytext». Esta librería parecía inofensiva, pero en realidad contenía el código malicioso completo.
Al ejecutar el PoC, el desarrollador descargaba e instalaba todas las dependencias, incluyendo «skytext», sin saber que estaba instalando un troyano. Este software malicioso, bautizado como ChocoPoC, era capaz de:
- Robar contraseñas y credenciales. Extraía las contraseñas guardadas en los navegadores (Chrome, Edge, Firefox).
- Capturar cookies de sesión. Esto permite a los atacantes hacerse pasar por la víctima en los sitios web donde estaba logueada, sin necesidad de saber la contraseña.
- Acceder al historial y autocompletado. Obtiene información valiosa sobre los hábitos y contactos de la víctima.
- Examinar archivos locales. Leía archivos de texto, notas, bases de datos locales y el historial de comandos de la terminal.
- Tomar el control remoto. En última instancia, permitía al atacante ejecutar cualquier comando o código Python en el ordenador de la víctima.
¿Quién está en peligro con ChocoPoC?
La campaña ChocoPoC no está dirigida a un usuario doméstico cualquiera. El ataque es tan específico que solo tendrá éxito si es ejecutado por un investigador de seguridad o un desarrollador curioso que está buscando activamente un PoC para una vulnerabilidad. Precisamente por eso es tan peligroso: ataca a quienes deberían estar más atentos.
Cómo protegerte en GitHub y al probar código externo
No se trata de dejar de usar GitHub, sino de hacerlo con un sano escepticismo y buenas prácticas. Aquí tienes una guía para no caer en esta trampa:
- Verifica la fuente y el historial del repositorio. No te fíes de un repositorio creado hace tres días con 1 estrella y sin actividad. Los repositorios legítimos suelen tener un historial de contribuciones, issues (problemas reportados) y discusiones. Mira también la reputación del usuario que lo subió.
- Revisa el código, incluyendo las dependencias, antes de ejecutarlo. Es la regla de oro. No ejecutes nada sin leer el código. Si el PoC es para una vulnerabilidad, el código no debería tener ofuscación ni partes incomprensibles. Además, verifica el archivo donde se listan las dependencias (como
package.json,requirements.txt,Gemfile, etc.). ¿Ves una librería que no conoces? Investígala. Busca su nombre en internet. - Ejecuta todo en un entorno aislado (sandbox). Nunca ejecutes un PoC en tu ordenador personal de trabajo. Usa una máquina virtual (como VirtualBox o VMware) que esté desconectada de tu red principal. Así, si algo sale mal, el daño queda contenido y no afecta tus archivos o credenciales personales.
- No confíes ciegamente en la comunidad. Que un repositorio tenga muchas estrellas no es garantía de seguridad. Las estrellas se pueden comprar o conseguir mediante campañas automatizadas. Un PoC de una vulnerabilidad crítica real será publicado por una fuente reconocida (como el equipo que la descubrió) o replicado por muchos usuarios de confianza. La prisa y la emoción de probar algo nuevo son tus peores enemigas.
Conclusión
La historia de ChocoPoC es un recordatorio perfecto de que en ciberseguridad, la confianza hay que ganársela. El ataque fue brillante porque explotó una práctica común (el uso de dependencias) y un comportamiento humano (la confianza en GitHub). Para los desarrolladores y profesionales de la seguridad, la lección es clara: ser precavido no es ser paranoico, es ser profesional. La próxima vez que descargues un código, pregúntate: ¿de verdad sé qué estoy ejecutando?
Nota desarrollada a partir de un informe de The Hacker News
Quizás te interese esta otra nota.
