PYTHON: ELIMINADOS PAQUETES SUBIDOS CON CONTENIDO FRAUDULENTO

Concretamente, 3 653 paquetes maliciosos, fueron eliminados del índice de paquetes de Python poco después de que se identificara el fallo de seguridad. Entre estos paquetes se encontraban versiones no autorizadas de CuPy y otros proyectos de PyPI.

Ataque al sistema de confianza con paquetes de Python maliciosos

Los desarrolladores de código malicioso se han aprovechado del sistema de confianza empleado en algunos sistemas de administración de paquetes como pueden ser npmPyPI o RubyGems. Es bastante convencional que los desarrolladores de Python empleen PyPI para agregar en sus proyectos librerías de software escritas por terceros. Este sistema de gestión de paquetes se basa en la confianza que el desarrollador tiene en los autores de las bibliotecas usadas. Por este motivo, se aconseja que revisen cualquier código que importen de una librería externa. No obstante, no siempre se sigue este consejo. Por lo tanto, no es la primera vez que los sistemas de administración de paquetes tienen que eliminar paquetes maliciosos.

Paquetes de Python maliciosos

El investigador de seguridad Alex Birsan ya demostro el mes pasado la facilidad con que un desarrollador de malware puede abusar del sistema. Para ello era suficiente con incluir su código malicioso en librerías populares, obteniendo de este modo la distribución gratuita y la confianza de los distintos repositorios. Concretamente, el abuso del sistema de confianza se realizaba aprovechándose de las erratas en los nombres de los paquetes públicos y privados (typosquatting).

Entre la multitud de paquetes maliciosos de Python eliminados durante la semana pasada se descubrieron versiones no autorizadas de proyectos como CuPy, una implementación de una matriz multidimensional compatible con NumPy en CUDA (la plataforma de computación paralela de Nvidia). En este caso, uno de los responsables del proyecto, Kenichi Maehashi, informó sobre la detección del fallo de seguridad. La versión afectada se era cupy-cuda112 (CuPy para CUDA 11.2) que se subió el 25 de febrero de 2021. No ostante fue eliminada al día siguiente gracias a la política de Python diseñada para este tipo de incidentes (PEP 541).

Posibles interpretaciones del ataque

La cuenta implicada en el incidente utiliza el nombre de «RemindSupplyChainRisks», por lo que parece tratarse de un intento de llamar la atención sobre los riesgos de seguridad asociados a este sistema de confianza. Además, en una línea de comentarios de uno de los paquetes maliciosos aparecía el aviso: «El propósito es que todo el mundo preste atención a la cadena de desarrollo del software, porque el riesgo es demasiado alto». No obstante, el director de de infraestructuras de la Fundación Python, Ee W. Durbin III, expresó sus reticencias a suspender la cuenta del infractor alegando que no serviría de nada puesto que podría crearse una cuenta nueva con suma facilidad.

Scraping Google con Python

Sin embargo, el hecho de que el autor haya dejado una dirección de correo electrónico inoperativa y que permanezca en el anonimato, hace sospechar que pudiera tratarse de un ataque de malware encubierto. Aunque resulta difícil de imaginar que un atacante auténtico cargase miles de paquetes en un corto período de tiempo, sabiendo que tal actividad se notaría. Aparte de que el código malicioso en cupy-cuda112 no es tan malicioso, puesto que solo envía una solicitud GET a una dirección IP con sede en Tokio (101.32.99.28) con el nombre del paquete adjunto.

FUENTE: https://unaaldia.hispasec.com/2021/03/eliminados-miles-de-paquetes-de-python-subidos-con-contenido-fraudulento.html

Otras entradas que pueden interesarte

Mauricio Valderrama Escrito por:

2 comentarios

  1. Martino
    10 abril, 2021
    Responder

    Excelente información.

  2. Michael
    10 abril, 2021
    Responder

    Muy valiosa información, buen contenido.

Responder a Martino Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *