
アルゴリズムによるPE難読化解除ツール、シャノンエントロピーレーダー、インシデントトリアージエンジン
Windows PEのトリアージ、スライディングウィンドウによるエントロピー分析、およびローダーやクリプターに隠されたペイロードの検出を行う高速CLIツールです。
___________ __ _________ __ .__
\_ _____/ _____/ |________ ____ ______ ___.__./ _____// |________|__|_____
| __)_ / \ __\_ __ \/ _ \\____ < | |\_____ \\ __\_ __ \ \____ \
| \ | \ | | | \( <_> ) |_> >___ |/ \| | | | \/ | |_> >
/_______ /___| /__| |__| \____/| __// ____/_______ /|__| |__| |__| __/
\/ \/ |__| \/ \/ |__|
ほとんどのクイックトリアージツールは、PEセクション全体またはファイル全体にわたってシャノンエントロピーを計算します。攻撃者は現代のローダーにおいて、この平均化効果を悪用します:
.rdataセクション内に隠すことで、セクション全体のエントロピーを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
シャノンエントロピーは、1バイトあたり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を参照してください。