本帖最后由 z13667152750 于 2012-3-30 19:36 编辑
我认为百加黑样本最早可以追溯到2010年上半年的金锁病毒,严格上来说,这并不是典型的白exe加上黑的dll文件样本,它是利用早期金山网盾的文件KSWebShield.exe加上被修改的配置文件 kws.ini(其中包含了金山网盾锁定主页信息,但是其中内容没有被加密),通过修改配置文件利用金山网盾的锁定主页功能将用户主页锁定.
然后2011年360安全浏览器也被爆出一个非典型白加黑漏洞,这次是利用早期360安全浏览器的文件360start.exe(用于启动360浏览器的隔离模式)来运行360se.exe(病毒文件)
之后则是2011年该类利用白的有签名的exe加载黑的dll文件,就是现在经常提到的白加黑典型样本的出现.
简单介绍历史后,就来看看各个安全软件是如何加强对这类安全软件的防御的:
最早的应该是卡巴了,卡巴2012加入了网银保护功能,由于白加黑样本大多是将目标瞄准网购用户,通过替换网银支付页面谋利,因此卡巴的网银保护通过将网银支付页面自动加入沙箱,并启用虚拟键盘\防截屏来保护安全.
然后就是360和金山几乎同时推出的网购模式(这只是2011年当时他们的应对策略) :
360的网购模式通过在用户进入网购相关页面时进行进程扫描(同时也扫描加载的dll),对比白名单,提示存在未知进程(已知的可被利用的白exe进程也会被提示为可能被利用的进程)或者dll,通过干掉进程甚至删除文件来保护安全;
金山的网购模式则是通过云鉴定以及类似卡巴的网购页面自动加入沙箱运行来保护安全
但是360和金山这样的做法仍然是被动的,而且成功防御的基础是样本的目的是网购,然后360和金山进一步加强对这类样本的防护
金山的做法是(先说金山,是因为金山的策略被卡饭网友钻研的更清楚):由于存在dll加载漏洞的exe文件毕竟有限,病毒作者想找到一个可以被利用的exe也不是那么简单的,因此金山通过统计已经知道可以被利用的exe和dll组合,结合dll白名单可以拦截所有的\利用已知存在dll加载漏洞的exe被利用.但是仍然无法拦截还没有被公开的,存在dll加载漏洞的exe被利用,但相对于国外安全软件的主防和防火墙彻底失效还是一个很大的进步.
360的做法:通过网盾的下载保护,得知exe加dll的组合是从网上下载下来的,然后通过云端交互拦截dll被加载(360卫士正式版就可以这样拦截),到底360是通过临时取消对exe签名的信任来拦截的还是有其他的机制,目前还不清楚.但是这种拦截同样需要网盾可以检测到样本下载才可以,然而大家都知道360网盾的下载保护对浏览器的支持不完善,不支持傲游\搜狗浏览器,因此拦截的前提仍然是以网购为目标,网购样本都是通过即时聊天工具(qq\阿里旺旺等)来传播的,这样360网盾由于对IM支持十分完善可以较好的拦截了.
但是现在,白加黑样本不再单纯的以网购为目的了,样本区出现了类似qq黏虫的白加黑样本,360再次改变策略,360卫士正式版客户端不需要升级,仅仅依靠云端策略的升级即可拦截这类样本,但是问题是,这种拦截并不准确,360卫士正式版拦截的是白的exe,删除的也是白的exe,黑dll被放过,虽然说这样做同样也可以阻止这类病毒危害用户安全.不过需要提醒的是,360的这种拦截方式并不会造成对用户正常使用的\加载正常dll的白exe的误报.
看了以上内容,也许很多人会有疑问,为什么安全软件的主防不直接检测dll的行为?为什么主防都是以进程为单位拦截的?
并不是技术上做不到检测dll,我认为他们是出于性能的考虑,卡巴区有人说过,kav6曾经有过dll检测功能,但是后来的版本中该功能被取消了.要知道每个进程中都有至少十几个的dll被加载了,也不可能通过签名校验dll文件,因为不是所有的dll都被加上了签名的,连系统文件中都有一堆的dll没有被微软加上签名.软件开发商也只需要给自己开发软件的主程序加上签名就可以大幅减少被安全软件误报或者误拦截的风险了.通过建立dll白名单的成本太大,而且很容易由于软件升级造成大量误报,对加载的dll进行逐个校验也可能造成对电脑性能的验证影响.
也可能有人说,直接让安全软件不再信任这些签名,主防和防火墙不就可以阻止这类样本的行为了吗?
很可惜的是,这样做是不现实的,数字签名的信任是通过信任各个公司买到的私钥均实现的,一旦取消签名的信任,就会导致所有的被该私钥签名的文件全部被取消信任,造成的误报是安全软件无法承受的.
因此现在其他安全软件都只能通过特征码扫描来杀掉dll文件
|