Aura Auditoría Seguridad e Introspección Código
Aura Auditoría Seguridad e Introspección Código

Aura: Auditoría de Seguridad e Introspección de Código

Aura es un framework de análisis estático desarrollado como respuesta a la amenaza cada vez mayor de los paquetes maliciosos y el código vulnerable publicado en PyPI.

Objetivos del Proyecto

  • proveer un sistema de monitoreo automatizado sobre los paquetes subidos a PyPI, alertando sobre anomalías que pueden indicar un ataque en curso o vulnerabilidades en el código
  • permitir que una organización realice auditorías automatizadas de seguridad del código fuente y aplique prácticas de codificación segura, centrándose en la auditoría de códigos de terceros, como las dependencias de paquetes Python
  • permiten a los investigadores explorar los repositorios de códigos a gran escala, crear conjuntos de datos y realizar análisis para avanzar en la investigación en el ámbito de las dependencias de códigos vulnerables y maliciosos
Aura y Ofuscación de código
Aura y Ofuscación de código

¿Por qué Aura?

Mientras que hay otras herramientas con funcionalidad que se superponen con Aura como Bandit, dlint, semgrep etc. el enfoque de estas alternativas es diferente lo que impacta en la funcionalidad y en cómo se están utilizando. Estas alternativas están destinadas principalmente a ser utilizadas de manera similar a los linters, integradas en IDEs, frecuentemente ejecutadas durante el desarrollo, lo que hace que sea importante minimizar los falsos positivos e informar con explicaciones claras y accionables en casos ideales.

Aura, por otro lado, informa sobre ** comportamiento del código**, anomalías y vulnerabilidades con la mayor cantidad de información posible a costa de los falsos positivos. Hay muchas cosas reportadas por Aura que no son necesariamente accionables por un usuario pero que te dicen mucho sobre el comportamiento del código, como hacer comunicación en la red, acceder a archivos sensibles, o usar mecanismos asociados con la ofuscación que indican un posible código malicioso. Al recopilar este tipo de datos y agregarlos juntos|, Aura puede compararse en funcionalidad con otros sistemas de seguridad como los antivirus, los IDS o los cortafuegos que están haciendo esencialmente el mismo análisis, pero sobre un tipo diferente de datos (comunicación de red, procesos en ejecución, etc.).

Aquí hay una rápida visión general de las diferencias entre Aura y otros linters y herramientas SAST similares:

  • datos de entrada:
    • Otras herramientas SAST – normalmente restringidas a sólo el código fuente de python (objetivo) y la versión de python bajo la cual se instala la herramienta.
    • Aura puede analizar tanto el código binario (o el código no python) como el código fuente python también. Puede analizar una mezcla de código python compatible con diferentes versiones python (py2k & py3k) usando la misma instalación de Aura.
  • reportando:
    • Otras herramientas SAST – Su objetivo es integrarse bien con otros sistemas como los IDEs, sistemas CI con resultados procesables, al tiempo que se intenta minimizar los falsos positivos para evitar abrumar a los usuarios con demasiadas alertas no significativas.
    • Aura – reporta tanta información como sea posible que no sea inmediatamente procesable como el análisis de comportamiento y anomalías. El formato de salida está diseñado para un fácil procesamiento y agregación por parte de la máquina en lugar de ser legible por el humano.
  • configuración:
    • Otras herramientas SAST – Las herramientas se ajustan al proyecto objetivo personalizando las firmas para que se dirijan a tecnologías específicas utilizadas por el proyecto objetivo. La configuración de anulación es a menudo posible insertando comentarios dentro del código fuente como #nosec que suprimirá la alerta en esa posición
    • Aura -se espera que haya poco o ningún conocimiento por adelantado sobre las tecnologías utilizadas por el código que se está escaneando, como la auditoría de un nuevo paquete python para su aprobación para ser utilizado como dependencia en un proyecto. En la mayoría de los casos, ni siquiera es posible modificar el código fuente escaneado, como utilizar comentarios para indicar al linter o al aura para saltar la detección en ese lugar, porque se está escaneando una copia de ese código que está alojada en algún lugar remoto.

Instalación

poetry install --no-dev -E full

O simplemente usa una imagen preconstruida docker sourcecodeai/aura:dev

Ejecutando Aura

docker run -ti --rm sourcecodeai/aura:dev scan pypi://requests -v

Aura utiliza las llamadas URI para identificar el protocolo y la ubicación del escaneo, si no se utiliza ningún protocolo, el argumento del escaneo se trata como una ruta de acceso al archivo o directorio en un sistema local.

Paquetes Diff:

docker run -ti --rm sourcecodeai/aura:dev diff pypi://requests pypi://requestes
Más artículos
RubyFu Libro Ruby Trucos Útiles para Hackers
RubyFu: Libro de Ruby con Trucos Útiles para Hackers