
Project Aura: Auditoría de seguridad e introspección de código

La tendencia actual en el desarrollo es utilizar muchos paquetes en la fase de desarrollo, incluso si proporcionan solo una funcionalidad trivial y constan de 11 líneas de código. Cuando combinamos esto con políticas muy liberales de publicación de nuevos paquetes, ahora vemos un aumento en los ataques maliciosos dirigidos a los desarrolladores. Ha habido varios enfoques diferentes por parte de los actores de amenazas:
Estos son solo algunos ejemplos de las técnicas mediante las cuales un desarrollador puede comprometerse a sí mismo. Esto se ve respaldado por el hecho de que no existe un proceso de monitoreo sobre lo que se sube a los repositorios como PyPI o NPM, y una pura casualidad ha descubierto los incidentes anteriores. Nuestro objetivo es mejorar eso.
## Framework Aura Creamos un marco diseñado para escanear código fuente a gran escala (como todo el repositorio PyPI), buscando anomalías y posibles intenciones maliciosas, así como vulnerabilidades. Este marco también está diseñado para escanear código fuente bajo demanda, como cuando un desarrollador instala un paquete o simplemente cualquier conjunto de archivos/directorios. La implementación actualmente está dirigida al lenguaje Python y PyPI, sin embargo, está diseñada para brindar la capacidad de incluir otros lenguajes (como Javascript y NPM).
El conjunto de casos de uso incluye, pero no se limita a:
Un motor de análisis híbrido altamente optimizado logra esto. El análisis se realiza en un entorno completamente seguro mediante análisis estático de código sin ejecución de código. El motor central de Aura analiza el árbol AST analizado del código fuente, realizando análisis de comportamiento y flujo de ejecución de código. El motor también tiene soporte para reescribir el árbol AST utilizando un conjunto de reglas como propagación de constantes, plegamiento o evaluación estática; son un conjunto de técnicas que los compiladores utilizan para optimizar el código. Esta es la razón por la cual este enfoque de análisis es "híbrido", ya que mejora el análisis estático con una evaluación parcial completamente segura que nos permite derrotar mecanismos de ofuscación más simples.
A continuación, puede ver una muestra de diferentes técnicas de "ofuscación" de código fuente reconocidas por el motor de transformación AST de Aura:

Para aprender y comenzar a usar el framework, lea la documentación de instalación, configuración y uso.
La parte central de Aura es analizar el código fuente en busca de anomalías o vulnerabilidades potenciales. Aura tiene varios analizadores integrados que buscan anomalías como el uso de eval en el script de configuración; otros analizadores examinan la estructura del sistema de archivos (código no fuente) buscando, por ejemplo, filtración de credenciales, tokens de API codificados, etc. Estos analizadores generan lo que llamamos hits que definen las anomalías encontradas y también pueden incluir una puntuación, que se utiliza para calcular la seguridad aura de los datos escaneados. Se recomienda utilizar un juicio razonable de las anomalías presentadas basado en la funcionalidad de los datos de entrada. Por ejemplo, es completamente normal que una biblioteca requests incluya llamadas relacionadas con la red, mientras que no se espera que una biblioteca de procesamiento de imágenes envíe datos a través de la red. También hay soporte para generar datos en formato JSON adecuado para escaneos masivos de repositorios o integración en otros productos. Para la descripción y el uso de otros componentes, consulte la documentación).


##Documentación
Este proyecto está licenciado bajo la Licencia GPLv3; consulte el archivo LICENSE.txt para obtener más detalles. Partes de este framework contienen integraciones (opcionales) con otros productos como la plataforma r2c, libraries.io, etc.; las cuales están sujetas a sus propias licencias y términos de uso.