鉴于杀毒软件运用特征库查杀的原理,黑客们从上世纪末开始将加壳作为逃避查杀的主要手段。加壳其实就是把木马病毒文件用加密算法压缩,让杀毒引擎无法读取这个文件,从而不能和特征库匹配。
加壳技术早在DOS时代就出现了,从上世纪末到2008年以来,特别是学做木马盗号的人同网游市场规模一样急速扩大,加壳被木马作者普及采用,给杀毒软件制造了不小的麻烦:
首先脱壳(解压缩)的难度很高,即便是相对简单的壳,一个反病毒高手逆向分析至少需要3天,再加上编写脱壳代码和测试,整个周期至少1周。也就是说,一个木马作者稍微修改一下加壳工具,再把木马加壳后传播出去,一周之内都不需要担心会被杀毒软件查到。
杀毒引擎查杀病毒一定要进行特征库匹配,木马加壳后就不得不先脱壳,这对杀毒软件造成了极大的困难,只能不断积累对各种加壳工具的脱壳经验。目前比较基本的加壳工具有50多种,一些技术相对高明的黑客自己修改而成的加壳工具更是数不胜数,其中个别加壳工具直到现在仍没有杀毒软件能够破解。不过,黑客们也发现,加壳并不是对抗杀毒软件最好的方式,因为一旦一类加壳工具被破解,大批木马就会被杀毒引擎用特征码检出。于是,一个更疯狂的疲劳战术出现了。
4、2008年至今,网页挂马成就木马的疲劳战术
互联网上有大量安全性薄弱的网站,黑客通过SQL注入或跨站脚本漏洞攻击就能轻易实现大面积的网页挂马,这是当前木马最常用的传播手段,成本也很低廉。既然挂马网页可以不断发布新的木马,黑客们很自然地想到了冲垮杀毒软件特征库的办法,也就是定位杀毒软件特征库的截取方式,加快发布木马变种的频率,让杀毒厂商的分析工程师们疲于奔命。
无壳的木马虽然易于截取特征码,但制作简单,可以用工具针对杀软的特点批量修改,杀毒厂商则需要调配大量人手逐个分析,基本上只能跟在木马身后疲于奔命。
第二章 杀毒软件之惑
现在互联网上最强的黑势力是难以尽数的盗号工作室,比较出名的有赤兔马、老A、乐意马、铁血等等,这些都是木马可执行文件上带有品牌的,还有更多神秘低调的木马团伙,它们变种之快让人们难以想像,杀毒软件终于日益力不从心:
1、样本采集问题
为了尽快抓到木马样本,不少杀软开始尝试云安全的思路,一方面是让用户自动举报行为可疑的软件,另一方面是在用户访问到挂马网页时从网马中捕获。前者的问题在于木马作者在编写时通常早有对策,至于后者,就需要杀毒软件对挂马网页足够灵敏,而且用户量足够大。
2、样本分析问题
木马的疲劳战术是杀毒厂商最为头疼的问题,杀毒引擎要工作,就要把新木马的特征码人工分析截取出来,还得严格测试保证不出现严重误杀。对一家大型杀软厂商来说,每天分析成百上千个新样本是没问题的,但如果每天有数十万个甚至上百万个新样本,没有哪家厂商能够有这样的人力。
3、特征库升级问题
即便木马的特征码都能被提取入库,升级特征库也不容易。一方面是时效性,比如很多杀毒软件租用CDN服务器来发布特征库的更新,最快也得3个小时用户才能开始升级,更何况之前还需要分析编码,按照现在木马的变种速度,等到升级完特征库,比较有组织有实力的木马早就自动重新免杀了,这也是人们一直抱怨杀毒软件滞后查杀的重要原因。
4、系统资源占用问题
特征库无限制增大对用户的影响也非常明显,首先杀毒软件只要开着,特征库就需要写入内存,定期升级特征库也要耗费不小的流量;杀毒引擎的特征码匹配式查杀、而且是全库匹配造成扫描速度很慢,很多用户因此只在电脑发生问题时才进行扫描,留下不小的安全隐患。
第三章 杀毒软件穷则思变