
모듈식 멀웨어 분석 아티팩트 수집 및 상관 관계 프레임워크
Subparse는 Josh Strochein, Aaron Baker, Odin Bernstein이 개발한 모듈형 프레임워크입니다. 이 프레임워크는 악성코드 파일을 파싱하고 인덱싱하며, 파싱 과정에서 발견된 정보를 검색 가능한 웹 뷰어로 제공하도록 설계되었습니다. 프레임워크는 모듈형으로, 핵심 파싱 엔진, 파싱 모듈, 그리고 악성코드 인덱스에 추가 정보를 제공하는 다양한 강화 모듈(enricher)로 구성됩니다. 프레임워크의 주요 입력 값은 악성코드 파일의 디렉터리이며, 핵심 파싱 엔진 또는 사용자가 지정한 파싱 엔진이 이를 파싱한 후 사용자가 지정한 강화 엔진의 추가 정보를 적용한 뒤, 파싱된 정보를 Elasticsearch 인덱스에 색인합니다. 수집된 정보는 웹 뷰어를 통해 검색 및 조회할 수 있으며, 어떤 파일에서든 수집된 모든 값을 기준으로 필터링할 수 있습니다. 현재 3개의 파싱 엔진(기본 파싱 엔진: PEParser, OLEParser, ELFParser)과 2개의 강화 엔진(ABUSEEnricher, CAPEEnricher)이 있습니다.
Subparse를 사용하려면 먼저 몇 가지 필수/권장 프로그램을 설치하고 설정해야 합니다.
| 소프트웨어 | 상태 | 링크 |
|---|---|---|
| Docker |
필수/권장 소프트웨어를 시스템에 설치한 후, Subparse를 설치하기 위해 몇 가지 추가 단계가 필요합니다.
sudo get apt install build-essential pip3 install -r ./requirements.txt
docker-compose up
참고: 이미지 다운로드와 Subparse에 필요한 컨테이너 설정으로 인해 시간이 다소 소요될 수 있습니다.
subparse/parser/subparse.py에서 사용 가능한 명령줄 옵션:
Subparse 파서의 결과를 보려면 localhost:8080으로 이동하세요. 사이트에 접속하는 데 문제가 있으면 Docker에서 컨테이너가 실행 중인지, 그리고 포트 8080에서 사이트에 접근을 방해하는 다른 프로세스가 없는지 확인하세요.
파서가 실행되기 전에 파일 형식과 관계없이 샘플에 대한 일반 정보가 수집됩니다. 이 정보에는 다음이 포함됩니다.
파서는 파일 형식이 일치하는 샘플에 대해서만 실행됩니다. 예를 들어, PE 파일은 파일 형식이 PEParser가 검사할 수 있는 형식과 일치하므로 기본적으로 PEParser가 실행됩니다.
이 모듈은 선택 사항이며, -e | --enrichers 플래그를 통해 명령줄에서 지정한 경우에만 실행됩니다.
Subparse의 웹 뷰는 CSS에 Bootstrap을 사용하여 구축되었습니다. 따라서 자체 사용자 정의 파서/강화 모듈 Vue.js 파일을 개발할 때 Bootstrap CSS를 사용할 수 있습니다. 시작을 돕기 위해 각각에 대한 예제를 제공했으며, 개발 과정을 단순화하고 정보 표시 방식을 표준화하기 위해 몇 가지 사용자 정의 위젯도 구현했습니다. 모든 Vue.js 파일은 사용자 정의 파서/강화 모듈의 정보를 동적으로 표시하는 데 사용되며, 데이터의 템플릿 역할을 합니다.
참고: 클래스 이름과 파일 이름의 명명 규칙을 엄격히 준수해야 합니다. 사용자 정의 파서/강화 모듈이 실행되지 않는 문제가 발생할 경우 가장 먼저 확인해야 할 사항입니다. 파서/강화 모듈의 명명 규칙은 모든 파일과 클래스 이름에서 동일한 이름을 사용해야 합니다.
로거 객체는 기본 Python 로거의 싱글톤 구현입니다. 자세한 사용법은 공식 문서를 참조하세요. Subparse에서는 출력을 위해 다음 로깅 레벨만 사용하는 것을 권장합니다.
| 필수 |
| 설치 가이드 |
| Python3.8.1 | 필수 | 설치 가이드 |
| Pyenv | 권장 | 설치 가이드 |
| 인자 | 대체 | 필수 | 설명 |
|---|
| -h | --help | 아니요 | 도움말 메뉴 표시 |
| -d SAMPLES_DIR | --directory SAMPLES_DIR | 예 | 파싱할 샘플 디렉터리 |
| -e ENRICHER_MODULES | --enrichers ENRICHER_MODULES | 아니요 | 추가 파싱에 사용할 강화 모듈 |
| -r | --reset | 아니요 | 구성된 Elasticsearch 클러스터의 모든 데이터 초기화/삭제 |
| -v | --verbose | 아니요 | 자세한 명령줄 출력 표시 |
| -s | --service-mode | 아니요 | 서비스 모드로 진입하여 처리 중 SAMPLES_DIR에 샘플 추가 가능 |