0Pricing
Cyber Security Academy · 课时

用于恶意软件检测的 YARA 规则

根据字符串、字节模式和文件结构编写 YARA 规则,以检测恶意软件家族。

用于恶意软件检测的 YARA 规则 是 CoddyKit 上的免费 Cyber Security Academy 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Cyber Security Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Cyber Security Academy 课程共包含 4 节课。

什么是 YARA

YARA 是一种专为恶意软件分类设计的模式匹配工具。规则通过组合字符串模式、字节序列和布尔条件来描述恶意软件家族。YARA 可以扫描文件、进程或内存,并报告匹配结果。

YARA 规则结构

一条规则包含三个部分:元数据(作者和日期等信息)、字符串(要查找的模式)以及条件(组合字符串的布尔逻辑)。规则会被编译成扫描器,以便快速扫描文件系统。

rule ExampleRule {
  meta:
    author = "analyst"
  strings:
    $a = "malicious_string"
    $b = { 4D 5A 90 00 }
  condition:
    $a and $b
}

字符串模式

YARA 支持三种字符串类型:纯文本字符串(带有不区分大小写、宽字符等修饰符)、带通配符的十六进制模式({ 4D 5A ?? ??)以及正则表达式(/pattern/)。宽字符模式用于处理 Windows 恶意软件中常见的 UTF-16 字符串。

十六进制模式和通配符

在十六进制模式中,使用 ?? 表示单字节通配符,使用 [n-m] 表示可变长度的跳跃。例如:{ 60 89 E5 31 C0 [4-8] 5D C3 } 可以匹配不同可变部分的 shellcode 存根。

条件逻辑

条件使用 and、or 和 not 组合字符串。使用 any of them、all of them 或 2 of ($a*) 可以实现灵活匹配。像 5 of ($s*) 这样的阈值条件,可以减少通用字符串造成的误报。

文件属性条件

YARA 可以检查文件大小(filesize < 1MB)、PE 头属性(pe.imphash())和入口点字节(uint16(0) == 0x5A4D)。PE 模块条件可以检测特定的编译器痕迹和链接器元数据。

根据行为分析编写规则

将静态分析和动态分析期间提取的字符串用作规则字符串。C2 地址、独特的互斥体名称、特定的错误消息或来自 shellcode 存根的字节序列,都可以构成强大且低 FP 的 YARA 字符串。

测试 YARA 规则

使用 yara rule.yar /path/to/sample 进行测试。使用干净文件语料库进行验证,以测量误报率。使用 --no-warnings 输出简洁结果,使用 -r 执行递归目录扫描。

yara -r rules/family.yar /malware_corpus/
yara -r rules/family.yar /System32/ 2>/dev/null

安全产品中的 YARA

YARA 规则可以在 ClamAV、OSSEC、Velociraptor、Splunk 和 EDR 平台中运行。将规则集中存放在 Git 仓库中,为规则进行版本管理,部署前进行同行评审,并跟踪命中统计数据,以停用价值较低的规则。

避免常见陷阱

过于通用的字符串会造成误报。过短的十六进制模式会匹配噪声。在部署前,务必使用有代表性的干净样本评估规则。尽可能使用 all of them 而不是 any of them,以提高精确度。

YARA 社区资源

YARA-Forge 汇总了高质量的社区规则。MalwareBazaar 等恶意软件仓库提供用于测试的样本。供应商在 GitHub 上发布的仓库(如 Mandiant 和 Kaspersky)会提供研究级规则,供您学习和改编。

知识检查

YARA 条件 2 of ($s*) 表示什么?

总结

YARA 规则结合字符串模式、字节序列和布尔条件来分类恶意软件家族。根据行为分析结果编写规则,使用干净语料库进行测试,并通过安全平台部署规则,可以构建可扩展的检测覆盖范围。

常见问题解答

「用于恶意软件检测的 YARA 规则」课时是免费的吗?

是的 — 「用于恶意软件检测的 YARA 规则」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Cyber Security Academy 课程的其余内容,请升级到 CoddyKit PRO。 Cyber Security Academy 课程共包含 4 节课。

「用于恶意软件检测的 YARA 规则」这节课中我会学到什么?

根据字符串、字节模式和文件结构编写 YARA 规则,以检测恶意软件家族。 你通过在浏览器中直接运行的动手代码来练习 Cyber Security Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Cyber Security Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Cyber Security Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。

「用于恶意软件检测的 YARA 规则」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Cyber Security Academy 课中编写并运行代码吗?

能。每节 Cyber Security Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 静态分析:字符串、哈希与 PE 头
  2. 沙箱中的动态分析
  3. 行为型 IOC:注册表、网络与文件痕迹
  4. 用于恶意软件检测的 YARA 规则
← 返回 Cyber Security Academy