
Audit de code source Python et analyse statique à grande échelle
.. 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 est un framework d'analyse statique développé en réponse à la menace toujours croissante des paquets malveillants et du code vulnérable publiés sur PyPI.
Objectifs du projet :
Liste des fonctionnalités :
Vous n'avez pas trouvé ce que vous cherchez ? L'architecture d'Aura repose sur un système de plugins robuste, où vous pouvez personnaliser presque tout, de l'ensemble des analyseurs de données aux protocoles de transport, en passant par les formats de sortie personnalisés.
::
# Via pip :
pip install aura-security[full]
# ou construire à partir des sources/git
poetry install --no-dev -E full
Ou utilisez simplement une image docker préconstruite sourcecodeai/aura:dev
::
docker run -ti --rm sourcecodeai/aura:dev scan pypi://requests -v
Aura utilise ce qu'on appelle des URIs pour identifier le protocole et l'emplacement à analyser. Si aucun protocole n'est utilisé, l'argument d'analyse est traité comme un chemin vers le fichier ou le répertoire sur le système local.
.. image:: files/imgs/aura_scan.png
Comparer des paquets ::
docker run -ti --rm sourcecodeai/aura:dev diff pypi://requests pypi://requests2
.. image:: docs/source/_static/imgs/aura_diff.png
Trouver les paquets typosquattés les plus populaires (vous devez d'abord exécuter aura update pour télécharger le jeu de données) ::
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
Bien qu'il existe d'autres outils avec des fonctionnalités qui chevauchent celles d'Aura, comme Bandit, dlint, semgrep, etc., l'objectif de ces alternatives est différent, ce qui impacte leurs fonctionnalités et leur utilisation. Ces alternatives sont principalement destinées à être utilisées de manière similaire aux linters, intégrées dans les IDE, exécutées fréquemment pendant le développement, ce qui rend important de minimiser les faux positifs et de fournir des explications actionnables claires dans les cas idéaux.
Aura, en revanche, rapporte le comportement du code, les anomalies et les vulnérabilités avec autant d'informations que possible, au prix d'un plus grand nombre de faux positifs. De nombreuses choses rapportées par Aura ne sont pas nécessairement exploitables par un utilisateur, mais elles en disent long sur le comportement du code, comme les communications réseau, l'accès à des fichiers sensibles ou l'utilisation de mécanismes associés à l'obfuscation indiquant un code malveillant possible. En collectant ce type de données et en les agrégeant, Aura peut être comparé en termes de fonctionnalités à d'autres systèmes de sécurité comme les antivirus, les IDS ou les pare-feu, qui effectuent essentiellement la même analyse mais sur un type de données différent (communications réseau, processus en cours, etc.).
Voici un aperçu rapide des différences entre Aura et les autres linters et outils SAST similaires :
# nosec qui supprime l'alerte à cet endroit.Le framework Aura est sous licence GPL-3.0. Les jeux de données produits à partir d'analyses globales utilisant Aura sont publiés sous licence CC BY-NC 4.0. Utilisez la citation suivante lorsque vous utilisez Aura ou les données produites par Aura dans le cadre de recherches :
::
@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