
Auditoría de código fuente Python y análisis estático a gran escala
.. image:: https://cdn.sourcecode.ai/imgs/logotype.png :target: https://aura.sourcecode.ai/
======
.. class:: center
|homepage_flair| |docs_flair| |docker_flair|
|license_flair| |travis_flair| |pypi_flair|
Aura es un framework de análisis estático desarrollado como respuesta a la creciente amenaza de paquetes maliciosos y código vulnerable publicado en PyPI.
Objetivos del proyecto:
Lista de características:
¿No encontraste lo que buscas? La arquitectura de Aura está basada en un sistema robusto de plugins, donde puedes personalizar casi cualquier cosa, desde un conjunto de analizadores de datos, protocolos de transporte hasta formatos de salida personalizados.
::
# Via pip:
pip install aura-security[full]
# or build from source/git
poetry install --no-dev -E full
O simplemente usa una imagen Docker preconstruida sourcecodeai/aura:dev
::
docker run -ti --rm sourcecodeai/aura:dev scan pypi://requests -v
Aura utiliza las llamadas URIs para identificar el protocolo y la ubicación a escanear; si no se usa ningún protocolo, el argumento de escaneo se trata como una ruta a un archivo o directorio en el sistema local.
.. image:: files/imgs/aura_scan.png
Comparar paquetes::
docker run -ti --rm sourcecodeai/aura:dev diff pypi://requests pypi://requests2
.. image:: docs/source/_static/imgs/aura_diff.png
Encontrar los paquetes con typosquatting más populares (primero debes ejecutar aura update para descargar el conjunto de datos)::
aura find-typosquatting --max-distance 2 --limit 10
.. image:: https://asciinema.org/a/367999.svg :target: https://asciinema.org/a/367999
.. image:: files/imgs/download_dataset.png :target: https://cdn.sourcecode.ai/pypi_datasets/index/datasets.html :align: center :width: 256
Si bien existen otras herramientas con funcionalidades que se superponen con Aura, como Bandit, dlint, semgrep, etc., el enfoque de estas alternativas es diferente, lo que afecta la funcionalidad y cómo se utilizan. Estas alternativas están destinadas principalmente a ser utilizadas de manera similar a los linters, integradas en IDEs, ejecutadas frecuentemente durante el desarrollo, lo que hace importante minimizar los falsos positivos y reportar con explicaciones claras y accionables en los casos ideales.
Aura, por otro lado, informa sobre el comportamiento del código, anomalías y vulnerabilidades con la mayor cantidad de información posible, a costa de falsos positivos. Hay muchas cosas reportadas por Aura que no son necesariamente accionables por un usuario, pero que dicen mucho sobre el comportamiento del código, como realizar comunicación de red, acceder a archivos sensibles o usar mecanismos asociados con ofuscación que indican un posible código malicioso. Al recolectar este tipo de datos y agregarlos, Aura puede compararse en funcionalidad con otros sistemas de seguridad como antivirus, IDS o firewalls que esencialmente hacen el mismo análisis pero sobre un tipo diferente de datos (comunicación de red, procesos en ejecución, etc.).
Aquí hay una visión general rápida de las diferencias entre Aura y otros linters y herramientas SAST similares:
# nosec, que suprimirá la alerta en esa posición.El framework Aura está licenciado bajo GPL-3.0. Los conjuntos de datos producidos a partir de escaneos globales usando Aura se publican bajo la licencia CC BY-NC 4.0. Utilice la siguiente cita cuando use Aura o datos producidos por Aura en investigaciones:
::
@misc{Carnogursky2019thesis,
AUTHOR = "CARNOGURSKY, Martin",
TITLE = "Attacks on package managers [online]",
YEAR = "2019 [cit. 2020-11-02]",
TYPE = "Bachelor Thesis",
SCHOOL = "Masaryk University, Faculty of Informatics, Brno",
SUPERVISOR = "Vit Bukac",
URL = "Available at WWW <https://is.muni.cz/th/y41ft/>",
}
.. |homepage_flair| image:: https://img.shields.io/badge/Homepage-aura.sourcecode.ai-blue :target: https://aura.sourcecode.ai/ :align: middle
.. |docs_flair| image:: https://img.shields.io/badge/-Documentation-blue :target: https://docs.aura.sourcecode.ai/ :align: middle
.. |docker_flair| image:: https://img.shields.io/badge/docker-SourceCodeAI/aura-blue :target: https://hub.docker.com/r/sourcecodeai/aura :align: middle
.. |license_flair| image:: https://img.shields.io/github/license/SourceCode-AI/aura?color=blue
.. |travis_flair| image:: https://travis-ci.com/SourceCode-AI/aura.svg?branch=dev
.. |pypi_flair| image:: https://badge.fury.io/py/aura-security.svg :target: https://pypi.org/project/aura-security/ :align: middle