研究静态检测恶意软件的方法很多,最常见也没有效果的就是文件哈希,即一对一的恶意软件进行检测。
为了更快的进行检测,现在的静态检测引擎会提取二进制文件的关键区域,并对区域内的特定OP代码字符串进行签名对比,最好的一个开源的例子就是YARA(yara是一款帮助恶意软件研究人员识别和分析恶意软件样本的开源工具,Yara规则基于字符串或二进制模式信息创建恶意软件家族扫描信息,YARA的每一条描述和规则都是通过一系列字符串和一个布尔表达式构成,并阐述其逻辑)
缺点 病毒开发者修改代码后就超出了YARA的检测范围
如果硬盘中没有运行二进制文件,那么就无法检测,这也就是无文件攻击成功绕过检测的原因
安装步骤:
root@yara:~# apt-get install yara
root@Yara:~# apt install yara
root@Yara:~# apt-get install python-pip
root@Yara:~# pip install yara
root@Yara:~# apt-get install git
获取Yara规则
root@Yara:~# git clone https://github.com/Yara-Rules/rules
我们在Hybrid上下载Petya样本
分析步骤
1)从客户机提取样本
2)分析可疑文件
3)提取特征
4)编写Yara规则
Yara脚本通常由两部分组成,Yara类似于C代码,通常包含脚本定义和布尔表达式(condition)
规则示例:
rule evil_executable
{
strings:
$ascii_01 = "mozart.pdb"
$byte_01 = { 44 65 6d 6f 63 72 61 63 79 }
condition:
uint16(0) == 0x5A4D and
1 of ( $ascii_01, $byte_01 )
}
规则语法的简单明了和布尔逻辑使YARA成为一个完美的IOC( Indicator of Compro,攻陷指标)。
rule dummy
{
condition:
false
}