PackageDNA, nuestro framework de análisis de paquetes de desarrollo que debutó en BlackHatDiego Samuel Espitia 30 agosto, 2021 Tras varios meses de investigación y desarrollo, durante el evento BlackHat USA 2021 Arsenal, presentamos nuestra herramienta de análisis profundo de paquetes de desarrollo que llamamos PackageDNA. Se pudo ver durante la charla “Scanning DNA to detect malicious packages in your code”, cuyo objetivo era mostrar el framework de análisis de librerías que se programó para ayudar a los desarrolladores y empresas a validar la seguridad de los paquetes que se están usando en sus códigos. Esta herramienta surgió cuando nos planteamos, en el equipo de Innovación y Laboratorio, analizar el malware que se oculta dentro de las librerías para desarrolladores. Cada cierto tiempo se hacía público que algunas de ellas suplantaban a las originales, como a finales de 2018, cuando se alertó de un par de librerías en PyPi. La historia se repetiría a menudo desde entonces, ¿pero cómo hacer la investigación sin una herramienta que nos facilitara la búsqueda? Nuestra idea inicial era tomar los paquetes de PyPi únicamente, pero nos propusimos un reto mayor y la idea evolucionó hasta tomar las librerías de los principales lenguajes de programación. Así se convirtió en un framework, que debería mostrar cada paquete que analizaba en PyPi, RubyGems, NPM y Go, los siguientes datos: Metadatos del paqueteHASH de todos los archivos que contieneDetección de posibles IoC, como son IP’s, Hash, URL’s y correos electrónicosAnálisis estático del código, con una herramienta open source para cada lenguajeAnálisis usando AppInspector, la herramienta open source de Microsoft para identificación de componentes maliciososValidación de archivos sospechosos contra VirustotalValidación de reporte de CVE en GitHub, teniendo en cuenta la versión específica del paqueteValidación de paquetes generados por el mismo usuario dentro de la librería y en otros lenguajes de programaciónComprobar los posibles typosquatting del paquete en la misma librería Todo esto terminó en un poderoso framework que permite un análisis profundo de las librerías que se están usando en el código que se analiza o que se está creando, pero que además entrega a los analistas de seguridad una visión estática de la seguridad del código, una visión del comportamiento de atacante y datos para inteligencia de amenazas. ¿Cómo utilizar PackageDNA? El framework está desarrollado en Python3 con una consola interactiva que le permite al usuario ir seleccionando de forma simple lo que desea hacer. La primera pantalla que ve el usuario es la siguiente: Desde aquí se debe iniciar con la opción 7 la configuración de todas las herramientas externas que se tienen asociadas al uso del framework (todas son de uso libre o desarrollos de código abierto). Como se puede ver en la siguiente imagen es solo cargar correctamente cada valor. Una vez se tiene todo configurado, el usuario puede realizar sobre las librerías PyPI, RubyGems, NPM y Go, lo siguiente: Analizar la última versión de un paqueteAnalizar todas las versiones de un paquete y comparar resultados entre las versionesCargar una lista de paquetes con versiones específicasCargar un paquete local para su análisis Para el análisis de inteligencia de amenazas, el usuario selecciona la opción 4 en el panel inicial y le permite entrar a otro panel donde puede realizar: Búsquedas de los paquetes generados en cada una de las librerías y desarrollos cargados en github usando el nombre de usuario que desee investigar.Analizar los «typosquatting» y «brandsquiatting» que se encuentren en una librería especifica de un paquete.Hacer búsquedas de segmentos de código dentro de un paquete especifico. Aunque la herramienta está diseñada sin una base de datos que almacene todas las búsquedas, se dispone de una opción que permite revisar los resultados de los análisis realizados y almacenados localmente en la máquina. Teniendo la información inicialmente en la consola, pero con la opción de verlo en el navegador a través de Flask, como se ve en las siguientes imágenes. Ataques a la cadena de suministro, el mejor banco de pruebas Durante el desarrollo, los ataques a la cadena de suministro de software tomaron una gran relevancia en el mundo, llegando reportes de varios paquetes que se habían detectado como maliciosos en muchas librerías que estaban dentro de nuestro alcance. No podíamos tener mejor escenario de pruebas. De hecho, logramos poder analizar las versiones de maratlib, un paquete de PyPI que se desplegó para hacer minería de criptomonedas de forma maliciosa y que suplantaba a un paquete comúnmente usado en matemáticas llamado matplotlib. Al ejecutar la herramienta y usar la comparación en las dos versiones, pudimos ver claramente el segmento de código malicioso que es detectado por AppInspector y que está presente en una sola de las versiones cargadas en la librería. Pero además, podemos observar los otros paquetes que aparecen el reporte y que son generados usando técnicas de typosquatting. Así que, con este framework, esperamos poder aportar a la comunidad de desarrolladores y de analistas de seguridad en código, un mecanismo simple pero muy poderoso para cumplir con sus objetivos. Lo pueden descargar de forma libre en https://github.com/telefonica/packagedna y quedamos abiertos a sus comentarios y aportes para mejorar la herramienta. Boletín semanal de ciberseguridad 14-27 agostoLo que nos enseña Caperucita Roja de ciberseguridad
Telefónica Tech Boletín semanal de Ciberseguridad, 27 de mayo – 2 de junio Descubierta puerta trasera en cientos de placas base Gigabyte Investigadores de ciberseguridad de Eclypsium descubrieron una puerta trasera secreta en el firmware de cientos de modelos de placas base Gigabyte,...
Nacho Palou Cómo el lenguaje pone en riesgo la Ciberseguridad de las empresas La Ciberseguridad es un asunto fundamental para las empresas y organizaciones, de cualquier tamaño y sector. Los ciberataques pueden tener consecuencias graves o muy graves —incluso fatales— para los...
Carlos Rebato Criptografía, una herramienta para proteger los datos compartidos en la red Actualmente, la Ciberseguridad representa un aspecto primordial en las empresas. No obstante, cada día surgen nuevos modos de atentar contra ella. Muchos se han preguntado: ¿de qué manera las...
Roberto García Esteban ChatGPT y Cloud Computing: un matrimonio bien avenido ChatGPT (quizá no sepas que son las siglas de Chat Generative Pre-Trained Transformer) está en boca de todos por su impresionante habilidad para generar textos que parecen escritos por...
David Prieto Marqués La importancia del control de acceso: ¿está tu empresa protegida? Por David Prieto y Rodrigo Rojas En un mundo cada vez más digitalizado y complejo, la seguridad de la información es fundamental para las empresas. A medida que las empresas...
Telefónica Tech Boletín semanal de Ciberseguridad, 22 – 26 de mayo GitLab parchea una vulnerabilidad crítica GitLab ha abordado una vulnerabilidad crítica que afecta a GitLab Community Edition (CE) y Enterprise Edition (EE) en la versión 16.0.0. En concreto, dicho fallo...