【大讲堂】恶意软件的技术剖析
【编者】IT168软件频道特别策划栏目《软件大讲堂》已经全新上线,她打破了学习、阅读的资源被动汲取,我们以现场直播、网友在线提问这种互动的方式,深入软件作者的研发经历,揭示软件开发的背后故事;关注最受欢迎的热门话题,解答网友心中的疑惑;在这个平台上,您不仅可以与知名的软件开发作者、业界专家面对面,也能从中学习到更加系统的软件应用技巧,知识的积累等非比寻常的效果体验。
我们为每期《软件大讲堂》作了图文专题,将每期专家讲座整理成文章发布,提供全部视频下载,并建立软件论坛网友提问交流专区,欢迎大家参与并提出宝贵建议。
| IT168软件大讲堂 | ||||
| 主 题 | 主 讲 | 视频下载 | 论坛专区 | |
| 第一期 |
金山技术工程师 李铁军 |
点击下载 | 点击进入 | |
| 第二期 |
中科红旗培训部经理 贺唯佳 |
点击下载 | 点击进入 | |
| 第三期 |
奇虎软件事业部总经理 傅盛 |
点击下载 | 点击进入 | |
恶意软件的表现形式和分类
恶意有几种表现形式,第一个是强制安装,当你去安装一个正常软件时候,恶意软件通过正常软件偷偷的装下来,没有可选择的提示,用户在装A软件的时候,一不小心就可能装了B、C这样的软件;第二,就是无法彻底删除,而且你通过手工方式,或者通过他提供的卸载方式以后仍然在自动运行,注册表的东西仍然存在,恶意监视浏览器,会劫持用户的浏览器,打开浏览器以后就到达某一个网站,然后干扰其他软件运行,这个时候不通过任何用户的确认去删除其他的软件,保证自己恶意软件能够在这个机器长驻久留,而且由于这样的恶意删除其他软件,一般都会加载一些驱动,或者是其他的一些保护手段,会使得系统不稳定。
还有就是弹出广告,定时的弹出广告窗口,当用户访问其他网站就会弹出一些广告,通过在用户的机器内打开一个后门,去窃取用户的隐私,甚至盗取用户的帐号、密码、信息,比如说用户的QQ号这样的一些问题。然后破坏安全软件运行,隐藏自己,它破坏注入360安全卫士或者是其他软件的运行,然后使用户很难发现它,并实现自我隐藏。
恶意软件分类,一个是广告软件,就是装在用户机器里面不断的弹出广告;还有就是间谍软件,就是说在电脑和后门收集用户信息,它主要是去收集一些关于你的浏览习惯,或者是个人隐私数据;第三个是浏览器劫持的软件,这个软件安装以后,就使得浏览器里面多一个工具条等等这样的一些行为。新闻记录软件,也是和间谍软件有类似的行为,就是记录用户的操作行为,记录用户网络浏览习惯。最恶意的就是留有木马后门,通过这个木马可以偷取用户的任何信息。
感染恶意软件的途径
恶意软件通过利益的驱使,已经覆盖了用户可能接触到的各种上网途径。第一,安装一些国外知名软件的汉化版的时候,可能这里面就有恶意软件。第二,安装免费软件,很多免费软件,当然作者也是为了能够达到自己的收入,在不得已的情况下捆绑了一些恶意软件,来实现自己的收支平衡。
第三,安装盗版游戏,现在在中关村也好,在南方的电子城也好,很多盗版游戏光盘里面其实也捆绑了恶意软件,当你运行一个游戏,或者安装一个游戏的时候,会给你的机器装一个恶意软件。因为恶意软件是按安装次数付费的,所以游戏厂商也会抓住一切机会给用户安装。连上互联网,有可能被远程的黑客,或者是专门去抓叫做偷窃QQ号的这种人给攻击,并且安装上,如果你的系统再有漏洞,就有可能安装上恶意软件。
![]() |
浏览网页,从正常的理论上来说,浏览网页是不会被安装任何程序的,因为有权限控制的,但是现在有很多漏洞,尤其是系统漏洞和IE漏洞,加一行普通代码,或者最简单的代码,就使得你机器在浏览网页的时候被安装一个恶意软件。再就是兼容机安装操作初始系统的时候,这些盘里面可能也被安装上恶意软件,所以恶意软件现在是无孔不入。
恶意软件使用的技术
恶意软件使用的技术,第一个叫做Rootkit技术,这也是恶意软件出现之后被广泛采用的技术,对自己的文件进行强有力的保护。
第二是IE插件,通过BHO、UrlSearchHook进行劫持浏览器,BHO是浏览器辅助对象,也就是说在浏览器启动的时候会调用这个BHO,帮助浏览器完成一些额外的工作,本来这是一个好意,但是已经被恶意软件给泛滥的应用,现在很多人启动一个浏览器的时候会被加载相当多的BHO,而这些BHO大量都被恶意软件控制了。在地址栏输出关键词的时候会将你搜索结果进行一个转向,去劫持用户的地址栏搜索和相关的搜索。
第三个是修改系统启动项,去在系统启动项里加入自己的一个启动,用户每次开机的时候都会使得恶意软件启动起来。
第四,修改文件关联,当双击TXT文件的时候,恶意软件去修改这个文件关联以后,你可能双击任何一个TXT文件以后都可能把恶意软件运行起来。
第五个是修改系统服务,系统在Windows XP,都有一个系统服务。比如说我们的任务计划,恶意软件也可能把自己加到系统服务项当中,一直在运行。还有计划任务,计划任务是Windows提供一套自动运行的机制,可以定义某一个工作几点开始,或者是周几开始。恶意软件会把自己加到这里面来。
再下面一个叫做Winsock LSP(Layered Service Provider)LSP,它是一个底层的互联网接入的应用服务,大家可以把它理解成为一个小的防火墙,有的恶意软件会把Windows自代的LSP,使你这个浏览的网站或者说完全都变成他自己的操纵结果。还有一个就是直接替换掉系统,或者是应用程序的程序文件,比如说把你的显示版替换成文件。恶意软件除了使用这些技术去劫持系统之外,还会用很多技术进行自我保护,为了躲避一些安全软件的查杀,比如说一个软件,发现另一个进程被结束以后,会把另外一个进程再给调用起来。还有APIHook防止查杀,它将系统的API直接进行修改,你去调用系统任何一个删除操作的时候都会要经过这个监控,它发现你删除的时候就给你阻止掉,使得你没有办法通过系统的API来删除它。
第三个是驱动保护防止查杀,加载一个内核的驱动,使得自己难以被查杀,还有注册表名和文件名都不一样,装的时候文件名什么都不一样,使你很难摸准到底哪一个是它。还有就是文件变型,每次生成文件的大小可能都会改变,来躲避,还有包括它的特征,还有一个办法就是上来就监测,有没有瑞星,有没有360安全卫士,有的话全部把它停止掉,并且对所有窗口里面含有360的窗体自动关闭,不会让它打开,使用户没有办法使用查杀软件。
对刚才讲的一些技术名词进行一些解释,驱动是系统底层负责每一个设备,包括硬设备,比如光驱、显卡的正常工作的一种机制,那么软设备就是文件级的驱动,一个叫文件系统驱动,文件系统驱动(File system driver(FSD)挂钩,在Windows自带的系统当中挂了一个钩子,能够修改系统当中的一切操作,而这个驱动被恶意软件挂钩以后,可以保证自己的东西不被删掉,或者去删掉别的东西。
再往下就是比较深一点了,Dispatch(Driver Dispatch Routine)挂钩,就是对驱动器的分派历程进行挂钩,还有一种就是对文件驱动的代码“Inline(内联)”修改,内联修改是一个相当危险的操作,这种操作非常容易导致系统的不稳定,所以一般使用这种技术的恶意软件应该说是比较丧心病狂,或者完全不顾用户的感受,因为用户机器系统的驱动非常复杂,只要一有问题的话就可能是蓝屏,整个数据就会丢失。
Rootkit(Administrator)也是经常听到的名词解释,它是提供给用户管理员权限使用的工具集,这个工具集一般可以加载到一个内核程序当中,对操作系统内核进行挂钩和保护,做到保护和引入入侵者的作用,它必须要深入到系统的最内核层,做一些修改和挂钩。流氓软件经常使用这种技术,导致自己的文件和注册表被删除。
SSDT: system service descriptor table(系统服务描述表)也是一个内核的技术,叫做系统服务描述表,这是一组系统从内核输出给用户程序的函数表,一般的Rootkit会挂钩到这个表里面的一些函数,它也在系统的最内核层,上面几个都是大同小异,通过挂钩到系统不同的内核层来保证他对自己内核层的修改和监控,使得任何一个软件自定义的操作不被执行,达到自己的保护效果。后面我们会对恶意软件进行一个详细的技术分解,因为我们不想有一些法律上的问题,我们也被这家恶意厂商给告过,这是一个中文上网,就是给用户所谓中文上网功能的一个地址栏插件,主要是通过BHO劫持IE地址栏,通过一个或多个驱动,比如说cdnprot.sys,然后用Rootkit的技术,在系统内核设置了非常多的钩,对自己的文件进行保护,使得自己非常难以被删除。
第二个表现就是装上流氓恶意软件用户的机器就非常容易蓝屏,这就是因为它对系统内核进行了多层的修改,还有一个是ANI,这是通过鼠标漏洞进行传播的。由于这次鼠标漏洞波及面非常广,而且任何一个用户不仅仅是用IE浏览器,用Firefox,哪怕你不用浏览器,在QQ上人家传一个图片给你都容易中招儿,通过漏洞嵌入到用户的机器里面以后会破坏主流的杀毒软件,所以为什么有的用户打开会有七八个恶意软件。后来当这个事情开始平息以后,它还通过各种漏洞进行传播。这是一个传播技术的典型。
