Ampliar / Los ataques a la cadena de suministro, como el último descubrimiento de PyPI, insertan código malicioso en paquetes de software aparentemente funcionales utilizados por los desarrolladores. Se están volviendo cada vez más comunes. Getty Images PyPI, un repositorio vital para desarrolladores de código abierto, detuvo temporalmente la creación de nuevos proyectos y el registro de nuevos usuarios luego de una avalancha de cargas de paquetes que ejecutaban código malicioso en cualquier dispositivo que los instalara. Diez horas más tarde levantó la suspensión. PyPI, abreviatura de Python Package Index, es la fuente de referencia para aplicaciones y bibliotecas de códigos escritas en el lenguaje de programación Python. Tanto las corporaciones Fortune 500 como los desarrolladores independientes confían en el repositorio para obtener las últimas versiones del código necesarias para ejecutar sus proyectos. Poco después de las 7 p.m. PT del miércoles, el sitio comenzó a mostrar un mensaje publicitario que informaba a los visitantes que el sitio estaba suspendiendo temporalmente la creación de nuevos proyectos y el registro de nuevos usuarios. El mensaje no explicaba por qué ni proporcionaba una estimación de cuándo se levantaría la suspensión. Ampliar / Captura de pantalla que muestra la notificación de suspensión temporal.Checkmarx Aproximadamente 10 horas después, PyPI restauró la creación de nuevos proyectos y el registro de nuevos usuarios. Una vez más, el sitio no proporcionó ningún motivo para la suspensión de 10 horas. Según la firma de seguridad Checkmarx, en las horas previas al cierre, PyPI fue atacado por usuarios que probablemente utilizaron medios automatizados para cargar paquetes maliciosos que, cuando se ejecutaban, infectaban los dispositivos de los usuarios. Los atacantes utilizaron una técnica conocida como typosquatting, que aprovecha los errores tipográficos que cometen los usuarios al ingresar los nombres de paquetes populares en las interfaces de línea de comandos. Al dar a los paquetes maliciosos nombres similares a los paquetes benignos populares, los atacantes cuentan con que sus paquetes maliciosos se instalen cuando alguien ingresa por error el nombre incorrecto. «Los actores de amenazas apuntan a las víctimas con la técnica de ataque Typosquatting utilizando su CLI para instalar paquetes de Python», escribieron el jueves los investigadores de Checkmarx Yehuda Gelb, Jossef Harush Kadouri y Tzachi Zornstain. “Este es un ataque de varias etapas y la carga útil maliciosa tenía como objetivo robar billeteras criptográficas, datos confidenciales de los navegadores (cookies, datos de extensiones, etc.) y varias credenciales. Además, la carga maliciosa empleó un mecanismo de persistencia para sobrevivir a los reinicios”. Publicidad Ampliar / Captura de pantalla que muestra algunos de los paquetes maliciosos encontrados por Checkmarx.Checkmarx La publicación decía que los paquetes maliciosos «muy probablemente se crearon mediante automatización», pero no dio más detalles. Los intentos de contactar a los funcionarios de PyPI para hacer comentarios no tuvieron éxito de inmediato. Los nombres de los paquetes imitaban los de paquetes y bibliotecas populares como Requests, Pillow y Colorama. La suspensión temporal es sólo el último evento que resalta las crecientes amenazas que enfrenta el ecosistema de desarrollo de software. El mes pasado, los investigadores revelaron un ataque al repositorio de código fuente abierto GitHub que estaba inundando el sitio con millones de paquetes que contenían código ofuscado que robaba contraseñas y criptomonedas de los dispositivos de los desarrolladores. Los paquetes maliciosos eran clones de los legítimos, lo que los hacía difíciles de distinguir para el ojo casual. La parte responsable automatizó un proceso que bifurcaba paquetes legítimos, lo que significa que el código fuente se copió para que los desarrolladores pudieran usarlo en un proyecto independiente basado en el original. El resultado fueron millones de bifurcaciones con nombres idénticos a los originales. Dentro del código idéntico había una carga útil maliciosa envuelta en múltiples capas de ofuscación. Si bien GitHub pudo eliminar la mayoría de los paquetes maliciosos rápidamente, la compañía no pudo filtrarlos todos, dejando al sitio en un bucle persistente de whack-a-mole. Ataques similares son una realidad para prácticamente todos los repositorios de código abierto, incluidos npm pack picks y RubyGems. A principios de esta semana, Checkmarx informó sobre un ataque separado a la cadena de suministro que también tuvo como objetivo a los desarrolladores de Python. Los actores de ese ataque clonaron la herramienta Colorama, ocultaron código malicioso en su interior y lo pusieron a disposición para su descarga en un sitio espejo falso con un dominio tipográfico que imitaba el legítimo files.pythonhosted.org. Los atacantes secuestraron las cuentas de desarrolladores populares, probablemente robando las cookies de autenticación que utilizaban. Luego, utilizaron las cuentas secuestradas para contribuir con confirmaciones maliciosas que incluían instrucciones para descargar el clon malicioso de Colorama. Checkmarx dijo que encontró evidencia de que algunos desarrolladores fueron infectados con éxito. Anuncio En la publicación del jueves, los investigadores de Checkmarx informaron: El código malicioso se encuentra dentro del archivo setup.py de cada paquete, lo que permite la ejecución automática tras la instalación. Además, la carga útil maliciosa empleaba una técnica en la que el archivo setup.py contenía código ofuscado que se cifraba mediante el módulo de cifrado Fernet. Cuando se instaló el paquete, el código ofuscado se ejecutó automáticamente, lo que desencadenó la carga maliciosa. Checkmarx Tras la ejecución, el código malicioso dentro del archivo setup.py intentó recuperar una carga adicional de un servidor remoto. La URL de la carga útil se construyó dinámicamente agregando el nombre del paquete como parámetro de consulta. Ampliar / Captura de pantalla del código que crea una URL dinámica.Checkmarx La carga útil recuperada también se cifró utilizando el módulo Fernet. Una vez descifrada, la carga útil reveló un extenso ladrón de información diseñado para recolectar información confidencial de la máquina de la víctima. La carga útil maliciosa también empleó un mecanismo de persistencia para garantizar que permaneciera activa en el sistema comprometido incluso después de la ejecución inicial. Ampliar / Captura de pantalla que muestra el código que permite la persistencia. Checkmarx Además de utilizar typosquatting y una técnica similar conocida como brandjacking para engañar a los desarrolladores para que instalen paquetes maliciosos, los actores de amenazas también emplean confusión de dependencias. La técnica funciona cargando paquetes maliciosos en repositorios de códigos públicos y dándoles un nombre idéntico a un paquete almacenado en el repositorio interno del desarrollador de destino del que dependen una o más aplicaciones del desarrollador para funcionar. Las aplicaciones de administración de software de los desarrolladores a menudo prefieren las bibliotecas de códigos externos a las internas, por lo que descargan y utilizan el paquete malicioso en lugar del confiable. En 2021, un investigador utilizó una técnica similar para ejecutar con éxito códigos falsificados en redes de Apple, Microsoft, Tesla y decenas de otras empresas. No existen formas seguras de protegerse contra tales ataques. En cambio, corresponde a los desarrolladores verificar meticulosamente y volver a verificar los paquetes antes de instalarlos, prestando mucha atención a cada letra de un nombre.

Source link