
Аудит исходного кода Python и статический анализ в больших масштабах
.. 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 — это фреймворк для статического анализа, разработанный в ответ на постоянно растущую угрозу вредоносных пакетов и уязвимого кода, публикуемого на PyPI.
Цели проекта:
Список возможностей:
Не нашли то, что искали? Архитектура Aura основана на надежной системе плагинов, где вы можете настроить почти все, начиная от набора анализаторов данных и протоколов передачи до пользовательских форматов вывода.
::
# Via pip:
pip install aura-security[full]
# or build from source/git
poetry install --no-dev -E full
Или просто используйте предварительно собранный docker-образ sourcecodeai/aura:dev
::
docker run -ti --rm sourcecodeai/aura:dev scan pypi://requests -v
Aura использует так называемые URI для идентификации протокола и местоположения для сканирования. Если протокол не указан, аргумент сканирования интерпретируется как путь к файлу или каталогу в локальной системе.
.. image:: files/imgs/aura_scan.png
Сравнение пакетов::
docker run -ti --rm sourcecodeai/aura:dev diff pypi://requests pypi://requests2
.. image:: docs/source/_static/imgs/aura_diff.png
Поиск наиболее популярных пакетов с опечатками (сначала нужно выполнить aura update для скачивания набора данных)::
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
Хотя существуют и другие инструменты с функциональностью, пересекающейся с Aura, такие как Bandit, dlint, semgrep и т.д., фокус этих альтернатив отличается, что влияет на функциональность и способы их использования. Эти альтернативы в основном предназначены для использования аналогично линтерам, интегрированы в IDE, часто запускаются во время разработки, что делает важным минимизацию ложных срабатываний и предоставление отчетов с четкими практически применимыми объяснениями в идеальных случаях.
С другой стороны, Aura сообщает о поведении кода, аномалиях и уязвимостях, предоставляя как можно больше информации за счет ложных срабатываний. Aura сообщает о многих вещах, которые не обязательно являются практически применимыми для пользователя, но они многое говорят о поведении кода, например, о сетевом взаимодействии, доступе к конфиденциальным файлам или использовании механизмов, связанных с обфускацией, что указывает на возможный вредоносный код. Собирая такие данные и агрегируя их, Aura по функциональности можно сравнить с другими системами безопасности, такими как антивирусы, IDS или брандмауэры, которые по сути выполняют тот же анализ, но на других типах данных (сетевое взаимодействие, запущенные процессы и т.д.).
Вот краткий обзор различий между Aura и другими подобными линтерами и инструментами SAST:
# nosec, которые подавляют предупреждение в этой позиции.Фреймворк Aura лицензирован под GPL-3.0. Наборы данных, полученные в результате глобального сканирования с использованием Aura, выпускаются под лицензией CC BY-NC 4.0. Используйте следующую цитату при использовании Aura или данных, полученных с помощью Aura, в исследованиях:
::
@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