YARA 的用途
匹配文件与内存中的模式。
YARA 的用途 是 CoddyKit 上的免费 Cyber Security Academy 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Cyber Security Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Cyber Security Academy 课程共包含 4 节课。
恶意软件的模式匹配
YARA 是一种工具和规则语言,用于通过模式识别和分类文件及内存。分析人员称它是恶意软件研究中的模式匹配瑞士军刀。
YARA 规则描述文本或二进制模式以及逻辑条件;引擎扫描目标并报告匹配结果。它将分析人员的发现与可复用的自动化检测衔接起来。
文件签名与网络签名
YARA 是对网络 IDS 的补充,而不是替代。
- Snort/Suricata检查在线路上传输的流量。
- YARA检查静态存储或内存中的内容:磁盘上的文件、进程内存、电子邮件附件和压缩包内容。
IDS 可能会捕获传输中的下载内容;YARA 则可以在隔离样本、取证镜像或正在运行的进程中捕获同一家族,即使该样本从未经过受监控的链路。
恶意软件家族分类
YARA 的核心使用场景之一是家族分类。恶意软件作者会在不同构建版本之间复用代码、字符串、加密密钥和互斥体。YARA 规则会捕获这些共同特征,使某个家族的所有变种都能匹配同一条规则,即使每次重新编译都会改变哈希值。
这使 YARA 在基于哈希值的检测失效时仍然具有弹性:一个字节的变化就能使哈希值失效,却无法击败编写良好的模式规则。
内存中的威胁搜寻
加壳和混淆的恶意软件会将真实代码隐藏在磁盘上,但必须解包到内存中才能运行。使用 YARA 扫描活动进程内存或内存转储,可以发现加壳文件中看不到的字符串和结构。
这就是事件响应人员使用 YARA 扫描 RAM 的原因:即使磁盘上的样本经过完全混淆,解密后的配置、C2 地址和有效载荷仍会出现在内存中。
YARA 的运行位置
YARA 可以集成到整个安全体系中:
- EDR 代理使用共享规则集扫描终端
- 沙箱(Cuckoo、CAPE)对引爆执行的样本进行分类
- 邮件和网页网关扫描附件和下载内容
- 威胁情报平台在样本存储库中进行搜寻
- 取证工具扫描磁盘镜像和内存转储
一种规则格式,多个执行点;这正是检测工程师看重的可移植性价值。
回溯搜寻
VirusTotal 等平台允许您针对其历史样本库运行 YARA 规则,这种做法称为回溯搜寻。请为新发现的家族编写规则,执行回溯搜寻,从而找出较早的样本、相关变种以及该活动的时间线。
这样可以将单个样本转化为有关攻击者工具使用历史和基础设施复用情况的情报。
运行扫描
最简单地说,YARA CLI 接受一个规则文件和一个目标。每次命中时,它都会输出规则名称和匹配的文件。
# Scan a directory recursively
yara -r rules/apt_family.yar /samples/
# Scan a running process by PID
yara rules/cobaltstrike.yar 4821好规则与坏规则
YARA 的强大能力要求严谨性。编写不佳的规则会在大规模环境中造成问题。
- 过于宽泛 -> 误报会淹没分析人员,还可能隔离无害文件
- 过于具体 -> 只能匹配一个样本,无法发现整个家族
- 过慢 -> 复杂正则表达式或过短的原子字符串会拖慢全环境扫描
目标是编写足够具体、值得信任,足够通用、能够捕获变种,同时足够高效、可以在各处运行的规则。
选择持久型指标
请匹配那些作者不太可能或无法低成本更改的特征:
- 自定义加密例程和独特常量
- 具有辨识度的代码片段和解包逻辑
- 硬编码的互斥体名称、用户代理或 PDB 路径
- 文件格式中的结构异常
请避免匹配通用库字符串或数千个无害程序共用的编译器产物;这些特征会产生噪声,而且很容易被修改。
共享与标准规则集
YARA 的可移植性使规则成为防御者之间共享的通用资源。经过筛选的公共和商业规则集合可以为您提供良好起点,而不必从头编写每条规则。
- YARA-Rules 社区仓库和厂商研究博客
- 广泛用于 IR 的 Florian Roth 的 signature-base
- 包含家族和 APT 规则的 ISAC 及厂商情报源
部署第三方规则前请先审核:检查其误报风险,为其设置命名空间以避免冲突,并针对您的良性软件样本库进行测试,因为未经审核的外部规则可能会在您的环境中产生噪声。
YARA 的局限
YARA 不是万灵药。
- 它匹配的是模式,而不是行为;它不会运行样本
- 磁盘上的重度加壳或加密可能会隐藏所有内容,直到进行内存扫描
- 多态和变形代码可能会绕过静态字符串
- 获取您规则的攻击者可以针对规则进行规避设计
请将 YARA 作为一层,与行为检测、沙箱分析和网络监控配合使用,而不要把它作为独立的防御手段。
快速检查
为任务选择正确的工具。
回顾
YARA 用于匹配文件和内存中的模式:
- 它对静态存储或内存中的内容进行分类和识别,是网络 IDS 的补充
- 它通过共享特征检测恶意软件家族,能够抵抗哈希值变化
- 内存扫描可以发现静态分析遗漏的已解包代码
- 它可以运行在 EDR、沙箱、网关和取证工具中
- 回溯搜寻可以将单个样本转化为活动情报
- 优秀的规则应当具体、通用且高效;请匹配持久型指标
- YARA 匹配的是模式而不是行为,因此应将其作为一层使用
下一节:规则语法本身。
用 AI 导师学习 Cyber Security Academy — 免费
在浏览器中编写并运行真实代码,获得全天候 AI 导师的即时帮助,并在网页或应用中继续学习。
- 课程
- 76
- 课程
- 303
常见问题解答
「YARA 的用途」课时是免费的吗?
是的 — 「YARA 的用途」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Cyber Security Academy 课程的其余内容,请升级到 CoddyKit PRO。 Cyber Security Academy 课程共包含 4 节课。
「YARA 的用途」这节课中我会学到什么?
匹配文件与内存中的模式。 你通过在浏览器中直接运行的动手代码来练习 Cyber Security Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Cyber Security Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Cyber Security Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。
「YARA 的用途」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Cyber Security Academy 课中编写并运行代码吗?
能。每节 Cyber Security Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。