Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
도구/GitHubGitHub/jstrosch/subparse
Static AnalysisDynamic Analysis (Sandboxing)ForensicsInformation GatheringMalware AnalysisThreat Intelligence
GitHubjstrosch/subparse

subparse

모듈식 멀웨어 분석 아티팩트 수집 및 상관 관계 프레임워크

저장소 보기
56122년 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
웹사이트

subparse

Generic badge Generic badge Generic badge Generic badge Generic badge Generic badge Generic badge Generic badge

Subparse는 Josh Strochein, Aaron Baker, Odin Bernstein이 개발한 모듈형 프레임워크입니다. 이 프레임워크는 악성코드 파일을 파싱하고 인덱싱하며, 파싱 과정에서 발견된 정보를 검색 가능한 웹 뷰어로 제공하도록 설계되었습니다. 프레임워크는 모듈형으로, 핵심 파싱 엔진, 파싱 모듈, 그리고 악성코드 인덱스에 추가 정보를 제공하는 다양한 강화 모듈(enricher)로 구성됩니다. 프레임워크의 주요 입력 값은 악성코드 파일의 디렉터리이며, 핵심 파싱 엔진 또는 사용자가 지정한 파싱 엔진이 이를 파싱한 후 사용자가 지정한 강화 엔진의 추가 정보를 적용한 뒤, 파싱된 정보를 Elasticsearch 인덱스에 색인합니다. 수집된 정보는 웹 뷰어를 통해 검색 및 조회할 수 있으며, 어떤 파일에서든 수집된 모든 값을 기준으로 필터링할 수 있습니다. 현재 3개의 파싱 엔진(기본 파싱 엔진: PEParser, OLEParser, ELFParser)과 2개의 강화 엔진(ABUSEEnricher, CAPEEnricher)이 있습니다.

 

시작하기

소프트웨어 요구 사항

Subparse를 사용하려면 먼저 몇 가지 필수/권장 프로그램을 설치하고 설정해야 합니다.

소프트웨어상태링크
Docker

추가 요구 사항

필수/권장 소프트웨어를 시스템에 설치한 후, Subparse를 설치하기 위해 몇 가지 추가 단계가 필요합니다.

Python 요구 사항
Subparse의 프로세스가 의존하는 몇 가지 다른 패키지를 Python에 설치해야 합니다. Python 설정을 완료하려면 Subparse 설치 위치로 이동하여 *parser* 폴더로 들어가세요. Python 요구 사항을 설치하는 데 필요한 명령은 다음과 같습니다.
root@kitploit:~
sudo get apt install build-essential
pip3 install -r ./requirements.txt
Docker 요구 사항
Subparse는 백엔드와 웹 인터페이스에 Docker를 사용하므로, 프로그램을 사용하기 전에 Docker 컨테이너 설정을 완료해야 합니다. 이를 위해 Subparse 설치 위치의 루트 디렉터리로 이동하여 다음 명령으로 Docker 인스턴스를 설정하세요.
root@kitploit:~
docker-compose up

참고: 이미지 다운로드와 Subparse에 필요한 컨테이너 설정으로 인해 시간이 다소 소요될 수 있습니다.

 

설치 단계

  • 설치 단계

사용법

명령줄 옵션

subparse/parser/subparse.py에서 사용 가능한 명령줄 옵션:

결과 보기

Subparse 파서의 결과를 보려면 localhost:8080으로 이동하세요. 사이트에 접속하는 데 문제가 있으면 Docker에서 컨테이너가 실행 중인지, 그리고 포트 8080에서 사이트에 접근을 방해하는 다른 프로세스가 없는지 확인하세요.

 

수집되는 일반 정보

파서가 실행되기 전에 파일 형식과 관계없이 샘플에 대한 일반 정보가 수집됩니다. 이 정보에는 다음이 포함됩니다.

  • 샘플의 MD5 해시
  • 샘플의 SHA256 해시
  • 샘플 이름
  • 샘플 크기
  • 샘플의 확장자
  • 샘플의 파생 확장자

파서 모듈

파서는 파일 형식이 일치하는 샘플에 대해서만 실행됩니다. 예를 들어, PE 파일은 파일 형식이 PEParser가 검사할 수 있는 형식과 일치하므로 기본적으로 PEParser가 실행됩니다.

기본 모듈

