Files
MeshSate/YARA检测范围_L2B.md
zhaolei 16f134e328 feat: MeshSafe 文件摆渡安全卫士 v1.0 初始提交
核心功能:
- 6 层检测管线: L0 结构分析 → L1 ClamAV → L2 文档深度检测 → L3 关键词匹配 → L4 YARA → L5 PE/二进制
- FastAPI + PostgreSQL + Redis + Docker Compose 架构
- 客户端 HMAC-SHA256 签名鉴权 + 限流 + 幂等性
- 控制台 UI (登录/Dashboard/诊断中心/策略管理/任务列表/测试中心/产品介绍页)
- 三层诊断定时器 (error_scan 30s / db_aggregate 30s / container_check 5min)

并发与稳定性修复:
- 诊断定时器 Redis 时间槽位锁 (多 worker 同一槽位只有一个执行)
- JSONL 存储 fcntl 跨进程排他锁 + 容错解码 + 原子重写
- 移除 SQLite fallback, 统一 PostgreSQL
- API_CLIENTS 脱敏为环境变量, .env 已 .gitignore
2026-10-28 19:07:11 +08:00

103 lines
7.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# YARA 检测范围说明(L2B 层)
> 本文档只界定 L2B 层 YARA 引擎的检测范围:要覆盖哪些威胁、靠什么特征锚定、哪里容易误报。不含其它防御层与实现代码,可直接作为规则设计依据与验收清单。
---
## 一、YARA 定位与边界
YARA 是基于字节 / 字符串 / 结构特征的模式匹配,强项是已知家族的变体、可疑特征组合、静态可提取的载荷。
- **擅长**:已知家族变体、可疑 API / 字符串组合、文档与脚本类静态载荷。
- **不擅长**:纯多态加壳、纯运行时行为、加密封装(这些交给 L1 杀毒库与 L3 沙箱)。
- **设计目标**:补齐 ClamAV 特征库更新慢的盲区,并覆盖文档 / 脚本这类杀毒库不敏感的载体。
核心原则:单一 API 或字符串命中不阻断,要求"特征组合"才判高危,否则误报率失控。
---
## 二、检测范围总览(9 大类)
| 编号 | 覆盖大类 | 检查对象 | YARA 主力程度 |
|---|---|---|---|
| C1 | Windows PE 恶意程序 | .exe / .dll / .sys、DLL 劫持 | 是 |
| C2 | 脚本木马 | .ps1 / .vbs / .js / .bat / .hta / .lnk | 是 |
| C3 | Webshell / 内存马 | .jsp/.jspx/.php/.asp/.aspx、反序列化 payload | 是 |
| C4 | Office 文档载荷 | .doc/.xls/.ppt(宏 / DDE) | 是 |
| C5 | PDF 载荷 | .pdf | 是 |
| C6 | 压缩包 / 嵌套展开 | .zip/.rar/.7z/.cab/.iso | 辅助 |
| C7 | Linux / 跨平台后门 | ELF / Shell / Python / 计划任务 | 是 |
| C8 | 勒索 / 挖矿专项 | 通用载体 | 是 |
| C9 | 壳 / 签名 / 结构异常 | PE 结构元数据 | 是 |
---
## 三、逐类详细范围
### C1 Windows PE 恶意程序
- **防**:下载器、远控(RAT)、注入器、Loader、服务后门。
- **锚点方向**:危险导入 API 组合(`URLDownloadToFile` / `InternetOpen` / `WinHttp*` + `CreateRemoteThread` / `WriteProcessMemory` / `VirtualAllocEx` + `RegSetValueEx` / `schtasks` / 服务 API);可疑字符串(C2 URL/IP、互斥体 Mutex 名、隐藏进程标志 `CREATE_NO_WINDOW`)。
- **关键原则**:必须"网络 + 注入 / 持久化"特征组合命中才报高危。
- **范围须含**:DLL 侧加载、白利用二进制(LOLBins)调用特征。
### C2 脚本木马
- **防**:无文件落地、PowerShell 下载执行、混淆脚本。
- **锚点方向**:`-enc` / `-e`(Base64 编码命令)、`FromBase64String`、`IEX` / `Invoke-Expression`、`DownloadString`、`New-Object Net.WebClient`、`-w hidden` / `-nop`;`mshta` / `rundll32` / `regsvr32` / `certutil -decode` 等 LOLBin 组合;VBS 的 `CreateObject("Wscript.Shell")` + `Run`;HTA 里的 `<script>` + ActiveX。
- **专项**:编码 / 混淆还原特征(超长 Base64 串、字符串拼接、`char[]` 逐字符构造)。
### C3 Webshell / 内存马(重点范围)
- **JSP/JSpx**:`Runtime.getRuntime().exec`、`ProcessBuilder`、`InputStreamReader` + 请求参数取值、`javax.crypto` 解密后执行、反射 `forName` + `getMethod`、冰蝎 / 哥斯拉 / antsword 加密通道特征。
- **PHP**:`eval` / `assert` / `create_function` / `preg_replace(/e)`、`$_GET/POST/REQUEST` 直接进执行函数、`base64_decode` + `eval`、变量变形、`str_rot13` / `gzinflate` 多层解码。
- **ASP / .NET**:`Execute` / `Eval` / `Server.CreateObject("Wscript.Shell")`、`Process.Start`、反射 `Activator.CreateInstance`。
- **内存马**:注入 Filter / Listener / Interceptor / Valve 的关键类名与包名(`javax.servlet.Filter`、`StandardContext`、`addFilterDef`、`ApplicationFilterConfig`)、Agent / Instrumentation 注入痕迹。
- **反序列化载荷**:CommonsCollections / Gadgets 类链关键字、`ysoserial` 相关类名。
### C4 Office 文档载荷
- **VBA 宏**:`AutoOpen` / `AutoExec` / `Document_Open` 自动执行、`Shell` / `CreateObject` / `Wscript.Shell` / `MSXML2.XMLHTTP`、`Environ` + `cmd`。
- **其他载荷**:DDE / DDEAUTO、`FieldCode`、`INCLUDEPICTURE` 外链、OLE 嵌入、ActiveX `ObjectPool`、公式注入 `=cmd|` / `|MSDSNC` / `=WEBSERVICE`。
- **范围须含**:`.docm` / `.xlsm` / `.dotm` 等带宏标记文件强制深检。
### C5 PDF 载荷
- **自动执行结构**:`/OpenAction` / `/AA` / `/JS` / `/JavaScript` + `app.launchURL` / `eval` / `util`;嵌入附件 `/EmbeddedFile` / `/Launch`。
- **漏洞利用特征**:超长 `/Length`、异常 `/Filter` 链、`/ObjStm` 混淆、`collab` / `getAnnots` 触发。
### C6 压缩包 / 嵌套展开(在解压产物上跑)
- **范围**:递归解包后对内部每个文件套用 C1–C5 规则;对压缩包本身检测嵌套层数过深、同名伪装(`photo.jpg.exe` 解包后二次校验)。
- **交接面**:YARA 负责解出来的内容,L0 extractor 负责包结构炸弹。
### C7 Linux / 跨平台后门
- **反弹 Shell**:`/dev/tcp/`、`bash -i`、`nc -e`、`socat`、`python pty`、`perl -e 'exec'`。
- **持久化**:`crontab` / `/etc/cron`、`.bashrc` / `.ssh/authorized_keys` 写入、`systemd` unit。
- **挖矿 / Rootkit**:`xmrig` / `stratum+tcp`、`/tmp/.X11-unix` 隐藏目录、`LD_PRELOAD`、内核模块加载特征。
### C8 勒索 / 挖矿专项
- **勒索**:加密 API 组合(`CryptEncrypt` / `CryptDeriveKey` / `BCrypt*`)+ 大量文件遍历 / 删除卷影(`vssadmin delete` / `wmic shadowcopy`)+ 勒索信文件名变体(`HOW_TO_RECOVER` / `RESTORE_FILES` 等)。
- **挖矿**:矿池域名 / 端口、`-o stratum`、`--donate-level`、高 CPU 循环特征字符串。
### C9 壳 / 签名 / 结构异常(元数据型规则)
- **范围**:PE 段名异常(乱码段名、`.pdata` 缺失)、入口点落在非代码段、高熵 `.text` 段、无签名却调用大量网络 API、证书链断裂 / 自签名、时间戳伪造。
- **价值**:作为"送沙箱的触发器",命中即升级为 L3 动态分析。
---
## 四、范围之外(明确划走,YARA 不硬扛)
- 加密 / 加壳后无明文特征 → 靠沙箱或 CDR。
- 已知病毒的精确家族匹配 → 优先 ClamAV 库,YARA 只做补充。
- 纯行为(如"程序遍历全盘加密")→ 靠沙箱 / EDR,YARA 只抓静态可锚的命令与字符串。
- 敏感信息泄露 → 属 DLP(如 Presidio),不属于 YARA 安全检测范围。
---
## 五、规则工程化范围(让范围可维护)
- **元数据强制字段**:`risk_level`、`category`(对应 C1–C9)、`false_positive_rate`(低 / 中 / 高,决定是否阻断还是仅告警)、`reference`。
- **分级放行策略**:`high` / `critical` 可阻断;`medium` 告警 + 进沙箱;`low` 仅记录。避免范围铺得越全、误杀越多。
- **命名空间分组**:按 C1–C9 分文件(`pe.yar` / `script.yar` / `webshell.yar` / `doc.yar` / `pdf.yar` / `linux.yar` / `ransom.yar` 等),便于灰度和单独更新。
- **性能约束纳入范围**:正则 / 通配规则限制扫描文件大小与超时,大文件只在头部 + 样本区匹配,防止 YARA 成为 L2B 的时延瓶颈。
- **持续更新机制**:新家族 / 新工具(新 Webshell 工具、新 LOLBin)→ 补规则,与 ClamAV 库一样纳入库运维节奏。
---
内容由 AI 生成