阅读规则时遇到问题 具体来说,在哪里定义了一个flowbits GROUP_NAME?
我正在审查从securityonion我squert屏幕,并注意到以下几点:
3618 ET TROJAN后门户PCRat / Gh0st CnCstream量(OUTBOUND)12
SID为2017936
规则是:
(msg:“ET TROJAN Backdoor family PCRat / Gh0st CnC traffic(OUTBOUND)12”; flow:to_server,established; flowbits:isset,ET.gh0stFmly; content:“| 78 9c | “;深度:2;参考:url,www.securelist.com / en / descriptions / 10155706 / Trojan-GameThief.Win32.Magania.eogz;参考:url,www.microsoft.com / security / portal / Threat / Encyclopedia / Entry.aspx?Name = Backdoor%3AWin32%2FPcClient.ZR&; ThreatID = -2147325231; reference:md5,3b1abb60bafbab204aeddf8acdf58ac9; classtype:trojan-activity; sid:2017936; rev:4;)
然而,我不能grep任何string“ET.gh0stFmly”在/ etc或在/ nsm除download.rules以外。
进一步回顾“stream动”思想,我认为我的问题在于对“stream动”是什么的一个相当基本的误解。
stream动是为了给定的规则而“创造”的吗? 或者它们是全球预定义的地方? 如果是的话,在哪里?
例如,给定的规则:
alert tcp any 143 -> any any (msg:"IMAP login"; content:"OK LOGIN"; flowbits:set,logged_in)
是flowbit'logged_in'创build,然后设置? 或者是预定义的flowbit'logged_in',flowbit片段只是设置它? 如果“logged_in”是预定义的,那么在哪里完成?
作为flowbit GROUP_NAME参数的后续,假设stream动位是dynamic创build的,那么GROUP_NAME是一种“分组”的方式? 如果是这样,可以在不同的GROUP_NAME中使用相同的flowbit名称?
所以,回到我的问题与SID:2017936。在flowbit片段“flowbits:isset,ET.gh0stFmly”,是“ET.gh0stFmly”的flowbit名称? 或者是“GROUP_NAME”?
我希望这是清楚的,如果不是我会很乐意澄清。
谢谢
你的第一个假设是正确的。 Flowbits是由Snort规则dynamic设置的,并不是在任何其他configuration文件中预定义的。 一旦设置,它们将跟踪TCPstream直到其结束,或者直到它们被规则集中的另一个规则取消设置或清除。
GROUP_NAME参数是分组stream程的一种方式。 另外,flowbits关键字还有一些选项可以对组中的所有stream程执行操作。 例如,flowbits:setx,bit1,doc将设置bit1并清除doc组中的其他任何flowbit。 在你的规则中,flowbits:isset,ET.gh0stFmly,ET从gh0stFmly中分隔开来,但不包含逗号,因此这只是flowbit的名称,而且这个flowbit不是作为组的一部分设置的,默认组。
你的规则集中应该有另一个Snort规则,它包含了像flowbits:set,ET.gh0stFmly。 如果您没有这个信息的规则,那么上面的规则将永远不会被满足,您将永远不会得到规则的警报。
关于Flowbits的更多信息可以在这里find