Malware distribuido durante entrevistas de trabajo fraudulentas
Introducción
Recientemente se ha detectado una campaña de ingeniería social, denominada DEV#POPPER, que está utilizando paquetes npm falsos bajo la apariencia de ofertas de trabajo para engañar a desarrolladores y descargar una puerta trasera de Python.
La cadena de ataque comienza con entrevistas fraudulentas, en las que se pide a los desarrolladores que descarguen el software malicioso disfrazado de legítimo. En este caso, se trata de un archivo ZIP alojado en GitHub que contiene un módulo npm aparentemente inofensivo, pero que en realidad alberga un archivo JavaScript malicioso llamado BeaverTail y una puerta trasera de Python llamada InvisibleFerret.
Según se informa en un análisis inicial por parte de Securonix, se ha relacionado esta actividad con actores de amenazas norcoreanos quienes continúan perfeccionando su arsenal de ataques, actualizando constantemente sus técnicas y capacidades de operación.
En este post repasaremos, a alto nivel, la cadena de ataque y capacidades, finalizando con algunas recomendaciones y conclusiones.
¿Eres un desarrollador buscando empleo?, tenemos “buenas/malas” noticias
En un entorno de alta demanda como el desarrollo de software, se ha instaurado la práctica de la inclusión de pruebas técnicas durante el proceso de selección para hacer una evaluación de las capacidades de los candidatos.
Dejando de lado la idoneidad o no de esta alternativa (bajo mi punto de vista poco efectiva, para demostrar la capacidad técnica de un potencial nuevo empleado), la realidad es que es una práctica medianamente extendida y que, desde el punto de vista del atacante, genera la situación de estrés ideal en el candidato. Es probable que actúe de forma poco precavida y complaciente puesto que se está jugando un paso importante en su vida profesional.
La realización de pruebas técnicas en entrevistas de trabajo pueden crear un ambiente de estrés para los candidatos, quienes podrían actuar de manera imprudente y complaciente al sentir que su futuro profesional está en juego.
Urgencia y confianza en un tercero para no perder la oportunidad abierta, son mecanismos clásicos de manipulación psicológica usados en las campañas de ingeniería social y que buscan las típicas vulnerabilidades humanas psicológica tan enraizadas como la confianza, el miedo o el simple deseo de ser útil.
Cadena de ataque
A continuación, presentamos una imagen simplificada de la cadena de ataque:

En resumen, los atacantes configuran entrevistas de trabajo falsas para desarrolladores, pretendiendo ser entrevistadores de trabajo legítimos. Durante estas entrevistas fraudulentas, a menudo se pide a los desarrolladores que realicen tareas que implican descargar y ejecutar software de fuentes que parecen legítimas, como GitHub. El software contiene una carga maliciosa de Node JS que, una vez ejecutada, compromete el sistema del desarrollador.
En el caso analizado por Securonix, el desencadenante del ataque se encuentra oculto en un fichero javascript, llamado ImageDetails.js, en el backend del supuesto ejercicio práctico del candidato al empleo. Aparentemente un código simple que usa Mongoose, un conocido paquete de modelado de objetos de la base de datos MongoDB en Node JS. Sin embargo, oculto en una línea anómalamente larga y tras un comentario se encuentra el payload inicial ofuscado mediante codificación en base64, sustitución de variables y otras técnicas habituales.
En la siguiente imagen podemos ver una animación de la ocultación del código inicial:

A continuación, cuando la víctima instala ese paquete de npm (Node Package Manager) se desencadena el ataque que consta de cuatro fases que detallan en el análisis de securonix que invitamos a leer a todos aquellos que tengan una mayor curiosidad técnica.
Capacidades del ataque
El ataque consta de dos componentes principalmente: La instalación de un malware para robo de información y de una puerta trasera en la máquina de la víctima.
Como extractor de información de la máquina del usuario víctima, se rastrea y envía al servidor del atacante datos como los siguientes:
- Carteras de criptomonedas e información de medios de pago encontradas en el navegador de la víctima.
- Datos para fingerprinting
- Nombre del host de la víctima.
- Tipo y versión del Sistema operativo.
- Nombre de usuario conectado.
- Etc.
La segunda parte del ataque es la más dañina, instalando un troyano de acceso remoto, (habitualmente conocido como RAT, Remote Access Trojan) que por su parte otorga las siguientes capacidades al atacante una vez iniciada la explotación:
- Persistencia: Conexión de red y creación de sesión: Utilizado para conexiones persistentes: Esto establece conexiones TCP persistentes, incluyendo la estructuración y el envío de datos en formato JSON.
- Acceso al sistema de archivos: Contiene funciones para recorrer directorios y filtrar archivos basados en extensiones específicas y directorios a excluir. También puede localizar y potencialmente exfiltrar archivos que no cumplan ciertos criterios, como el tamaño del archivo y la extensión.
- Ejecución de comandos remotos: El script contiene varias funciones que permiten la ejecución de comandos y scripts de shell del sistema. Esto incluye navegar por el sistema de archivos y ejecutar comandos de shell. Se incluye la capacidad de descarga del popular cliente AnyDesk para obtener un control adicional de la máquina de la víctima.
- Exfiltración de información: Para la exfiltración, el script de Python es capaz de enviar archivos a un servidor FTP remoto con la capacidad de filtrar archivos basados en su extensión. Otras funciones existen para ayudar a automatizar este proceso recopilando datos de varios directorios de usuario como las Documentos y Descargas.
- Registro de portapapeles y pulsaciones de teclas: El script incluye capacidades para monitorear y exfiltrar contenidos del portapapeles y pulsaciones de teclas (keylogger).
Conclusiones
La ingeniería social es, y continuará siendo, el principal vector de ataque para vulnerar la seguridad desde la perspectiva humana. El caso particular del uso de entornos incómodos, de urgencia o de estrés para las víctimas, como puede ser una entrevista de trabajo encaja con lo que buscan los ciberdelincuentes para maximizar la probabilidad de éxito del ataque.
Este método es efectivo porque explota el compromiso profesional del desarrollador y la confianza en el proceso de solicitud de empleo, donde la negativa a realizar las acciones del entrevistador podría comprometer la oportunidad de trabajo.
Los atacantes adaptan su enfoque para parecer lo más creíbles posible, a menudo imitando a empresas reales y replicando procesos de entrevista reales. Esta apariencia de profesionalismo y legitimidad induce al entrevistado a generar una falsa sensación de seguridad, facilitando la implementación de malware sin levantar sospechas.
Este tipo de ataque no es algo novedoso, la unidad 42 de Palo Alto analizó ataques previos durante entrevistas de trabajo a finales de 2023 e incluso en 2022.
Los mecanismos de protección contra estas amenazas podrían resumirse en:
- No se debe usar el ordenador del trabajo para actividades personales, como las entrevistas de trabajo.
- En general, nadie debe instalar archivos desconocidos de fuentes no verificadas en sus ordenadores.
- Se debe desconfiar de las cuentas de GitHub que contienen un solo repositorio con pocas o ninguna actualización. Aunque con la capacidad de generación de redes de usuarios “controlados”, para otorgarse actividad por parte de los atacantes, cada vez es más complicado diferenciar potenciales cuentas fraudulentas.
Quizá lo más importante y efectivo, en estos casos, es verificar, de forma pausada, la existencia y legitimidad de las empresas que ofrecen entrevistas de trabajo, y también confirmar que los entrevistadores realmente trabajan para las empresas que afirman representar.
⚠️ Para recibir alertas de nuestros expertos en Ciberseguridad, suscríbete a nuestro canal en Telegram: https://t.me/cybersecuritypulse