El malware descargado de PyPI 41 000 veces fue sorprendentemente sigiloso

El malware descargado de PyPI 41 000 veces fue sorprendentemente sigiloso

PyPI, el repositorio de código abierto que utilizan las organizaciones grandes y pequeñas para descargar bibliotecas de códigos, albergaba 11 paquetes maliciosos que se descargaron más de 41 000 veces en uno de los últimos incidentes de este tipo que amenazan la cadena de suministro de software.

JFrog, una firma de seguridad que monitorea PyPI y otros repositorios en busca de malware, dijo que los paquetes son notables por el tiempo que tomaron sus desarrolladores para camuflar su código malicioso de la detección de la red. Esas longitudes incluyen un mecanismo novedoso que utiliza lo que se conoce como shell inverso para comunicaciones de proxy con servidores de control a través de la red de distribución de contenido de Fastly. Otra técnica es el túnel DNS, algo que JFrog dijo que nunca antes había visto en software malicioso cargado en PyPI.

Un poderoso vector

“Los administradores de paquetes son un vector poderoso y en crecimiento para la instalación involuntaria de código malicioso, y como descubrimos con estos 11 nuevos paquetes PyPI, los atacantes se están volviendo más sofisticados en su enfoque, escribió en un correo electrónico Shachar Menashe, director senior de investigación de JFrog. . “Las técnicas de evasión avanzadas utilizadas en estos paquetes de malware, como la exfiltración novedosa o incluso el túnel DNS (el primero que hemos visto en paquetes cargados en PyPI) señalan una tendencia preocupante de que los atacantes se están volviendo más sigilosos en sus ataques al software de código abierto”.

Los investigadores dijeron que PyPI eliminó rápidamente todos los paquetes maliciosos una vez que JFrog los informó.

El uso de repositorios de código abierto para enviar malware se remonta al menos a 2023, cuando un estudiante universitario subió paquetes maliciosos a PyPI, RubyGems y npm. Dio a los paquetes nombres que eran similares a los paquetes ampliamente utilizados que ya habían enviado otros usuarios.

En un lapso de varios meses, su código impostor se ejecutó más de 45 000 veces en más de 17 000 dominios separados, y más de la mitad de las veces, su código recibió derechos administrativos todopoderosos. Dos de los dominios afectados terminaron en .mil, una indicación de que personas dentro del ejército de los EE. UU. pueden haber ejecutado su script.

En 2023, la Autoridad de Seguridad Marketingdecontenido de Eslovaquia informó que los paquetes maliciosos descargados de PyPI se habían incorporado a varias piezas de software de producción en el transcurso de tres meses. Desde entonces, ha habido una cantidad casi incontable de instancias de malware que se infiltraron en los repositorios.

En julio, JFrog encontró paquetes PyPI maliciosos, descargados más de 30 000 veces, que llevaron a cabo una variedad de actividades nefastas, incluido el robo de datos de tarjetas de crédito e inyección de código malicioso en máquinas infectadas. A principios de este año, un investigador desarrolló un nuevo tipo de ataque a la cadena de suministro que puede tener graves consecuencias. Los llamados “ataques de confusión de dependencias” funcionan al cargar paquetes maliciosos en repositorios de códigos públicos y darles nombres que son idénticos a los paquetes legítimos almacenados en el repositorio interno de Microsoft, Apple u otro gran desarrollador de software. Las aplicaciones de administración de software de los desarrolladores a menudo prefieren las bibliotecas de códigos externas a las internas, por lo que descargan y usan el paquete malicioso en lugar del confiable.

Del atacante a la víctima a través de Fastly

Ahora, este tipo de ataques son cada vez más difíciles de detectar. El mayor avance en el subterfugio que encontraron los investigadores fue en dos paquetes, uno llamado “paquete importante” (o alternativamente “paquete importante”) y el otro llamado “10Cent10” (o “10Cent11”). Los paquetes utilizan Fastly CDN para disfrazar las comunicaciones entre la máquina infectada y un servidor de control.

El código malicioso que se esconde en los paquetes hace que se envíe una solicitud HTTPS a pypi.python.org de una manera que no se distingue de una solicitud legítima a PyPI. Finalmente, Fastly redirige las solicitudes como una solicitud HTTP al servidor de control psec.forward.io.global.prod.fastly.net. Luego, el servidor envía respuestas a través de la misma configuración, lo que permite una comunicación bidireccional. Fastly facilita que las personas registren sus dominios con el servicio. En muchos casos, el registro puede incluso hacerse de forma anónima.

El malware descargado de PyPI 41 000 veces fue sorprendentemente »

JFrog

Los investigadores de JFrog Andrey Polkovnychenko y Menashe explicaron:

La infraestructura de PyPI está alojada en Fastly CDN. Este alojamiento utiliza el proxy HTTP transparente Varnish para almacenar en caché la comunicación entre los clientes y el backend. El tráfico primero entra en un terminador TLS para el descifrado, de modo que el proxy Varnish pueda inspeccionar el contenido del paquete HTTP. El proxy analiza los encabezados HTTP de la solicitud del usuario y redirige la solicitud al backend correspondiente según el Host encabezamiento. Luego, el proceso se repite en la dirección inversa, lo que permite que el malware imite la comunicación dúplex con PyPI.

Como resultado, la sesión de comando y control (C2) se cifra y se firma con un certificado de servidor legítimo, lo que la hace indistinguible de la comunicación con recursos legítimos de PyPI.

El túnel DNS, la otra técnica de evasión avanzada que encontraron los investigadores, funciona utilizando un canal DNS, normalmente reservado para asignar nombres de dominio a direcciones IP, para enviar comunicaciones entre una computadora infectada y un servidor de control. El túnel DNS no es nuevo, pero los investigadores dijeron que es la primera vez que ven la técnica utilizada en el malware cargado en PyPI.

La creciente sofisticación del código malicioso que se infiltra en PyPI, y presumiblemente en otros repositorios, es una indicación de que es probable que continúe su uso para propagar malware. Los desarrolladores que confían en repositorios públicos deben tener especial cuidado para asegurarse de que no haya errores tipográficos o letras sueltas en el nombre del paquete que están descargando.

Facebook
Twitter
LinkedIn
Telegram
WhatsApp

Deja un comentario