Los investigadores analizan las amenazas del lado de la oferta en código abierto



Un proyecto reciente para escanear los 268,000 paquetes del repositorio principal de Python encontró solo algunos programas potencialmente maliciosos, pero el trabajo realizado a principios de este año descubrió cientos de instancias de malware.

Los repositorios de código abierto forman la columna vertebral del desarrollo de software package moderno (casi todos los proyectos de computer software incluyen al menos un componente), pero los expertos en seguridad se preocupan cada vez más de que los atacantes se centren en infectar sistemas insertando código malicioso en repositorios populares.

Este año se han iniciado varios proyectos para buscar estos caballos de Troya. La semana pasada, el ingeniero de Stripe, Jordan Wright, publicó los resultados de un proyecto de investigación casero que descargó todos los componentes de Python del índice de paquetes de Python (PyPI) y buscó llamadas al sistema que pudieran indicar una intención maliciosa. En typical, encontró cientos de paquetes que crearon conexiones de purple, la mayoría al incluir una dependencia común, y algunos paquetes que parecían riesgosos. Estos incluyeron dos que parecían ser casos de prueba, uno llamado «soy malicioso» y otro llamado «paquete malicioso», y un tercero que usaba la ofuscación para ocultar comandos.

Sin embargo, ninguno de los paquetes escaneados parecía completamente malicioso, Wright dijo en su análisis.

«Al revisar los datos, no encontré ningún paquete que realizara una actividad significativamente dañina que no tuviera también &#39malicioso&#39 en alguna parte del nombre, lo cual period bueno», dijo. «Pero siempre es posible que me haya perdido algo o que (los atacantes que instalen código malicioso) suceda en el futuro».

De hecho, esos ataques ya han ocurrido. Hace dos años, por ejemplo, un atacante comprometió la cuenta de un desarrollador y publicó versiones maliciosas de dos componentes del well known paquete Javascript ESLint en el servicio Node Deal Manager (NPM). Si bien el paquete tiene millones de descargas semanales, el grupo del proyecto recibió una advertencia y anuló la publicación de los paquetes en dos horas, lo que limita el impacto.

El ataque a menudo toma otra forma: typosquatting, donde los atacantes crean caballos de Troya que tienen nombres similares a los paquetes comunes. En abril, un atacante sembró el repositorio de paquetes de Ruby, RubyGems, con más de 760 paquetes maliciosos con nombres similares a los paquetes legítimos. Tales ataques intentan aprovechar los comandos de instalación mal escritos, relativamente raros, quizás, pero devastadores si producen un compromiso.

El año pasado, el equipo de desarrollo central de Python pidió a la comunidad formas de encontrar código malicioso insertado en los módulos y paquetes utilizados por Python. Para los proyectos de código abierto, estos problemas son particularmente desafiantes, dijo Mike Myers, ingeniero de seguridad principal de Path of Bits, una consultora de seguridad de application. en un comentario de respuesta.

«(L) as tiendas de aplicaciones de Google y Apple han invertido mucho en entornos de análisis en tiempo de ejecución y enfoques de análisis estático para detectar malicia en sus tiendas de aplicaciones», dijo. «La diferencia es que pueden ejecutar sus detecciones en secreto y los adversarios no pueden desarrollar una evasión de antemano sin revelarla en una presentación».

Un equipo de investigadores del Instituto de Tecnología de Georgia llevó a cabo un análisis related para tres repositorios principales: PyPI de Python, Node Deal Manager (NPM) y RubyGems. Su sistema, denominado MalOSS, combina análisis de metadatos, análisis de código estático y análisis dinámico en tiempo de ejecución para determinar si un paquete se comporta de forma maliciosa. Los investigadores encontraron siete paquetes maliciosos en PyPI, 41 en NPM y 291 en RubyGems, según su artículo publicado en febrero de 2020.

Inspirado por el trabajo de Georgia Tech, Wright tuvo como objetivo buscar señales de que los atacantes insertaron código malicioso en los paquetes mediante el análisis de las funciones del sistema llamadas durante la instalación. Usando la API de PyPI, descargó 268,000 paquetes en un contenedor, instaló cada uno y observó cambios sospechosos. Todo el proceso costó alrededor de $ 120 en tarifas de nube, dijo.

Wright planea expandir el esfuerzo para monitorear continuamente PyPI y agregar repositorios para otras plataformas en el futuro.

«Esto encontró algunos casos de comportamiento potencialmente malicioso que puede encontrar en la publicación, pero el poder actual será configurar un monitoreo continuo en el futuro», dijo. declaró en Twitter.

En normal, Wright argumenta que cada uno de los principales repositorios necesita implementar su propia seguridad y monitorear continuamente los ataques maliciosos a la cadena de suministro en el futuro. De lo contrario, la instalación de paquetes desde el código en los repositorios presenta un riesgo demasiado grande, dijo.

«Todavía no me gusta que sea posible ejecutar comandos arbitrarios en el sistema de un usuario con solo que pip instalen un paquete», dijo Wright. «Entiendo que la mayoría de los casos de uso son benignos, pero abren un riesgo que debe ser considerado. Con suerte, al monitorear cada vez más varios administradores de paquetes, podemos identificar signos de actividad maliciosa antes de que tenga un impacto significativo».

Periodista tecnológico veterano de más de 20 años. Ex ingeniero de investigación. Escrito para más de dos docenas de publicaciones, incluidas CNET News.com, Dim Studying, MIT&#39s Technology Overview, Well known Science y Wired News. Cinco premios de periodismo, incluido el de Mejor fecha límite … Ver biografía completa

Lectura recomendada:

Más información





Enlace a la noticia initial