之前有看到过一些关于yara的文章,但基本是关于规则怎么写的翻译文章。但在现实分析中却基本上是自己懒得写规则或者yara规则库数量太少了,导致很多文件无法匹配出结果。 从现实情况来看yara规则怎么写我可能暂时用不上,因此我需要的是能快速建立yara规则库 — 其对于新的恶意软件,最好能够有工具自动帮我分析出样本的yara规则,然后添加到现有的yara规则库中。 解决方案 在网上找到下面几个方案能够帮助解决现有的问题: 1.ara官方预置的规则库2.ClamAV的特征码转换为yara规则3.从yara-generator爬取别人上传的样本的规则4.利用yara-generator自动生成新的yara规则解决思路如下
预置规则主要从三方面获取:首先可以从yara官方的预置规则,然后利用工具clamav_to_yara.py将clamav的特征码转换为yara规则,最后yara-generator上有很多其他用户上传的样本规则,可以使用爬虫去将这些规则爬取到我们是规则库中。 当分析一个样本时,先用yara现有的库进行扫描。如果没有匹配,可以上传到yara-generator网站上自动分析yara规则,再将规则加入到规则库中。对于有针对性的分析某些行业的恶意软件,可以人工分析一些行业的关键字串特征,手动修改yara规则。 获取预置规则 1. Yara官方预置规则 Yara规则的官方网站为yararules.com,规则存放在github上github.com/Yara-Rules/rules,规则以yar结尾。
2. ClamAV特征码转换为yara规则 Clam AntiVirus(ClamAV)是免费而且开放源代码的防毒软件,软件与病毒码的更新皆由社群免费发布。可以利用clamav_to_yara.py脚本将ClamAV特征码直接转换为yara的规则。主要步骤如下: 1) 安装clamAV Linux下的安装命令apt-get install clamav clamav-freshclam 2) 用自带工具解压特征码 默认规则库放在/var/lib/clamav/main.cvd中,使用clamav自带的工具sigtool可以将其解压 命令sigtool -u /var/lib/clamav/main.cvd可以将特征码解压,结果如下
3) 特征码转换为规则 转换命令clamav_to_yara.py -f main.ndb -o clamav.yara -s Agent 转换出来的结果clamav.yara如下所示:
|