基于代码的 Yara 规则

逆向工程 恶意软件 亚拉
2021-06-17 20:06:05

我必须为基于汇编代码的恶意软件编写 Yara 规则。假设我有一个解压的恶意软件样本。为避免误报,所选代码必须是唯一的。谁能告诉我哪个代码合适,哪个不合适?例如 mov eax,1 不是一个好的选择。但是什么样的代码才是一个好的标准呢?基于 Yara 规则的汇编代码的标准是什么?

1个回答

同意罗伯特的观点 - 避免误报的常见方法是拥有大量已知良性软件的软件池,您可以使用它来检查规则。

如果您刚刚开始编写 yara 规则,那么请专注于字符串这一简单方法,根据唯一字符串编写 yara 规则。

要回答这个问题:谁能告诉我哪些代码合适,哪些不合适?基于 Yara 规则的汇编代码的标准是什么?

您可以使用的一些标准:

  • 任何单行汇编代码都是不好的选择,你需要几行汇编代码
  • 使用唯一密钥根据自定义加密/解密循环编写 yara 规则
  • 不要对 yara 规则采用像 RC4 这样的标准加密/解密,这就是我在上面说自定义的原因
  • 不要包含具有太多地址偏移量的 yara 规则,因为它可能不会命中另一个哈希
  • 通配符地址偏移以命中同一恶意软件系列的不同哈希值
  • 获取一个代码模式,它正在执行一些特定于该恶意软件样本的独特步骤
  • 少量字符串和汇编代码的混合应该会给你很好的结果

上面的列表并不是一个全面的标准,但您可以通过这样做并查看现有的 Yara 规则来了解更多信息。

检查此存储库以了解不同类型的 Yara 规则,您将对字符串和汇编代码 Yara 规则有所了解:https : //github.com/Yara-Rules/rules