Los investigadores de ciberseguridad han descubierto que se podría abusar de los puntos de entrada en múltiples ecosistemas de programación como PyPI, npm, Ruby Gems, NuGet, Dart Pub y Rust Crates para organizar ataques a la cadena de suministro de software.
“Los atacantes pueden aprovechar estos puntos de entrada para ejecutar código malicioso cuando se ejecutan comandos específicos, lo que representa un riesgo generalizado en el panorama del código abierto”, dijeron los investigadores de Checkmarx Yehuda Gelb y Elad Rapaport en un informe compartido con The Hacker News.
La empresa de seguridad de la cadena de suministro de software señaló que los ataques de punto de entrada ofrecen a los actores de amenazas un método más astuto y persistente para comprometer los sistemas de una manera que pueda eludir las defensas de seguridad tradicionales.
Los puntos de entrada en un lenguaje de programación como Python se refieren a un mecanismo de empaquetado que permite a los desarrolladores exponer cierta funcionalidad como un contenedor de línea de comandos (también conocido como console_scripts). Alternativamente, también pueden servir para cargar complementos que aumenten las características de un paquete.
Checkmarx señaló que si bien los puntos de entrada son una forma poderosa de mejorar la modularidad, se podría abusar de la misma característica para distribuir código malicioso a usuarios desprevenidos. Algunas de las formas en que esto podría suceder incluyen el secuestro de comandos y la creación de complementos maliciosos para diversas herramientas y marcos.
El secuestro de comandos ocurre cuando los paquetes falsificados utilizan puntos de entrada que se hacen pasar por herramientas y comandos populares de terceros (por ejemplo, aws y docker), recopilando así información confidencial cuando los desarrolladores instalan el paquete, incluso en los casos en que se distribuye como una rueda (.whl). archivo.
Algunos de los comandos de terceros más utilizados que podrían ser objetivos potenciales para el secuestro de comandos incluyen npm, pip, git, kubectl, terraform, gcloud, heroku y dotnet.
Un segundo tipo de secuestro de comandos también puede manifestarse cuando los actores de amenazas usan nombres de comandos legítimos del sistema (por ejemplo, touch, curl, cd, ls y mkdir) como puntos de entrada para secuestrar el flujo de ejecución.
“El éxito de este enfoque depende principalmente del orden de PATH”, señalaron los investigadores. “Si el directorio que contiene los puntos de entrada maliciosos aparece antes en la RUTA que los directorios del sistema, el comando malicioso se ejecutará en lugar del comando del sistema. Es más probable que esto ocurra en entornos de desarrollo donde se priorizan los directorios de paquetes locales”.
Eso no es todo. Checkmarx descubrió que la eficacia del secuestro de comandos se puede mejorar mediante una táctica más sigilosa llamada envoltura de comandos, que implica crear un punto de entrada que actúa como envoltorio alrededor del comando original, en lugar de reemplazarlo por completo.
Lo que hace que este enfoque sea potente es que ejecuta silenciosamente el código malicioso al mismo tiempo que invoca el comando legítimo original y devuelve los resultados de la ejecución, lo que le permite pasar desapercibido.
“Dado que el comando legítimo aún se ejecuta y su resultado y comportamiento se conservan, no hay señales inmediatas de compromiso, lo que hace que el ataque sea extremadamente difícil de detectar mediante el uso normal”, dijeron los investigadores. “Este enfoque sigiloso permite a los atacantes mantener el acceso a largo plazo y potencialmente filtrar información confidencial sin levantar sospechas”.
Otra táctica de ataque de punto de entrada implica la creación de complementos y extensiones maliciosos para herramientas de desarrollo que tienen la capacidad de obtener un amplio acceso al código base en sí, dando así a los delincuentes la oportunidad de cambiar el comportamiento del programa o alterar el proceso de prueba para que parezca el código. está funcionando según lo previsto.
“En el futuro, es crucial desarrollar medidas de seguridad integrales que tengan en cuenta la explotación del punto de entrada”, dijeron los investigadores. “Al comprender y abordar estos riesgos, podemos trabajar hacia un entorno de empaquetado Python más seguro, protegiendo tanto a los desarrolladores individuales como a los sistemas empresariales contra ataques sofisticados a la cadena de suministro”.
El desarrollo se produce cuando Sonatype, en su informe anual sobre el estado de la cadena de suministro de software, reveló que se han descubierto más de 512,847 paquetes maliciosos en ecosistemas de código abierto para Java, JavaScript, Python y .NET desde noviembre de 2023, un año salto del 156%. -durante el año.
“Las herramientas de seguridad tradicionales a menudo no detectan estos nuevos ataques, lo que deja a los desarrolladores y a los entornos de construcción automatizados muy vulnerables”, afirmó la compañía. “Esto ha resultado en una nueva ola de ataques a la cadena de suministro de próxima generación, que apuntan directamente a los desarrolladores, evitando las defensas existentes”.