
Project Aura: 보안 감사 및 코드 인트로스펙션

현재 개발 트렌드는 단순한 기능만 제공하거나 11줄의 코드로 구성된 패키지조차도 개발 단계에서 많이 사용하는 것입니다. 여기에 매우 자유로운 패키지 공개 정책이 결합되면서, 개발자를 대상으로 한 악성 공격이 증가하고 있습니다. 위협 행위자들은 여러 가지 접근 방식을 사용해 왔습니다:
이는 개발자가 스스로를 위험에 빠뜨릴 수 있는 기술의 몇 가지 예시에 불과합니다. 이러한 상황은 PyPI나 NPM과 같은 저장소에 업로드되는 내용에 대한 모니터링 프로세스가 없으며, 이전 사고들은 순전히 운으로 발견되었다는 사실에 의해 뒷받침됩니다. 우리의 목표는 이를 개선하는 것입니다.
우리는 대규모(예: 전체 PyPI 저장소)로 소스 코드를 스캔하여 변칙, 잠재적인 악의적 의도 및 취약점을 찾도록 설계된 프레임워크를 만들었습니다. 이 프레임워크는 개발자가 패키지를 설치할 때나 임의의 파일/디렉토리 세트에 대해 주문형으로 소스 코드를 스캔할 수 있도록 설계되었습니다. 현재 구현은 Python 언어와 PyPI를 대상으로 하지만, 다른 언어(예: Javascript 및 NPM)를 포함할 수 있는 기능을 제공하도록 설계되었습니다.
사용 사례는 다음과 같지만 이에 국한되지 않습니다:
고도로 최적화된 하이브리드 분석 엔진이 이를 가능하게 합니다. 분석은 코드 실행 없이 정적 코드 분석을 사용하여 완전히 안전한 환경에서 수행됩니다. Aura 코어 엔진은 소스 코드에서 파싱된 AST 트리를 분석하고, 행동 분석 및 코드 실행 흐름을 수행합니다. 엔진은 또한 상수 전파, 폴딩 또는 정적 평가와 같은 일련의 규칙을 사용하여 AST 트리를 다시 작성하는 기능을 지원합니다; 이는 컴파일러가 코드를 최적화하는 데 사용하는 기술 집합입니다. 이러한 이유로 이 분석 접근 방식은 "하이브리드"라고 불리며, 완전히 안전한 부분 평가를 통해 정적 분석을 강화하여 더 간단한 난독화 메커니즘을 무력화할 수 있습니다.
아래에서 Aura AST 변환 엔진이 인식하는 다양한 소스 코드 "난독화" 기술의 예시를 볼 수 있습니다:

프레임워크에 대해 배우고 사용을 시작하려면 설치, 구성 및 사용법 문서를 읽어보세요.
Aura의 핵심 부분은 변칙 또는 잠재적 취약점에 대한 소스 코드 분석입니다. Aura에는 setup 스크립트에서 eval 사용과 같은 변칙을 찾는 여러 내장 분석기가 있습니다; 다른 분석기는 파일 시스템 구조(비소스 코드)를 살펴보고, 예를 들어 자격 증명 유출, 하드코딩된 API 토큰 등을 찾습니다. 이러한 분석기는 히트라고 하는 것을 생성하며, 이는 발견된 변칙을 정의하고 스캔된 데이터의 보안 아우라를 계산하는 데 사용되는 점수를 포함할 수도 있습니다. 제시된 변칙은 입력 데이터의 기능에 기반하여 합리적인 판단을 하는 것이 좋습니다. 예를 들어, requests 라이브러리에서 네트워크 관련 호출이 있는 것은 완전히 정상이지만, 이미지 처리 라이브러리가 네트워크를 통해 데이터를 전송하는 것은 예상되지 않습니다. 또한 대규모 저장소 스캔이나 다른 제품과의 통합에 적합한 JSON 형식으로 데이터를 출력하는 기능도 지원합니다. 다른 구성 요소에 대한 설명 및 사용법은 문서를 참조하세요.


이 프로젝트는 GPLv3 라이선스에 따라 제공됩니다 – 자세한 내용은 LICENSE.txt 파일을 참조하세요. 이 프레임워크의 일부에는 r2c 플랫폼, libraries.io 등과 같은 다른 제품과의 (선택적) 통합이 포함되어 있으며, 이는 해당 제품의 라이선스 및 사용 약관의 적용을 받습니다.