0

我使用 VirusTotal “搜索”功能运行了几个规则集,并使用privateYARA 规则过滤掉误报。例如:

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 private只是private,没有区别。VT 在两个规则集中都没有检测到语法错误。我以前从未遇到过这个问题,这就是为什么它让我感到困惑 - 一些私人规则被接受,但其他人被忽略。

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

4

1 回答 1

0

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

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

于 2017-10-25T12:55:35.580 回答