
알고리즘 기반 PE 디오브푸스케이터, 섀넌 엔트로피 레이더, 인시던트 트리아지 엔진
Windows PE 트리아지, 슬라이딩 윈도우 엔트로피 분석, 그리고 로더와 크립터에 숨겨진 페이로드를 탐지하기 위한 빠른 CLI 도구입니다.
___________ __ _________ __ .__
\_ _____/ _____/ |________ ____ ______ ___.__./ _____// |________|__|_____
| __)_ / \ __\_ __ \/ _ \\____ < | |\_____ \\ __\_ __ \ \____ \
| \ | \ | | | \( <_> ) |_> >___ |/ \| | | | \/ | |_> >
/_______ /___| /__| |__| \____/| __// ____/_______ /|__| |__| |__| __/
\/ \/ |__| \/ \/ |__|
대부분의 신속한 트리아지 도구는 전체 PE 섹션 또는 전체 파일에 걸쳐 섀넌 엔트로피를 계산합니다. 공격자는 현대적인 로더에서 이 평균화 효과를 악용합니다:
.rdata 섹션 안에 20 KB의 암호화된 셸코드를 숨기면 섹션 전체 엔트로피가 5.5 미만으로 유지됩니다.0x90) 또는 반복 구분자와 교차 배치하면 점수가 정상 코드 수준으로 낮아집니다.UuidFromStringA) 또는 IPv4 주소(RtlIpv4StringToAddressA)로 변환하면 런타임 재조립 전까지 디스크 엔트로피가 약 4.0으로 유지됩니다.EntropyStrip은 하위 섹션 분석과 구조적 검사를 통해 이러한 사각지대를 해결합니다.
UuidFromString 및 RtlIpv4StringToAddress 스테이징 프리미티브와 포맷된 UUID 문자열 클러스터를 식별합니다.--yara [PATH]를 통한 사용자 정의 규칙을 통합합니다. 의존성 없는 실행을 위한 순수 Python 폴백 스캐너를 포함합니다.RT_RCDATA 페이로드를 추출합니다.--bazaar를 통한 선택적 해시 평판 조회로 악성코드 패밀리, 커뮤니티 태그, VirusTotal 탐지율을 분류하며, 기본적으로 포렌식 텔레메트리를 유출하지 않습니다.WIN_CERTIFICATE 디렉터리 경계와 NSIS 0xdeadbeef 헤더를 검증하여 서명된 소프트웨어와 설치 프로그램이 잘못 점수화되지 않도록 합니다.--dump를 사용하여 의심스러운 버퍼를 Ghidra 또는 x64dbg용으로 디스크에 직접 추출합니다.Windows, Linux 또는 macOS에서 Python 3.8+가 필요합니다.
pip install entropystrip
소스에서 설치:
git clone https://github.com/dwexi/entropystrip.git
cd entropystrip
pip install -e .
usage: entropystrip [-h] [-v] [-r] [--dump] [--deep] [-i] [--install]
[--uninstall] [--html HTML] [--json JSON]
[--yara [RULE_PATH]] [--bazaar] [--bazaar-key KEY]
[target]
EntropyStrip: PE De-obfuscator, Shannon Entropy Radar, and Incident Triage Engine
positional arguments:
target Path to Windows executable (.exe / .dll) or directory
options:
-h, --help show this help message and exit
-v, --version Show program's version number and exit
-r, --recursive Recursively scan subdirectories
--dump Carve high-entropy payloads to extracted_payloads/
--deep Deep forensic triage: MITRE ATT&CK mapping, entry point disassembly, hashes
-i, --interactive Launch interactive triage wizard
--install Install EntropyStrip globally to Windows PATH
--uninstall Uninstall EntropyStrip from Windows PATH
--html HTML Path to write standalone HTML report
--json JSON Path to write machine-readable JSON telemetry
--yara [RULE_PATH] Scan with YARA rules (uses bundled threats.yar by default, or custom file/dir)
--bazaar Query MalwareBazaar (abuse.ch) for sample hash intelligence and signatures
--bazaar-key KEY MalwareBazaar API Auth-Key (overrides MALWAREBAZAAR_API_KEY environment variable)
YARA 스캐닝으로 단일 바이너리 분석:
entropystrip target.exe --yara
사용자 지정 YARA 규칙으로 스캔하고 MalwareBazaar 위협 인텔리전스를 조회합니다:
entropystrip suspicious.exe --yara my_rules.yar --bazaar
MITRE ATT&CK 매핑 및 디스어셈블리를 통한 심층 포렌식 트리아지:
entropystrip suspicious.exe --deep
숨겨진 페이로드 버퍼와 내장 리소스 추출:
entropystrip suspicious.exe --dump
추출된 페이로드는 extracted_payloads/payload_<sha256>_sec<index>_<section>.bin에 기록됩니다.
독립형 HTML 보고서 내보내기:
entropystrip sample.exe --html report.html
자동화된 캠페인 클러스터링으로 전체 디렉터리 트리아지:
entropystrip "C:\IncidentTriage" -r --html incident_report.html
섀넌 엔트로피는 바이트당 0.00~8.00비트 범위에서 정보 밀도를 측정합니다:
| 엔트로피 범위 | 일반적인 콘텐츠 | 비고 |
|---|---|---|
0.00 - 2.00 | 제로 패딩, 희소 테이블 | 정렬 패딩, 초기화되지 않은 버퍼 |
2.00 - 5.50 | 표준 ASCII, 구성 파일 | 애플리케이션 메타데이터, 판독 가능한 문자열 |
5.50 - 6.60 | 네이티브 컴파일된 기계어 코드 | 표준 x86/x64 명령어 (.text) |
6.60 - 7.30 | 압축된 자산 | 비트맵, 아이콘, zlib/deflate 스트림 |
7.40 - 8.00 | 암호화된 암호문 | 암호화된 페이로드 또는 패킹된 셸코드 |
MIT 라이선스. 자세한 내용은 LICENSE를 참조하세요.