
대규모 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의 아키텍처는 강력한 플러그인 시스템을 기반으로 하여, 데이터 분석기 세트, 전송 프로토콜, 사용자 정의 출력 형식 등 거의 모든 것을 사용자 정의할 수 있습니다.
::
# pip로 설치:
pip install aura-security[full]
# 또는 소스/git에서 빌드
poetry install --no-dev -E full
또는 미리 빌드된 도커 이미지 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
Bandit, dlint, semgrep 등 Aura와 기능이 겹치는 다른 도구들도 있지만, 이들 대안의 초점은 달라서 기능과 사용 방식에 영향을 미칩니다. 이러한 대안들은 주로 린터와 유사하게 IDE에 통합되어 개발 중에 자주 실행되도록 설계되었으며, 따라서 거짓 양성(false positive)을 최소화하고 이상적인 경우 명확한 실행 가능한 설명과 함께 보고하는 것이 중요합니다.
반면 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