top of page

Paquetes maliciosos de PyPI utilizan código Python compilado para evadir la detección


"Puede ser el primer ataque de cadena de suministro que aprovecha el hecho de que los archivos de bytecode de Python (PYC) pueden ejecutarse directamente", dijo el analista de ReversingLabs, Karlo Zanki, en un informe compartido con The Hacker News.


El paquete en cuestión es fshec2, que fue eliminado del registro de software de terceros el 17 de abril de 2023, después de una divulgación responsable el mismo día.

Los archivos PYC son archivos de bytecode compilado que son generados por el intérprete de Python cuando se ejecuta un programa en Python.


"Cuando se importa un módulo por primera vez (o cuando el archivo fuente ha cambiado desde que se creó el archivo compilado actual), se debe crear un archivo .pyc que contenga el código compilado en un subdirectorio pycache del directorio que contiene el archivo .py", explica la documentación de Python. El paquete, según la empresa de seguridad de la cadena de suministro de software, contiene tres archivos: init.py, main.py y full.pyc, este último con funcionalidad maliciosa.


"Se encontró el punto de entrada del paquete en el archivo init.py, que importa una función del otro archivo de texto sin formato, main.py, que contiene código fuente de Python responsable de la carga del módulo compilado de Python ubicado en uno de los otros archivos, full.pyc", señaló Zanki. Esto se logra utilizando el paquete importlib (en lugar de una importación regular) para cargar y ejecutar el código presente en el archivo .pyc.


Un análisis de la versión desensamblada del archivo PYC revela que está configurado para recopilar nombres de usuario, nombres de host y listados de directorios, así como para obtener comandos a ejecutar en el host desde un servidor codificado.


ReversingLabs también observó que el módulo descargaba y ejecutaba otro script de Python que era responsable de obtener nuevos comandos colocados en un archivo que puede ser modificado a voluntad por el actor de amenazas para emitir diferentes instrucciones. Un examen adicional del servidor de comando y control descubrió una mala configuración que permitía descargar archivos por su ID, que están numerados en orden secuencial (comenzando desde 1), sin ninguna autorización. Esto indica que es probable que el ataque no haya sido orquestado por un actor sofisticado.


Este desarrollo es una continuación de los esfuerzos por parte de los actores de amenazas para adoptar diferentes técnicas de ofuscación con el fin de evadir la detección de soluciones de seguridad. "Los scripts de carga como los descubiertos en el paquete fshec2 contienen una cantidad mínima de código Python y realizan una acción simple: la carga de un módulo de Python compilado", dijo Zanki. "Simplemente resulta ser un módulo malicioso".



¿Quieres saber más?


17 visualizaciones0 comentarios

Comments


bottom of page