两个开源恶意代码的查杀引擎 clamav yara



1. 使用ClamAV分类

    ClamAV是开源杀毒引擎,它的应用范围包括突发事件响应、取证、常规恶意软件保护以及恶意软件发现,也可以将ClamAV作为现有的台式机、文件服务器、邮件服务器以及其他需要杀毒扫描软件场景中杀毒扫描软件的补充工具和替代工具。

    ClamAV中有许多内置的扫描功能可用于处理存档文件、打包可执行文件、HTML、邮件以及其他类型的数据,改功能支持直接编写特征码以及扫描大范围的内容,且无需针对每种文件类型写专用的解析程序。另外,ClamAV程序包中还包含libclamav库以及命令行可执行文件接口。

可以在http://www.clalmav.net/download/sources/获得。

ClamAV主要的检测数据库包括:

 1) 已知的恶意二进制文件的MD5哈希值

 2) PE(Windows 中可执行文件格式)节的MD5哈希值

 3) 十六进制特征码(shellcode)

 4) 存档元数据特征码

 5) 已知的合法文件的白名单数据库

    二进制特征码(shellcode)的相关介绍:

    http://baike.baidu.com/link?url=BK8WRdUX-v3UhicAngMg3o8XBNv_uU-RWSKxnX0VGloH4iElDejn50CWH4mK7qoH

    http://wenku.baidu.com/link?url=-NQ0qmalsY7uFnBielqrBUl27hCMcXIrGKm6NLul0XBuK19KL3feaKf1jDzxa5guNLd7If2YoFqy_lH7UnPQoRUjYk1g9KEpUNm53ZULcFe

2. 使用YARA分类

    YARA(http://code.google.com/p/yara-project)是一个特别灵活的恶意软件识别和分类引擎,可以利用YARA创建规则以检测字符串、入侵序列、正则表达式、字节模式等。可以利用命令行模式下的yara工具扫描文件,也可以利用YARA提供的API函数将yara扫描引擎集成到C或python语言编写的工具中。

    YARA允许的最大跳转偏移量是255字节,因此当ClamAV特征码转成YARA特征是,需要将特征拆分成几个AND语句连接。YARA和PEiD可识别加壳文件,PEiD是Windows系统中用于检测加壳文件的一个图形用户界面工具,特征码以纯文本文件方式存储,可以使用自己的工具扩展和/或解析新的特征码。

    下面场景可以使用YARA特征码:

 1) 使用常见的密码创建规则文件,从而可以捕获试图使用暴力破解用户账户和登陆的恶意软件。

 2) 使用登录字符串、URL字段以及银行以及银行域名等字符串创建规则文件,从而可以捕获以金融机构为目标的恶意软件。

 3) 使用杀毒进程、杀毒服务以及杀毒网站域名等字符串创建规则文件,从而可以捕获试图终止或禁用杀毒产品的恶意软件。

3. 文件类型识别方法

 1) Linux中file命令可确定文件类型,即使文件删除了扩展名,仍可以确定文件是否为可执行文件等。

 2) Python中可以使用python-magic程序包确定文件具体类型。

 3) 也可编写YARA特征码用以检测文件类型。

4. 哈希算法

 1) Linux中可以使用md5sum、sha1sum、sha256sum以及sha512sum等命令生成文件的哈希值。

 2) Python中可以使用内置的hashlib模块或者PyCrypto模块生成哈希值。

 模糊哈希用户确定文件之间的相似度。可使用ssdeep命令。

5. 恶意PE文件

    Windows中的可执行文件必须遵循PE/COFF(Protable Executable/Common Objeck File Format)规范。该规范适用范围包括但不限于控制台程序(console)和图形用户界面(GUI)应用程序(.exe)、动态链接库(.dll)、内核驱动程序(.sys)、Activex控件(.ocx)。

    两篇PE的文章:

        http://msdn.microsoft.com/en-us/magazine/ms809762.aspx

        http://msdn.microsoft.com/en-us/magazine/cc301805.aspx

    可基于PE的头中的值来检查可疑文件的方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值