2017-09-28 15 views
0

VirusTotalの「ハンティング」機能を使用していくつかのルールセットを実行し、private YARAルールを使用して誤検出を除外します。たとえば:「メイン」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ステートメントを使用して参照する別のルールは無視されています。また、私はそのルールを使用して、別のルールセットを書いて、私は同じ結果を得る - 、global privateプライベートルールは無視され、私は$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 
} 

を満たしませんちょうどprivate、違いはありません。 VTはどちらのルールセットでも構文エラーを検出しません。私はこれまでにこの問題に遭遇したことがなく、それが私を混乱させる理由です。いくつかのプライベートルールは受け入れられますが、他は無視されます。

これはVirusTotal(これは私がYARAルールを使用する唯一の場所)の問題ですか?あるいは、ルールを書いているうちに何かが見当たりませんか?

答えて

0

私は最終的にこれに関するVTサポートに連絡して、明らかに私は事を逃した。

ルールはprivateであるため、一致する文字列はVTインテリジェンスプレビューで強調表示されず、DLFakeCompanyNameの文字列のみが強調表示されます。しかし、一致したファイルを手動でチェックすると、両方のルールが実際に満たされます。

関連する問題