核心功能: - 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
7.0 KiB
7.0 KiB
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 载荷 | 是 | |
| 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 嵌入、ActiveXObjectPool、公式注入=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写入、systemdunit。 - 挖矿 / 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 生成