arivu14/Soc-Malware-Triage
GitHub: arivu14/Soc-Malware-Triage
一个为SOC家庭实验室设计的静态恶意软件鉴别工具,通过行为模式检测和YARA规则对可疑脚本进行威胁评分。
Stars: 0 | Forks: 0
# SOC 恶意软件鉴别工具
### 静态分析扫描器 | SOC 家庭实验室项目




## 项目简介
这是一个为 SOC 家庭实验室环境构建的**静态恶意软件鉴别工具**。
它分析可疑脚本文件,并根据已知的恶意行为模式对其进行评分——**无需执行文件**。
该工具旨在理解和检测真实攻击者使用的混淆技术,并映射到 MITRE ATT&CK 框架。
## 为什么构建这个项目
大多数 SOC L1 工具都是黑盒——你输入一个文件,得到一个判定结果。
我想理解**为什么**某些模式是恶意的,而不仅仅是知道它们是恶意的。所以我从头构建了一个扫描器,故意用逃避技术破坏它,然后修复它。这个项目记录了整个学习循环。
## 项目结构
```
soc-malware-triage/
│
├── triage.sh ← Main scanner (run this)
│
├── samples/ ← 15 malware samples, one per technique
│ ├── sample_01_basic_base64.sh
│ ├── sample_02_hex_encoding.sh
│ ├── sample_03_double_encoding.sh
│ ├── sample_04_variable_splitting_plus.sh
│ ├── sample_05_variable_splitting_join.sh
│ ├── sample_06_variable_splitting_full.sh
│ ├── sample_07_reversed_strings.sh
│ ├── sample_08_external_fetch_curl.sh
│ ├── sample_09_external_fetch_download.sh
│ ├── sample_10_python_base64_exec.py
│ ├── sample_11_python_double_encoding.py
│ ├── sample_12_python_subprocess_eval.py
│ ├── sample_13_heredoc_obfuscation.sh
│ ├── sample_14_php_base64_exec.php
│ └── sample_15_combined_techniques.sh
│
├── yara_rules/ ← 8 YARA rules, one per technique
│ ├── rule_01_decode_functions.yar
│ ├── rule_02_execution_functions.yar
│ ├── rule_03_decode_execute_combo.yar
│ ├── rule_04_double_encoding.yar
│ ├── rule_05_variable_splitting.yar
│ ├── rule_06_external_fetch.yar
│ ├── rule_07_reversed_strings.yar
│ ├── rule_08_heredoc_payload.yar
│ └── yara_simulate.py ← Python YARA simulator (no install needed)
│
└── docs/
└── FINDINGS.md ← Detection results for all 15 samples
```
## 快速开始
```
# Clone the repo
git clone https://github.com/YOUR_USERNAME/soc-malware-triage
cd soc-malware-triage
# Make triage script executable
chmod +x triage.sh
# 扫描文件
./triage.sh samples/sample_01_basic_base64.sh
# Scan all samples at once
for f in samples/*; do echo "--- $f ---"; ./triage.sh "$f" | grep "VERDICT"; done
```
### 环境要求
- Bash 4.0+
- Python 3.6+ (用于 YARA 模拟)
- 可选: `yara` CLI 工具用于原生 YARA 扫描 (`sudo apt install yara`)
## 扫描器工作原理
扫描器对每个文件运行 **10 项基于行为的检查** + **8 条 YARA 规则**。
它**不执行**文件——完全是静态分析。
### 检测项
| 检查项 | 检测内容 | 重要性 |
|-------|---------|--------|
| 01 | 二进制/可执行文件身份 | 打包的恶意软件隐藏在可执行文件中 |
| 02 | 解码函数 (所有语言) | 编码-执行模式的前半部分 |
| 03 | 执行函数 (所有语言) | 编码-执行模式的后半部分 |
| 04 | 解码 + 执行组合 | #1 通用恶意软件指标 |
| 05 | 熵值测量 | 高熵值 = 混淆载荷 |
| 06 | 双重编码 | 嵌套 base64 绕过单次扫描器 |
| 07 | 变量分割 | 工具名称被分割成片段以绕过 grep |
| 08 | 外部获取 | 载荷位于远程服务器——文件看起来很干净 |
| 09 | 反转字符串 | 关键字倒写以绕过关键字搜索 |
| 10 | Heredoc 混淆 | 多行载荷绕过单行 grep |
### 威胁评分
每个警报都会向威胁分数增加加权分数:
| 分数 | 判定结果 |
|-------|---------|
| 70+ | 🔴 高风险 — 隔离并上报 |
| 40–69 | 🟡 中风险 — 人工审查 |
| 10–39 | 🟠 低风险 — 监控 |
| 0–9 | 🟢 干净 |
### 多语言支持
该工具检测 5 种语言的恶意模式:
| 行为 | Bash | Python | PHP | JavaScript | Perl |
|-----------|------|--------|-----|------------|------|
| Base64 decode | `base64 -d` | `b64decode()` | `base64_decode()` | `atob()` | `decode_base64()` |
| Execute command | `\| sh` | `os.system()` | `system()` | `eval()` | `system()` |
| Hex decode | `\x` escape | `bytes.fromhex()` | `hex2bin()` | `fromCharCode()` | `unpack()` |
| Remote fetch | `curl/wget` | `urllib/requests` | `file_get_contents()` | `fetch()` | `LWP` |
## 恶意软件样本说明
所有 15 个样本都使用**无害载荷** (`echo 'Hacked!'`),但展示了
真实的攻击者技术。每个文件都记录了技术、MITRE ID、难度和说明。
| 样本 | 技术 | 语言 | 难度 |
|--------|-----------|----------|------------|
| 01 | Basic base64 | Bash | 低 |
| 02 | Hex encoding `\x` | Bash | 低 |
| 03 | Double base64 encoding | Bash | 中 |
| 04 | Variable splitting `+=` | Bash | 中 |
| 05 | Variable splitting `${V1}${V2}` | Bash | 中-高 |
| 06 | Variable splitting — hiding interpreter too | Bash | 高 |
| 07 | Reversed strings `echo "hsab" \| rev` | Bash | 中 |
| 08 | External fetch `curl URL \| sh` | Bash | 高 |
| 09 | External fetch download+execute | Bash | 高 |
| 10 | Python base64 + os.system | Python | 中 |
| 11 | Python double encoding | Python | 中-高 |
| 12 | Python subprocess + eval | Python | 中-高 |
| 13 | Heredoc payload obfuscation | Bash | 中-高 |
| 14 | PHP base64 + system() | PHP | 中 |
| 15 | Combined — 4 techniques chained | Bash | 极高 |
## YARA 规则
包含 8 条 YARA 规则,每种混淆技术一条。
它们遵循与 Bash 检查相同的逻辑,但采用真实 SOC 工具使用的
**行业标准 YARA 格式**。
原生运行 (需要安装 `yara`):
```
# Run one rule
yara yara_rules/rule_03_decode_execute_combo.yar samples/sample_10_python_base64_exec.py
# Run all rules against a file
yara yara_rules/*.yar suspicious_file.sh
# 扫描整个目录
yara yara_rules/*.yar samples/
```
如果未安装 YARA,`triage.sh` 会自动使用 `yara_simulate.py`
用 Python 复制相同的逻辑——无需安装。
## MITRE ATT&CK 映射
| 技术 ID | 名称 | 样本 |
|-------------|------|---------|
| T1027 | Obfuscated Files or Information | 01, 02, 04, 05, 06, 07, 13 |
| T1027.001 | Binary Padding / Layered Obfuscation | 03, 11 |
| T1059 | Command and Scripting Interpreter | 01–09, 13 |
| T1059.006 | Python Scripting | 10, 11, 12 |
| T1059.004 | Unix Shell via PHP | 14 |
| T1105 | Ingress Tool Transfer | 08, 09, 15 |
| T1140 | Deobfuscate/Decode Files | 01–15 |
## 检测结果
所有 15 个样本均被评为高风险,威胁评分从 85 到 255 不等:
```
sample_01_basic_base64.sh Score: 175 HIGH RISK
sample_02_hex_encoding.sh Score: 120 HIGH RISK
sample_03_double_encoding.sh Score: 230 HIGH RISK
sample_04_variable_splitting.sh Score: 115 HIGH RISK
sample_05_variable_splitting.sh Score: 155 HIGH RISK
sample_06_variable_splitting.sh Score: 90 HIGH RISK
sample_07_reversed_strings.sh Score: 115 HIGH RISK
sample_08_external_fetch_curl.sh Score: 130 HIGH RISK
sample_09_external_fetch_dl.sh Score: 85 HIGH RISK
sample_10_python_base64.py Score: 230 HIGH RISK
sample_11_python_double.py Score: 255 HIGH RISK
sample_12_python_subprocess.py Score: 240 HIGH RISK
sample_13_heredoc.sh Score: 175 HIGH RISK
sample_14_php_base64.php Score: 85 HIGH RISK
sample_15_combined.sh Score: 180 HIGH RISK
```
## 已知局限性
这是一个**静态分析**工具。它无法捕获:
- **无文件恶意软件** — 存在于内存中,从不接触磁盘
- **加密载荷** — 没有密钥内容不可读
- **被滥用的合法工具** — `curl` 和 `base64` 也用于正常脚本
- **新颖的混淆** — 尚未在规则集中的新技术
真实的 SOC 环境会叠加使用:
- EDR (行为运行时检测)
- SIEM (跨事件关联)
- Sandbox (受控沙箱执行)
## 构建心得
最大的收获:**攻击者不改变目标,只改变形式**。
我们检测到的每种混淆技术都共享相同的基础行为:
1. 隐藏载荷 (编码)
2. 在运行时解码
3. 执行
无论有多少层混淆——反转字符串、分割变量、十六进制编码、双重 base64——行为链 解码 → 执行 总是
存在。这就是检测器的目标,而不是表面层次的关键字。
## 使用的工具
- Bash scripting
- Python 3 (YARA simulation)
- YARA (pattern matching engine)
- MITRE ATT&CK Framework (technique mapping)
## 作者
构建为 SOC 家庭实验室作品集项目的一部分。
灵感来源于蓝队行动中使用的真实鉴别工作流。
标签:AMSI绕过, Base64解码, Cloudflare, DAST, DNS信息、DNS暴力破解, DNS 反向解析, DNS枚举, IPv6支持, MITRE ATT&CK, Shell脚本分析, SOC家庭实验室, YARA规则, 云安全监控, 威胁检测, 安全运营中心, 应用安全, 恶意软件分析, 混淆检测, 结构化查询, 网络信息收集, 网络安全工具, 网络安全项目, 网络映射, 自动化安全, 静态分析