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

7.0 KiB
Raw Permalink Blame History

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 生成