做自己的救世主--系统安全保卫战

时间:2007-04-11 15:18:08  来源:站长资讯收集整理  作者:佚名


3.服务欺骗型后门的战役

Windows 的任务管理器不可终止两种程序的运行:一种是关键进程,另一种是通过服务管理器SCM启动的系统服务程序(NT-Service),所以一部分后门制造者设法把后门做成服务形式,让SCM直接帮助启动服务进程,不再借用注册表启动项加载,这样即使是对注册表启动项有一定了解的用户也难以发现异常,而且就算他想终止任务管理器里显示的奇怪进程,也会被拒绝,如果用户对服务管理器的了解不深,那他将会在眼花缭乱的服务面前变得束手无策。

这时候,我们又需要请“系统配置实用程序”出山了,切换到“服务”选项卡,把“隐藏所有Microsoft服务”,这里就只显示非微软开发的普通服务程序列表了,包括服务欺骗型后门的服务项,一般它会包含欺骗性质的字符或者伪装成某厂商的服务名,如“Rising Virus Monitor”(瑞星监控)、“Macromedia License”等,记住这里显示的列表名称,接着运行“服务管理器”(Services.msc)找到对应的项目,看看属性里的文件和路径是不是真的,如果你并没有安装KAV、MCAFEE这些杀毒软件而SCM里却找到对应项目的话,它就是狡猾的后门没错了。一些间谍软件还会自作主张的把自己命名为 “Windows Print Controller”,简直就是无视系统自身的“Print Spooler”服务。

找到这类后门后,不要急着终止它的运行,既然后门作者知道SCM能直接停止它们,就必然会做一些复活措施,所以我们必须先把后门服务的“启动类型”设置为“禁止”,然后重启一次确保后门程序无法跟随系统启动,这时候才能开始清理后门。其中文件的路径信息SCM已经提供给我们了,直接在磁盘上找到删除即可,但是服务项目不能直接用SCM删除,要删除这个残留的服务项,首先要对系统服务有个最初的概念。

官方对系统服务的定义如下:
在NT架构系统中,服务是指执行指定系统功能的程序、例程或进程,以便支持其他程序,尤其是底层(接近硬件)程序。通过网络提供服务时,服务可以在Active Directory中发布,从而促进了以服务为中心的管理和使用。服务是一种应用程序类型,它在后台运行。服务应用程序通常可以在本地和通过网络为用户提供一些功能,例如客户端/服务器应用程序、Web服务器、数据库服务器以及其他基于服务器的应用程序。既然服务自身也是独立出来的程序,它就必须有一个加载的入口,我们可以把这个入口理解为第二个启动项,这个入口是由SCM负责的,无论是什么身份的用户进入系统,SCM启动服务的位置都固定在注册表的HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Services分支里,所以只要找这个分支就可以发现所有服务——也许你会说,这里显示的名字似乎都毫无意义,我怎么知道哪个是我正在找的?其实很简单,我们回到SCM,查看一个服务的属性,例如“DNS Client”服务,它的属性里写着“显示名称:DNS Client 服务名称:Dnscache”,现在回到注册表分支,查找“Dnscache”,就会看到它是CurrentControlSet \Services\Dnscache,这就是我们在SCM里看到的“DNS Client”服务,如果你删除掉“Dnscache”项目,那么整个“DNS Client”服务也就消失了。以此类推,很快就可以清理掉服务欺骗型后门。

4.最艰难的寻找:Ring 0后门

随着安全技术的发展和计算机用户群的技术提高,一般的木马后门越来越难生存,于是一部分有能力的后门作者把眼光投向了系统底层——Ring 0。位于Ring 0层的是系统核心模块和各种驱动程序模块,所以位于这一层的木马也是以驱动的形式生存的,而不是一般的EXE。后门作者把后门写成符合WDM规范(Windows Driver Model)的驱动程序模块,把自身添加进注册表的驱动程序加载入口,便实现了“无启动项”运行。一般的进程查看器都只能枚举可执行文件EXE的信息,所以通过驱动模块和执行文件结合的后门程序便得以生存下来,由于它运行在Ring 0级别,拥有与系统核心同等级的权限,因此它可以更轻易的把自己隐藏起来,无论是进程信息还是文件体,甚至通讯的端口和流量也能被隐藏起来,在如此强大的隐藏技术面前,无论是任务管理器还是系统配置实用程序,甚至系统自带的注册表工具都失去了效果,我们不得不借助于更强大的第三方工具。幸好,一部分持有编写Ring 0程序能力的人并没有加入Ring 0木马的阵营,而是把技术用到了安全检查方面,于是我们有了IceSword、RootkitRevealer、knlsc等优秀的检测工具。

