如何挖掘杀毒软件的漏洞
A:“听说你大学的专业是信息安全?”
B:“是的,领导。”
A:“那好,去帮安装一个杀毒软件。”
B:“领导,请你尊重这门专业,信息安全是……”
A:“请你说一下如何发现杀毒软件的安全漏洞?”
B:“领导,安装哪个杀软 ?”
问题来了:如何挖掘杀毒引擎的漏洞?
曾经做了3年多的病毒分析,从来没有发过和杀毒引擎有关的文章。今天就发一篇吧。思想混乱,大神勿喷。
每天打开qq,各种qq群都在说如何过xxxx杀毒软件?如何做免杀?有人说:杀毒软件就是一把激光枪,而病毒就是一个一个的敌人。通杀就是激光枪的扫描轨迹,而免杀就是病毒的逃逸轨迹了。好的通杀可以杀掉一大片敌人,而好的免杀则是让敌人穿上了一层隐身衣,躲过激光枪的伤害。当然有时候激光枪也会伤害一些好人。总之,激光枪是有伤害人的能力的 ,是伤害好人还是坏人,这就是激光枪的问题了。其实遇到问题,有时候躲并不是好办法。尤其是对于好人而言。如果有这样一件衣服,他不是隐身的,而是一面镜子。当激光枪扫描他的时候,激光就会返回,然后激光就会自毁。那这样的装备就比较有意思了。
杀毒引擎是杀毒软件的核心,复杂度可想而知。在杀毒公司只有最高级的人员才可以充当引擎开发人员。可惜本人不才,在杀毒领域混了3年,仍然没有接触到引擎层次。因此这篇文章可能在某些人眼里是班门弄斧了。但愿不被喷。
杀毒软件除了pe格式以外,还可以处理各种文件格式的程序。比如杀毒软件在查杀漏洞样本的时候,会涉及到office文件。Flash文件。各种图片,声音等文件的解析。在解析过程中有可能存在逻辑缺陷。此外杀毒软件在查杀加壳程序时,会先对程序进行脱壳。在遇到安装包程序时,会对各种安装包压缩包文件进行解析。在进行感染性修复的时候,会对感染性病毒进行判断和修改。在处理各种脚本木马的时候,会对脚本进行解析和信息读取。。。。。。总之,杀毒软件会处理各种各样的文件格式。在文件格式处理过程中,会不会出现漏洞呢?
所以,完全可以在这些文件格式入手, 构造足够畸形的样本,让杀毒软件攻击我们的时候出现错误。导致崩溃。
如何选择攻击目标呢?
首先,应该选择比较偏僻的文件格式。常用的文件格式不应该作为选择目标。对于常用的文件格式,杀毒软件厂商的研究已经非常深入。代码也相对健全,找到一个漏洞不是一件轻易的事情。
其次,可以选择在新上来的功能上进行挖掘,由于新上来的功能测试力度可能不够,出现问题的概率更高。
最后,在各种漏洞样本上进行fuzz,可能效果更好。尤其是新公开的漏洞。尤其是这种漏洞的专杀工具,他们的问题可能更多一些。
之前用fuzz的方法发现了360杀毒软件和360安全卫士的杀毒引擎的内存破坏漏洞。已经发到某漏洞平台。到现在为止该漏洞已经被360修复。http://www.wooyun.org/bugs/wooyun-2014-085791
该漏洞可以通过Easyfuzzer发现。
EasyFuzzer 让Fuzz更Easy