ELFParser
ELF 파일에 대해 실행되는 기본 파싱 모듈입니다. 수집되는 정보:
  • 일반 정보
  • 프로그램 헤더
  • 섹션 헤더
  • 노트
  • 아키텍처 특정 데이터
  • 버전 정보
  • Arm Unwind 정보
  • 재배치 데이터
  • 동적 태그
OLEParser
OLE 및 RTF 형식 파일에 대해 실행되는 기본 파싱 모듈입니다. OLETools 패키지를 사용하여 데이터를 얻습니다. 수집되는 정보:
  • 메타 데이터
  • MRaptor
  • RTF
  • 시간
  • 지표
  • VBA / VBA 매크로
  • OLE 객체
PEParser
PE32 및 MS-Dos 파일 형식을 포함하거나 일치하는 PE 파일에 대해 실행되는 기본 파싱 모듈입니다. 수집되는 정보:
  • 섹션 코드 및 개수
  • 진입점
  • 이미지 베이스
  • 서명
  • 임포트
  • 익스포트

 

강화 모듈

이 모듈은 선택 사항이며, -e | --enrichers 플래그를 통해 명령줄에서 지정한 경우에만 실행됩니다.

기본 모듈

ABUSEEnricher
이 강화 모듈은 [Abuse.ch](https://abuse.ch/) API와 [Malware Bazaar](https://bazaar.abuse.ch)를 사용하여 subparse가 분석 중인 샘플에 대한 추가 정보를 수집한 후, 해당 정보를 집계하여 Elastic 데이터베이스에 저장합니다.
CAPEEnricher
이 강화 모듈은 CAPEv2 샌드박스 인스턴스와 통신하여 동적 분석을 통해 샘플에 대한 추가 정보를 수집합니다. 수집된 정보는 Kafka 메시징 서비스를 이용하여 백그라운드에서 처리된 후 Elastic 데이터베이스에 집계 및 저장됩니다.
STRINGEnricher
이 강화 모듈은 스마트 문자열 강화 모듈로, 샘플에서 잠재적으로 흥미로운 문자열을 파싱합니다. 찾는 문자열 범주는 다음과 같습니다: 오디오, 이미지, 실행 파일, 코드 호출, 압축 파일, 작업(Office 문서), IP 주소, IP 주소 + 포트, 웹사이트 URL, 명령줄 인자.
YARAEnricher
이 강화 모듈은 parser/src/enrichers/yara_rules에 위치한 사전 컴파일된 yara 파일을 사용합니다. 이 사전 컴파일된 파일에는 VirusTotal 및 YaraRulesProject의 규칙이 포함되어 있습니다.

 

사용자 정의 파서 및 강화 모듈 개발

Subparse의 웹 뷰는 CSS에 Bootstrap을 사용하여 구축되었습니다. 따라서 자체 사용자 정의 파서/강화 모듈 Vue.js 파일을 개발할 때 Bootstrap CSS를 사용할 수 있습니다. 시작을 돕기 위해 각각에 대한 예제를 제공했으며, 개발 과정을 단순화하고 정보 표시 방식을 표준화하기 위해 몇 가지 사용자 정의 위젯도 구현했습니다. 모든 Vue.js 파일은 사용자 정의 파서/강화 모듈의 정보를 동적으로 표시하는 데 사용되며, 데이터의 템플릿 역할을 합니다.

참고: 클래스 이름과 파일 이름의 명명 규칙을 엄격히 준수해야 합니다. 사용자 정의 파서/강화 모듈이 실행되지 않는 문제가 발생할 경우 가장 먼저 확인해야 할 사항입니다. 파서/강화 모듈의 명명 규칙은 모든 파일과 클래스 이름에서 동일한 이름을 사용해야 합니다.

  • Python 개발
  • Vue 개발
  • Vue 도우미


로깅

로거 객체는 기본 Python 로거의 싱글톤 구현입니다. 자세한 사용법은 공식 문서를 참조하세요. Subparse에서는 출력을 위해 다음 로깅 레벨만 사용하는 것을 권장합니다.

  • debug
  • warning
  • error
  • critical
  • exception
  • log
  • info


감사의 글

  • 이 연구와 모든 공동 저자는 NSA Grant H98230-20-1-0326의 지원을 받았습니다.
도구 다운로드
필수
설치 가이드
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에 샘플 추가 가능