一般的进程工具是运行在Ring 3级别的,它们读取的依据来自Ring 0层,这些数据是可以被运行于Ring 0级别的木马修改的,所以它们根本无法得知木马程序信息,而IceSword等检测工具不同,它们和Ring 0木马一样,也是通过驱动的模式进入Ring 0层工作的,不再需要从Ring 0层获取信息,所以它们能得到未被木马篡改的原始链表数据,例如最原始的进程信息,它是不能被更改的,如果木马把它自身从原始进程信息里删除,就意味着它要自我终结了。所以一旦有进程工具从 Ring 0层直接读取了原始数据,再把这个数据和Ring 3层获取到的进程列表比较一下,就能迅速发现哪个是拼命隐藏自身的木马程序了。很巧合的是,驱动程序和系统服务共享同一个加载入口,即 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services,只要查找相应的Ring 0木马文件名,就会发现它,删除掉注册表的加载数据后重新启动计算机,再删除掉木马文件就可以解决了。

5.清理不受欢迎的附属产品
“21世纪什么最贵?人才!”
——《天下无贼》

黎叔说的这句话固然无可厚非,只是他大概不知道,在21世纪的网络上,网民最恨的就是一部分利用歪点子制造“广告软件”(Adware)和“流氓/间谍软件”(Spyware)的“人才”。如今的网络已经被这些不受欢迎的软件使用捆绑战术给占领了,随便下载个共享工具,有点良心的会在安装界面里默认打上 “安装附属产品”的勾,更多的则是一口气给你把所有附属工具都装上了,许多用户在安装了一些共享软件后,突然发现浏览器多了一堆这个条那个霸的,想要卸载时却发现所谓的卸载程序只是个把用户当小孩来哄的界面!可以说,这些恶意软件才是当今网络最令人厌恶的东西,“流氓软件猛于后门也”!

与各种后门木马的意图不同,恶意捆绑软件的立场是自家公司的利益,它们一般不会携带破坏性质的代码(但不代表没有),通常还会拥有一些号称“服务大众”的功能,这些功能或许可以让它得到一些用户的拥戴,但是这种光环并不能掩盖其“服务大众”背后的暴利黑幕。首先,恶意捆绑软件可以轻易收集到用户信息,任何一台被安装了“X手X霸X猪X搜”的计算机都不再与“个人隐私”这个词语有缘。其次,恶意捆绑软件可以借用广大计算机作为它无偿弹出公司广告的殖民地,如果每条广告都能给该软件背后的公司带来一点利润,那么一年下来这个公司就已经从广大用户群的身上搜刮到一大笔可观的钱财了。天下并没有免费的午餐,在你使用这些捆绑软件提供的“快捷服务”时,你就已经付出了代价。

最初,捆绑软件都比较单纯,仅仅使用BHO技术(Browser Helper Objects,浏览器辅助模块)把自己安家在浏览器上而已,但是现在,也许因为被用户清理得多了,一些公司恼羞成怒把ring 0级别的木马技术应用在了自家产品上,配合一种令人厌恶的强制安装技术,再利用金钱开路,让一些网站加载自己的产品,只要用户浏览某个页面,就会不知不觉被安装上一堆BHO,这已经不是一般的强盗行为了,而由于商业关系,一般的杀毒程序是不能去查杀它们的,即使它们与木马后门的特征无异,这时候,用户就要靠自己来了。

首先,浏览器的BHO加载项目是固定在系统目录的“Downloaded Program Files”文件夹里的,对于在浏览器上出现的栏目,只要简单的在这个文件夹里选中删除即可,但是其余残留文件就只能自行寻找了,由于制作恶意捆绑BHO 的公司太多,文件存放位置也不同,这里无法给出很全面的删除方法,所以只能推荐两个工具:Upiea和RogueCleaner,使用它们即可快速卸载掉惹人讨厌的附属产品。


四. 生存法则

在森林里,鹿妈妈会警告小鹿不要去到太偏僻或者太远的地方玩耍,因为那里可能隐藏着恶狼。在网络上有更多的恶狼存在,但是却没有人能收到有效的警告。要成为自己的救世主,必须把那一份多余的好奇心收起来,直到已经掌握了清理“不速之客”的技术以后,方可放开好奇心到处看看,否则一不小心被自己的好奇心弄得系统出毛病了,又没法判断清理,最终恐怕还是会回到依赖杀毒软件的用户群去。最后还有一句恒古不变的真理:网络充满风险,勤打系统补丁。

文章评论

共有 位CH网友发表了评论 查看完整内容