EL LADO OSCURO DE LAS OFERTAS DE EMPLEO EN PROGRAMACION: REPOSITORIOS MALICIOSOS

Hoy en día en el entorno laboral es casi indispensable contar con un perfil profesional en línea. Tener un perfil profesional en una red social como LinkedIn es clave en el campo laboral por que hace las veces de tarjeta de presentación digital y abre oportunidades que antes solo eran posibles con interacciones presenciales.
Dentro de las ventajas mas sobresalientes, están:
- Hace posible ser encontrado por reclutadores y empresas caza talento.
- Realza tu marca personal, por medio de tu experiencia, logros y habilidades.
- Permite establecer conexiones profesionales con colegas, lideres de la industria y posibles empleadores.
- Brinda acceso a comunidades y grupos especializados afines.
- Un perfil actualizado y correctamente diligenciado, transmite credibilidad y profesionalismo.
- Permite tener acceso a vacantes exclusivas que muchas veces solo se publican en redes profesionales.
Dicho de otro modo, tu perfil profesional es una exposición de tu trayectoria y potencial.
Teniendo en cuenta todas las bondades que ofrece contar con un perfil en una red social profesional, no tenerlo no es una buena opción. Pero ¿cómo manejarlo correctamente y no ser blanco de estafas?
En cualquier oficio u ocupación, se corren riesgos de caer en estafas, ser víctima de phishing, o usurpación de identidad. Sin embargo, por lo complejo y difícil de detectar, hoy hablaremos de los riesgos en las ofertas de empleo de programación.
Para dar un alcance a nuestro post, mencionaremos dos casos. El primero que mencionaré, es el que relata en sus redes sociales la influencer Arelis Reyes, de Kevin Miani. Ella relata lo siguiente:
“Me quisieron hackear en una entrevista de trabajo. Me llegó un mensajito por LinkedIn, foto profesional, experiencia real, todo limpio. “Hola, estamos buscando un Full Stack Web 3 Developer. Queremos evaluar tu capacidad para revisar este repositorio en GitHub. “
Yo ingenua, pero emocionada, pensé, ok, esto es normal. En muchas entrevistas técnicas te mandan un repositorio para que lo ejecutes, revises el código y ellos vean tu proceso. Es una dinámica común, nada extraño, pero ahí es donde las cosas se ponen raras. Abro el repo, todo normal, pero dentro del folder, en Node_Modules, había un paquete modificado, apenas perceptible. Para los que no sepan, Nodul Modules es la carpeta donde viven todas las dependencias que tu proyecto necesita. Y también nadie las revisa una por una porque confiamos en la comunidad, en los mantenedores, en los paquetes populares. Por eso se vuelve la caja negra perfecta para esconder algo, y ahí había un paquete que parecía completamente común.
Nombre normal, archivo normal, pero dentro tenía un código malicioso. Y luego me di cuenta de que el atacante había refinado el malware. Lo que hicieron fue cambiar el nombre del archivo malicioso de react-svg-config a react-svg-provider.
Mismo contenido, diferente máscara. ¿Para qué? Para evitar auditorías automáticas. Las auditorías automáticas son revisiones que hace NPM cuando ejecutas cosas como NPM Audit o cuando instalan las dependencias.
NPM revisa si hay algún paquete sospechoso, si hay alguna vulnerabilidad conocida o si su estructura no coincide con la versión pública. Imagínate que es como un escáner del aeropuerto revisando tu mochila en un segundo. Al cambiarle el nombre, el archivo parecía nuevo, no coincidía con nada reportado.
Y pasó las revisiones sin levantar alertas. Después, en otra actualización dentro del repo, el atacante metió la parte final del ataque en el archivo vite.config.js. Este archivo se ejecutaba cada vez que arrancabas el proyecto, así que era el lugar perfecto para insertar un payload sin que nadie lo notara. Y justo ahí estaba el código diseñado para activarse cuando yo corriera NPM Install.
Este script podía robar variables de entorno, credenciales, tokens, llaves privadas, información del sistema, prácticamente cualquier cosa que yo tuviera en mi entorno. Y lo más preocupante, el código estaba hecho para autodestruirse después de ejecutarse. No dejaba ningún rastro.
Si no lo detectabas en ese instante, jamás te ibas a enterar. Esta es la historia de Kevin Miani, quien detalló todo en LinkedIn. Y lo que dice es claro, ten mucho cuidado con lo que ejecutas.
La revisión inicial es crucial. Y aunque parezca solo una prueba técnica, no puedes ejecutar código desconocido sin aislarle. Y mucho menos confiar ciegamente en repositorios enviados por perfiles que no conoces.
Esto no es para asustar a nadie, es para que sepas que este tipo de ataques existen y cualquiera podría caer en ellos si no tomamos las precauciones mínimas.”[1]
El segundo caso, lo cuenta el creador de contenido argentino, Dager.32. Relata lo siguiente:
“Me contactó un italiano y ofrecía una locura de plata. Obviamente le dije que sí, hoy me mandó a ejecutar un proyecto Mern y creo que me cabió. El CPU se fue al 100%, estoy desinstalando todo, tengan cuidado.
La otra vez les mostré acá en stream un intento de scam que me cayó por también una oferta laboral. Generalmente son las que vienen relacionadas a cripto, es increíble. Y el proyecto, me dijeron, “este es el proyecto, podés verlo”.
Me pasaron el código, viste, el repo, y tenía un código sumamente ofuscado, parecía código legit, pero de repente veías los commits y eran medio raros, y de repente ibas al código y había un código muy ofuscado, como convertido en un montón de strings dando vueltas, loops raros, que vos decías que no sé ni para qué están haciendo esto, y como que te trataba de confundir básicamente tanto con complejidad innecesaria como con literalmente código ofuscado, nombres de funciones unificadas y toda la boludez. Y era, obviamente no me descargué el repo ni nada. Tengan cuidado con eso, no se descarguen ningún repo si van a hacer algo así, hasta que no vean que les están garpando el sueldo, no toquen nada, no se descarguen nada al pedo, y en todo caso si van a poner algo pónganlo en una máquina virtual con cuidado, porque es verdad que hay un montón de scams dando vueltas.”[2]
Como podemos observar en ambos casos, las ofertas de empleo fueron utilizadas como señuelos para hacer caer en la estafa a quienes nos están narrando su experiencia. Vemos que cuando son ofertas de programación, esconden y filtran “pequeñas” variantes en los códigos fuente, intentando pasar desapercibidos. Solo quienes observan detenidamente, son alertados a tiempo antes de descargar o instalar algo en sus equipos.
Este post no tiene el propósito de profundizar en temas técnicos de programación, el objetivo de este, es mostrar este tipo de estafa y alertar a todos nuestros lectores de que es una modalidad cada vez mas utilizada.
Por esto, hemos hecho un resumen de las recomendaciones que debemos tener en cuenta para evitar ser estafados a través del reclutamiento de un perfil profesional por medio de una red social (por ejemplo LinkedIn).
Recomendaciones:
- La revisión inicial es crucial. Antes de ejecutar o instalar cualquier aplicación o complemento, revise de manera detallada el código.
- NO confiar ciegamente en repositorios enviados por perfiles que no conoce. Sea precavido.
- Evite al máximo descargar repositorios hasta que no sea seguro. Por ejemplo, que ya lo hayan contratado y sea algo para su periodo de prueba, o exista un contrato de por medio.
- NO crea en ofertas millonarias y menos cuando la primera tarea es descargar o ejecutar algún código. Desconfié.
- Tenga mucho cuidado con lo que ejecute. Si ya ejecutó, revise que su equipo no adopte un comportamiento extraño, que no haya hecho instalaciones paralelas o adicionales y que los recursos del sistema no presenten anomalías.
- Si definitivamente es necesario que descargue o realice un ejercicio en el cual debe interactuar con dicho repositorio, utilice una máquina virtual con todas las precauciones.
Por: Ing. Arianis Livingston Martínez
[1] https://www.instagram.com/reel/DRYOV-ijjDh/
[2] https://www.instagram.com/reel/DRckg5ZjcGi/?igsh=NGs5cThha2tpd3V2

















