
Auditing del codice sorgente Python e analisi statica su larga scala
.. 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 è un framework di analisi statica sviluppato in risposta alla minaccia sempre crescente di pacchetti malevoli e codice vulnerabile pubblicati su PyPI.
Obiettivi del progetto:
Elenco delle funzionalità:
Non hai trovato quello che cercavi? L'architettura di Aura è basata su un robusto sistema di plugin, dove puoi personalizzare quasi tutto, da un insieme di analizzatori di dati, protocolli di trasporto a formati di output personalizzati.
::
# Via pip:
pip install aura-security[full]
# or build from source/git
poetry install --no-dev -E full
Oppure usa un'immagine docker precompilata sourcecodeai/aura:dev
::
docker run -ti --rm sourcecodeai/aura:dev scan pypi://requests -v
Aura utilizza i cosiddetti URI per identificare il protocollo e la posizione da scansionare; se non viene utilizzato alcun protocollo, l'argomento di scansione viene trattato come un percorso verso un file o una directory sul sistema locale.
.. image:: files/imgs/aura_scan.png
Diff pacchetti::
docker run -ti --rm sourcecodeai/aura:dev diff pypi://requests pypi://requests2
.. image:: docs/source/_static/imgs/aura_diff.png
Trova i pacchetti typosquatting più popolari (devi eseguire aura update per scaricare prima il dataset)::
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
Sebbene esistano altri strumenti con funzionalità che si sovrappongono a quelle di Aura, come Bandit, dlint, semgrep, ecc., l'attenzione di queste alternative è diversa, il che influisce sulla funzionalità e sul loro utilizzo. Queste alternative sono principalmente pensate per essere utilizzate in modo simile ai linter, integrate negli IDE, eseguite frequentemente durante lo sviluppo, il che rende importante minimizzare i falsi positivi e fornire spiegazioni chiare e attuabili nei casi ideali.
Aura, d'altra parte, segnala il comportamento del codice, le anomalie e le vulnerabilità con quante più informazioni possibili, a costo di falsi positivi. Ci sono molte cose segnalate da Aura che non sono necessariamente attuabili da un utente, ma che dicono molto sul comportamento del codice, come la comunicazione di rete, l'accesso a file sensibili o l'uso di meccanismi associati all'offuscamento che indicano un possibile codice malevolo. Raccogliendo questo tipo di dati e aggregandoli insieme, Aura può essere paragonato per funzionalità ad altri sistemi di sicurezza come antivirus, IDS o firewall, che essenzialmente eseguono la stessa analisi ma su un diverso tipo di dati (comunicazione di rete, processi in esecuzione, ecc.).
Ecco una rapida panoramica delle differenze tra Aura e altri linter e strumenti SAST simili:
# nosec che sopprimeranno l'avviso in quella posizione.Il framework Aura è concesso in licenza GPL-3.0. I dataset prodotti da scansioni globali con Aura sono rilasciati sotto la licenza CC BY-NC 4.0. Utilizza la seguente citazione quando usi Aura o dati prodotti da Aura nella ricerca:
::
@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