"主" YARA规则匹配似乎不满足来自同一规则集的私有规则的文件

时间:2017-09-28 09:31:09

标签: yara

我使用VirusTotal" hunting"运行几个规则集。功能,我使用private YARA规则来过滤误报。例如:

private rule isDex
{
    meta:
        description = "To filter out DEX files that fire many FPs"

    strings:
        $magicbytes = {64   65  78  0A}

    condition:
        $magicbytes at 0 

}  

我在另一条规则中使用not语句引用此规则。这按预期工作,我不再收到包含我匹配的字符串的DEX文件的警报。

但是,我提到使用and语句的另一条规则被忽略了。我还使用该规则编写了另一个规则集,并得到相同的结果 - 私有规则被忽略,我收到与$a字符串匹配的文件的警报,但不满足isClassified规则

global private rule isClassified
{

    meta:
        description = "to detect files with classification label"

    strings:
        $p1 = "internal only" ascii wide nocase fullword
        $p2 = "confidential" ascii wide nocase fullword
        $p3 = "private" ascii wide nocase fullword
        $p4 = "secret" ascii wide nocase fullword

    condition:
        any of them

}


rule DLFakeCompanyName
{
    meta:
        date = "2017-02-20"
        state = "edited 2x, testing"
        //to do: check for datasize, file format, keywords

    strings:
        $a = "fakecompanyname" nocase ascii wide fullword

    condition:
        any of them
}

我尝试了两个选项,global privateprivate,没有区别。 VT在两个规则集中都没有检测到语法错误。我之前从未遇到过这个问题,这就是为什么它让我感到困惑 - 一些私人规则被接受但其他规则被忽略了。

这是VirusTotal的问题(这是我使用YARA规则的唯一地方)吗?或者我在编写规则时遗漏了什么?

1 个答案:

答案 0 :(得分:0)

我最终联系了VT支持,显然我错过了一件事。

由于规则为private,因此在VT智能预览中不会突出显示匹配的字符串,只会突出显示DLFakeCompanyName中的字符串。但是,如果手动检查匹配的文件,则实际上都满足这两个规则。