返回 登录
0

基于YARA 和NESSUS 的威胁探测

在Nessus6.7 发布的时候,其就被公布有文件系统扫描的功能比如可以查找特定的位于某磁盘上的文件残骸。这个功能是继6.7版本可以支持运行过程排查功能的一段时间后的又一新特点。现在,作为Nessus6.8版本的一部分,我们引进了YARA到Windows恶意软件扫描子系统里。结合YARA, Nessus6.8可以提供另外一种方法来定义规则并搜索基于文本或者二进制模式的文件。
什么是 YARA?
YARA 是一个开源的恶意代码查杀引擎,最初由VirusTotal的软件工程师
Victor Alvarez 开发。其旨在帮助恶意软件研究人员识别和分类恶意软件样本. YARA 的工作原理是由一系列字符串和一个布尔型表达式构成的描述或者规则来阐述其逻辑,以此来识别和分类恶意软件或者程序。
YARA 规则编写
为了更好地诠释此篇博客,这里我会写几个非常简单的YARA规则。 然而YARA 规则本身的语法是非常复杂和强大的(详情请参见 WritingYARA Rules guide)。Nessus 支持所有YARA 3.4 版本包含的关键词和那些包含在PE 二进制文件和ELF 可执行文件的子模块里的关键词。
我创建了一个简单的IRC BOT 机器人程序来写反规则。在写第一条规则前,我们要先检查一些位于IRC bot 程序二进制里的字符串(以下输出结果被精简以便阅读):
图片描述
正如你所见,这个二进制包含了些相当独特的字符创。我们会用这些字符串来写第一条规则:
图片描述
当这5个独特的字符串都存在于文件里的时候,这个规则就会被启动并运行。
接着,我们会用这个运行了规则的文件和Nessus结合使用。

配置安装Nessus
在选择扫描对象并命名以后,第一步是设置Windows凭据。因为Nessus恶意文件系统扫描器在WMI 上运行,所以我必须要先配置这个。以下是扫描器所呈现的:
图片描述
第二步,激活YARA插件。而且必须激活插件代码59275(恶意进程监测)和插件91990(基于YARA的恶意文件监测)。
小贴士:通过Advanced Search和设置Malwareis equal to true 我就可以轻松找到该插件. 该插件位于Windows的插件家族系列,
图片描述
最后,上传YARA规则并选择程序目录进行扫描。 我可以通过进入Assessment 菜单里的Malware 设置来完成此项操作。如果Scanfile system 设置被开启,我可以点击Add File 链接来加入YARA 规则。 下图所示,我已经上传了新建的规则在文件tenabe_bot_ruler.yar里。 然后选择Scan%ProgramFiles(x86)作为目录进行扫描。
图片描述
以上所有步骤完成后就可以开始扫描了。

获取结果
四分钟后,扫描结束。我可以看到某些东西被扫描出来了:
图片描述
往下拉,我可以看到ircbot_v1.exe符合Tenablebot 程序写的规则,并放置在这里:C:\ProgramFiles(x86)\dontlookhere\。 这个让人厌烦的二进制甚至被附在了扫描上。
图片描述
编写更多规则
Nessus 的每一次扫描,仅可以设置单个YARA规则(Yara Rule)文件,所以所有的规则必须放在单一的一个文件里才可以都被扫描。规则必须一个接着一个的排列编写。
比如, 有这样一个假设,我们的IRC Bot程序被加入了UPX(一种)可执行程序文件压缩器)并击败了静态分析。 那么我们可以加一个新的规则到所有这些检查UPX 的规则里。尤其,当这两个PE section的名字是”UPXO” 和“ UPX1” 时,这个规则就会被激活并运行。
图片描述
如果客户上传最新的YARA 规则文件并重新扫描目标,您就会发现一个被UPX 包装的二进制。
图片描述
更多资源
写自己的规则会是一件非常难的事。幸运的是,这里有很多有用的资源可以帮助您些规则:
· Yara Rules 积极的发布了很多符合开原协议GPLV2 的YARA 规则
· MalwareConfigsite维持规则集以此可以用来发现恶意二进制文件
· The Yara RuleGenerator 可以创建一个基于不同文件案例的规则

评论