构建属于自己的恶意软件特征库
引自 http://blog.sina.com.cn/s/blog_e8e60bc00102vjz9.html
感谢 阿里云安全 的分享
0x00 简介
最近研究了一些开源的杀毒引擎,总结了一下利用ClamAV(www.clamav.net)来打造属于自己的恶意软件分析特征库。特征库主要包括HASH匹配、文件内容特征库、逻辑特征库、二进制特征码(SHELLCODE)、ASCII特征码。
0x01 ClamAV部署
1. 实验环境
所有实验均在Kali Linux V1.0.9操作系统上。
2. 安装clamav
apt-get install clamav |
3. 其他环境
其他环境请参考如下URL: http://www.clamav.net/doc/install.html
0x02 ClamAV恶意软件特征库
1. 特征库位置
特征库默认安装位置在/usr/lib/clamav/目录下,main.cvd即是主要特征库,daily.cvd则是每日增量式更新的特征码库。
2. 解压特征库
root@kali:/var/lib/clamav# sigtool -u ./main.cvd |
3. 特征库解释
后缀名称 |
包含内容 |
main.ndb |
十六进制特征码 |
main.mdb |
Windows PE恶意软件文件的MD5哈希值 |
main.hdb |
已知的恶意软件文件的MD5哈希值 |
0x03 构造属于自己的恶意软件特征库
下面利用一个免杀木马来构造一个特征库。我们利用clamav发现我们自己编译的木马是没有被发现的。
1. 构造MD5库
a) 生成md5哈希库
sigtool --md5 update.exe >test.hdb |
b) 利用test.hdb来查杀
clamscan -d test.hdb update.exe |
2. 构造PE头信息特征库
a) 生成PE头信息签名的工具
wget http://hexacorn.com/d/PESectionExtractor.pl |
b) 查看PE签名
c) 生成PE头信息签名
sigtool --mdb *.dat >pebase.mdb |
d) 利用生成的签名进行检查
clamscan -d pebase.mdb update.exe |
3. 构建文件内容特征库
a) 查找特征码
首先利用IDA PRO来查看恶意软件的特征码。
b) 转换成十六进制
c) 利用十六进制特征码构建特征库
在构建特征库之前先看一下可扩展的特征码格式:
SigName:Target:Offset:Hex
字段 |
含义 |
SigName |
特征码唯一描述的名字 |
Target |
0(任意文件类型) 1(Windows PE可执行文件) 2(对象链接和嵌入OLE) 3(标准化的HTML) 4(Email文件) 5(图像文件) 6(Linux ELF文件) 7(标准化的ASCII文件) |
Offset |
文件中的偏移量 |
Hex |
十六进制匹配 |
下面我们构造特征码:
echo 'Malwareupdate:1:*:636d642e657865'>custom.ndb |
我们查杀一下:
0x04 参考文献
http://infosec4breakfast.blogspot.com/2013/06/fun-with-clamav.html
https://github.com/vrtadmin/clamav-devel/raw/master/docs/signatures.pdf
文章来自:@cnbird2008 @阿里云安全#鸟哥谈安全#系列,转载请注明出处。