Yara规则是一种通过创建寻找某些特征的规则来识别恶意软件(或其他文件)的方式。雅拉最初由Victor Alvarez的Virustotal开发,主要用于恶意软件研究和检测。它是与想法制定的,以描述识别特定菌株或整个恶意软件家庭的模式。

语法

每条规则都必须以单词开头规则,后面跟着名称或标识符。该标识符可以包含任何字母数字字符和下划线字符,但第一个字符不允许是数字。这里有一个雅苒关键词不允许用作标识符,因为它们具有预定义的含义。

条件

规则由几个部分组成。的状况Section是唯一需要的。本节指定规则结果何时为真的对于正在调查的对象(文件)。它包含一个带布尔表达式,该表达式确定结果。条件是设计布尔表达式,可以包含所有通常的逻辑和关系运算符。您还可以将另一个规则作为条件的一部分。

状况部分意思是你也需要一个部分。在strings部分中,您可以定义将在文件中查找的字符串。让我们看一个简单的例子。

规则供应商

字符串:
$text_string1 = "供应商名称"宽
$text_string2 = "别名"宽
条件:
$ text_string1或$ text_string2

上面显示的规则名为vendor,并查找字符串“vendor name”和“Alias name”。如果找到这些字符串中的任何一个,则规则的结果是真的

有几种类型的字符串可以查找:

  • 十六进制,与野卡,跳跃和替代品相结合。
  • 带有修饰符的文本字符串:nocase, fullword, wide和ascii。
  • 正则表达式,具有与文本字符串相同的修饰符。

还有许多更高级的条件可以使用,但它们超出了本文的范围。如果你想知道更多,你可以在雅苒文档

元数据

可以添加元数据,以帮助识别由某个规则挑选的文件。元数据标识符后面总是跟一个等号和设置的值。赋值可以是字符串、整数或布尔值。注意,在元数据部分中定义的标识符/值对不能在条件部分中使用,它们的唯一目的是存储关于规则的附加信息。

概括

Yara是一种可用于识别符合某些条件的文件的工具。它主要是通过安全研究人员来对恶意软件进行分类。

链接

基于雅拉的签名检测

最新的雅拉文档

YARA:简单而有效的剖析恶意软件的方法

截图使用Yara编辑由Adlice软件

Pieter Arntz