青华模具培训学校

 找回密码
 注册

QQ登录

只需一步,快速开始

青华模具培训学院
查看: 12650|回复: 3

[转帖]系统安全保卫战

[复制链接]
发表于 2006-2-23 19:14 | 显示全部楼层 |阅读模式
<H1><FONT size=4><EM>系统、网络安全的话题我们已经谈过太多次,然而安全问题仍然层出不穷,结合了木马特征的后门程序更是会让有丰富计算机病毒处理经验的用户都感到头痛,在反病毒软件无能为力的时候,手工清理计算机后门是一个非常好的选择。
# ^% D1 R+ a$ c( I+ m3 e& I# H! R* T2 z7 d8 l
</EM>看过《黑客帝国》的读者应该对电影主人公尼奥记忆犹新,这位闯入虚拟世界的程序员一次又一次演绎了“救世主”的角色,保护了城市居民,其形象早已深入人心。回到现实世界,我们同样要面对亦真亦幻的数字虚拟世界——网络,这里同样潜伏着许多危险,同样存在“黑客帝国”,但这里却没有尼奥的存在,我们能看到的,只有形形色色的安全厂商和他们所提供的安全工具。
& E9 E) }. \' Q0 r0 s( |' L于是,许多用户把各种安全工具看成网络世界中的“救世主”,我们看到许多安全工具的广告,我们购买市面上流行的防病毒软件,我们在听闻每周一次的“新病毒预警”时赶紧升级病毒特征库,我们每周都对电脑进行一次漫长的病毒扫描……许多人都这样做,许多人不得不这样做,因为我们把一切都交给杀毒工具了,似乎有了它们,我们就可以肆无忌弹地上网聊天、看电影、下载软件,我们感到自己很安全,我们以为它们就是网络安全的“救世主”。
# l7 v) Z) T' a1 {$ W然而,事实真的如此美好吗?</FONT>( d' }5 j. @& u. @$ s, I* \
<P><FONT size=4><b>没有绝对的安全9 }! ?: g( u9 K/ p
</b>我们知道,杀毒软件目前仍然是采用“特征码”技术去辨别病毒的,也就是说,杀毒软件的引擎读取一个程序或文件内容,并与自身数据库里储存的病毒程序特征码进行匹配,一旦两者雷同,杀毒软件就“确认”此文件为病毒。无可否认,这种传统的识别病毒的方法确实有效并且准确率高,但是随着病毒家族的不断扩张,病毒样本数据库体积的增长也到了不可忽视的地步,不幸的是,病毒样本数据库越大,扫描速度也越慢。: R& [. F  `6 ^- [2 C
更可怕的是,在遇到未知病毒的时候,杀毒软件因为找不到可以比照的特征码,就可能将病毒视为“良民”放过去,这样一来,系统就被病毒感染了——这种情况下,如果更新了病毒库的杀毒软件扫描到曾经被自己放过的未知程序是新型病毒,那么即使它想将已经染毒的系统清理干净,难度和风险都会成倍增加,因为这涉及到操作系统的权限之争,关于权限的问题,我们会在下文中详细解释。
* T* {+ N; {/ {2 {+ \: d在计算机感染了病毒但是杀毒软件也无法帮你的时候,你还能怎么做?如果掌握一些手工清理恶性病毒的工具和方法,在这种情况下会特别有用,实际上,很多计算机高级用户甚至反病毒工程师都是这么做的。7 z8 p! p; l3 l# g  ]& W: q
来吧,除了信任反病毒软件之外,我们还应该有自己的“秘密武器”,在反病毒软件也不能解决问题的时候,你应该学会自我拯救。</FONT></P>6 n; c* Z4 n. m9 r$ q. s
<P><FONT size=4><b>做好准备工作</b>0 @+ r& `: W. C, N8 f
如果一个用户怀疑自己的电脑感染了后门程序,他的第一反应大概会是打开杀毒工具然后对系统进行扫描——现实中的我们太依赖杀毒软件的方便快捷了!也许有人会反对:既然能使用工具方便快捷地保护计算机安全,又何必自寻烦恼学习手工安全防御?这种想法没错,但问题在于:未经授权闯进你计算机的“客人”并非都是在各大安全工具厂商通缉名单上的成员,在这个庞大的网络上,还流传着一部分小规模使用而且没有被公开的“私人后门”(例如大部分DDoS后门工具其实都是黑客自己写自己用,很少会在网上公开)。这种情况下,采用“病毒库特征码”技术的反病毒软件的局限性就暴露出来了,被感染了“私人后门”的用户偶尔会察觉到计算机的异常,然后他会开始用反病毒软件查毒,结果因为渗透进系统的后门程序并没有在病毒特征库里“登记”过,杀毒软件就认不出它了,用户只能在浪费大量时间后看着杀毒软件报告“没有发现病毒”的消息后继续“享受”被入侵而自己浑然不觉。这个事实可笑吗?我们竟然在自己信赖的“尼奥”面前被敌人杀死,这太荒唐了。
& @1 V; X4 y. O/ n$ S如果你能清楚地认识到杀毒软件不能带给你绝对安全这个事实,那么,我们应该做好哪些准备工作呢?后门技术从诞生到现在,已经历经了好几代,它们自身的伪装技术也越来越成熟,从最初的启动项结合隐藏进程方式,到最新的Ring 0驱动方式,我们越来越难发现这些“客人”的痕迹,当它们开始对电脑搞破坏的时候,已经来不及做补救措施了,所以,我们需要一种可以找出后门气息的“法宝”。
9 h: _& b3 k9 J4 ^在进行一切工作之前,用户需要对系统有点了解,例如注册表、启动项、服务、常见的程序和进程名等,这是学习手工查毒最基本的要求。
+ }3 P( ^2 P9 O<FONT color=#800000>注册表、进程及权限</FONT>
! D) z5 K4 x9 k2 n如果要想手工清理病毒,我们必须了解Windows系统的3大知识点:注册表(Registry)、进程(Process)和权限(Privilege)。/ |9 X  x* E% d- C) R/ ]
“注册表”是出现在Windows 95及以后Windows操作系统中的一种特殊数据库,在此之前,用户要对软硬件工作环境进行配置,就要通过修改一种被称为“配置设置”(INI)的文件来完成,但是由于每种设备或应用程序都得有自己的INI文件,无形中增加了管理难度,为了解决这个问题,微软开始用“注册表”集中管理应用程序和文件的关联、硬件设备说明、状态属性以及各种状态信息等数据。- B, r, `" S4 j( J) |
注册表用类似目录树的结构来存储数据,其最顶端的5个项目称为“根键”,系统能识别的所有数据都是从这里展开的,这5个根键是:HKEY_CLASSES_ROOT(负责登记各种组件注册类别和文件并联信息)、HKEY_CURRENT_USER(负责登记当前登录用户的环境信息)、HKEY_LOCAL_MACHINE(负责登记整个系统的公共环境信息)、HKEY_USERS(用于登记所有用户的环境配置信息)、HKEY_CURRENT_CONFIG(用于登记当前的配置信息)。我们主要关心的前面3个根键里的数据,它们包含后门和病毒最爱篡改的一些地方,分别为:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run、HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run和HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices。一般的后门都要通过修改这些入口并加入自己的配置信息以达到跟随系统一起启动的目的。除此以外,还有一些病毒和后门采用修改文件并联信息(HKEY_CLASSES_ROOT)的方法,并联型后门最爱更改这里的EXE、BAT、SCR、COM等可执行文件的注册信息,以便让自己抢先一步运行。# B. r4 b  R7 ]" p. E& t% a
“进程”是指一个可执行文件在运行期间请求系统在内存里开辟给它的数据信息块,系统通过控制这个数据块为运行中的程序提供数据交换并决定程序生存期限,任何程序都必须拥有至少一个进程,否则它不被系统承认。进程从某一方面而言就是可执行文件把自身从存储介质复制在内存中的映像,它通常和某个在磁盘上的文件保持着对应关系,一个完整的进程信息包括很多方面的数据。在进程查看工具中,“应用程序”选项卡包含的是进程的标题,“进程”选项卡则包含了进程文件名、进程标识符、内存占用等信息。其中,“进程文件名”和“进程标识符”是大家必须掌握的关键信息,“进程标识符”是系统给进程分配内存空间时指定的惟一数字,进程从载入内存到结束运行的期间里这个数字都是保持不变的,而“进程文件名”则对应着磁盘中的某个文件,根据它我们就可以找到原始的可执行文件。
  H1 k2 |4 {; D1 ?( ?<IMG src="http://www.chip.cn/images/2006/0202/117-1.jpg">$ h! E; k1 s4 i  d
最后再来看看“权限”。操作系统是由内核(Kernel)和外壳(Shell)两部分组成的,内核负责一切实际的工作,包括CPU任务调度、内存分配管理、设备管理、文件操作等,外壳是构筑在内核之上的用户界面,它负责指令的传递和解释运行。由于内核和外壳负责的任务不同,它们的处理环境也不同——内核运行于Ring 0级别,拥有最完全最底层的管理功能,而外壳只拥有Ring 3级别,这个级别能操作的功能极少,几乎所有指令都需要传递给内核来决定能否执行,一旦内核发现有可能对系统造成破坏的指令传递,内核便返回一个“非法越权”标志,发送这个指令的程序就有可能被终止运行,这就是大部分常见的“非法操作”的由来,这样做的目的是为了保护计算机免遭破坏。但是现在,Ring已经屡屡被后门木马利用,运行于Ring 0级别的木马更是令人头痛。
( U) k0 O' I6 B' w( ^' I! F# ]! G8 B
<b>手工清理流行后门实战</b>
5 W& n0 q7 c6 j5 Z; `0 C1 |+ w% A光有单纯的理论知识还远远不足以用手工方式对付病毒和后门,在接下来的环节,我们将为你展示一系列最新后门的手工清理方法,请注意我们提到的辅助工具和操作方法。因为后门程序往往包含了木马和病毒的双重特性,因此它的清理比单纯的计算机病毒更加复杂,掌握了后门的手工清理方法,那么手工清理病毒自然不在话下。8 z/ R1 F& i2 T$ J4 A
</FONT><FONT size=4><FONT color=#800000>进程伪装型后门的歼灭
- Y% j& d" B# m( A</FONT>最初的后门靠注册“系统服务”的方法在Win9x系统里隐藏自己的运行信息,到了NT架构里,这个方法失效了——NT家族自带的任务管理器会把所有普通进程都一视同仁地列举出来,连初级用户都能轻易发现后门的痕迹,于是后门制造者开始攻克心理学和障眼法:让后门进程在任务管理器里把自己标榜为“系统关键进程”,从而达到欺骗用户的目的。
: k+ a5 j6 d( a我们都知道,任务管理器列出的众多进程里包含着一部分“关键进程”,它们是无法通过任务管理器中止的,而且许多文章也会提到相关进程名,久而久之,我们又养成一个习惯:查看进程信息时,只要看到熟悉甚至类似的进程名就忽略不计了,仅仅去寻找不熟悉的进程名,于是后门制造者就直接利用这个心理暗角配合路径遍历法则,让后门进程显示为“smss.exe”、“svchost.exe”、“lsass.exe”、“csrss.exe”、“winlogon.exe”等关键进程名,这样就轻松骗过了用户和任务管理器。- M1 d8 U+ t0 M4 I
* B1 z% O/ i! v; X
<IMG src="http://www.chip.cn/images/2006/0202/118-2.jpg">
" ~" Z0 n& u: ~2 k. P在这种情况下,系统自带的任务管理器已经不能信任了,因为它遗漏了最重要的“路径信息”,后门就利用了这一点——它可以把自己伪装成svchost.exe放到Windows目录下,然后在注册表启动项里加上不带路径信息的“svchost.exe”信息,系统在寻找svchost.exe时会首先在Windows目录里发现并执行它,而真正的关键进程svchost.exe是在SYSTEM32目录里的,而且它必须通过“服务管理器”(Service Control Manager,SCM)加载,于是任务管理器会显示多个svchost.exe进程,但是由于缺乏路径指示,我们根本不知道系统已经多了一个假的svchost.exe。即使我们发现了它是假的,也无法用任务管理器终止它的运行,因为任务管理器只是简单地通过文件名就认定它是“关键进程”了,自然不会让你终止。类似的后门伪装文件名还有“SYSTEM\rundll32.exe”、“SYSTEM32\rundll.exe”、“SYSTEM\services.exe”等,要发现并歼灭这些后门,除了要求我们对常见的系统关键进程有所了解以外,还需要借助第三方任务管理器的帮助,例如“Windows优化大师”附带的进程查看器,它们可以迅速发现路径不对的“伪系统进程”。8 d' M8 r6 m8 x6 j+ ]
</FONT><FONT size=4><FONT color=#800000>服务欺骗型后门的战役
, T1 V+ H$ T7 a2 d- D8 ~</FONT>Windows的任务管理器不能终止两种正在运行的程序:系统进程和通过服务管理器(SCM)加载的系统服务程序。所以一部分后门制造者设法把后门做成服务形式,让SCM直接启动后门服务进程,而不是借助注册表的启动项加载。这样,即使是对注册表启动项有一定了解的用户也难以发现异常,而且就算他想终止任务管理器里显示的奇怪进程,也会被拒绝,如果用户对服务管理器的了解不深,那他将会在眼花缭乱的服务面前变得束手无策。/ d: Q) f2 D; n- l& f
这时候,我们需要用到“系统配置实用程序”(在命令提示符下输入“msconfig.exe”就能打开它),切换到“服务”选项卡,把“隐藏所有Microsoft服务”选项选中,剩下的列表就是非微软开发的普通服务程序列表了。一般后门服务会包含欺骗性质的字符或者伪装成某厂商的服务名,如“Rising Virus Monitor”(瑞星监控)、“Macromedia License”等,记住这里显示的列表名称,接着运行“服务管理器”(Services.msc)找到对应的项目,看看属性里的文件和路径是不是存在,如果你并没有安装某些杀毒软件而SCM里却找到了对应的项目,那么它们肯定是狡猾的后门无疑。一些间谍软件还会自作主张地把自己命名为“Windows Print Controller”,简直就是对系统“Print Spooler”服务的公然挑衅。
0 C) \2 y: y/ k, f# t- ^. S在找到这类后门后,不要急着终止它的运行,因为后门作者当然知道SCM能直接停止后门的运行,他就必然会做一些复活措施,所以我们必须先把后门服务的“启动类型”设置为“禁止”,然后重启一次确保后门程序无法跟随系统启动,这时候才能开始清理后门。SCM提供的后门信息路径就是后门程序的藏身所在,直接在磁盘上找到它并删除即可,但是服务项目却无法直接用SCM删除,要删除这个残留的服务项,要编辑注册表才能做到。SCM启动服务的位置固定在注册表的HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services分支里,找这个分支就可以发现所有服务——也许你会说,这里显示的名字似乎都毫无意义,我怎么知道哪个是我正在找的?其实很简单,让我们回到SCM,查看一个服务的属性,例如“DNS Client”服务,它的属性里写着“显示名称:DNS Client 服务名称:Dnscache”,现在回到注册表分支,查找“Dnscache”,就会看到它是CurrentControlSet\Services\Dnscache,这就是我们在SCM里看到的“DNS Client”服务,如果你删除掉“Dnscache”项目,那么“DNS Client”服务也会消失。用这种方法,我们就能彻底将服务欺骗型后门从系统中扫地出门。0 o' Z( b$ |+ g5 b% H' {$ l, q! U
<FONT color=#800000>最强对决:Ring 0后门</FONT>1 ^, `+ u, ~/ \& e, \" _$ ]8 f
随着安全技术的发展和计算机用户安全意识的提高,一般的木马后门越来越难生存,于是一部分有能力的后门作者把眼光投向了系统底层——Ring 0。位于Ring 0层的是系统核心模块和各种驱动程序模块,位于这一层的后门也是以驱动的形式生存的,而非一般的EXE。后门作者把后门写成符合WDM规范(Windows Driver Model)的驱动程序模块,把自身添加进注册表的驱动程序加载入口,便实现了“无启动项”运行。因为一般的进程查看器都只能枚举可执行文件的信息,所以通过驱动模块和执行文件结合的后门程序在进程管理器中绝难看到,并且由于它运行在Ring 0级别,拥有与系统核心同等级的权限,因此它可以更轻易地把自己隐藏起来,无论是进程信息还是文件体,甚至通讯端口和流量也能被隐藏起来。在如此强大的隐藏技术面前,无论是任务管理器还是系统配置实用程序,甚至系统自带的注册表工具都无能为力,我们不得不借助于更强大的第三方工具。幸好,一部分有编写Ring 0程序能力的人并没有加入Ring 0后门的阵营,而是把技术用到了安全检查方面,于是我们才有了IceSword、RootkitRevealer、knlsc等优秀的检测工具。
, M- P5 V; E$ C8 f& S; O: K一般的进程工具是运行在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后门文件名,就会发现它,删除掉注册表的加载数据后重新启动计算机,再删除掉后门文件就可以解决问题。
0 m3 Q* E; `1 t/ B6 r9 }</FONT><FONT size=4><FONT color=#800000><IMG src="http://www.chip.cn/images/2006/0202/119.jpg">) A7 e0 m/ N. m$ q6 n5 O7 u
清理不受欢迎的附属产品  x% r2 d, Q9 [- K& I
</FONT>除了传统的病毒和木马之外,近年来最不受人欢迎的恶意程序应该算是“广告软件”(Adware)和“间谍软件”(Spyware),可以说,这些恶意软件才是当今网络最令人厌恶的东西!
. u% Q" D# r5 a0 l与各种后门的意图不同,恶意捆绑软件一般不会携带破坏性质的代码,通常还会拥有一些号称“服务大众”的功能,这些功能或许可以让它得到一些用户的拥戴,但是这种光环并不能掩盖其“服务大众”背后的暴利黑幕。首先,恶意捆绑软件可以轻易收集到用户信息,任何一台被安装了这类软件的计算机恐怕都不再有“个人隐私”可言。其次,恶意捆绑软件可以借用广大计算机作为它无偿弹出公司广告的殖民地,如果每条广告都能给该软件背后的公司带来一点利润,那么一年下来这个公司就已经从广大用户群的身上搜刮到了一大笔可观的钱财。天下并没有免费的午餐,在使用这些捆绑软件提供的“免费快捷服务”时,或者你已经为此付出了代价。% j' V# E7 j) ]# Y2 f% Q9 c# j
最初的捆绑软件还比较单纯,仅仅使用BHO技术(Browser Helper Objects,浏览器辅助模块)把自己安家在浏览器上。但是现在,也许因为被用户清理得太多了,一些公司恼羞成怒地把Ring 0级别的木马技术应用在了自家产品上,配合令人厌恶的强制安装技术,让用户只要浏览某个页面,就会不知不觉地被安装上一堆BHO。
) o. G8 F$ }' H& @. |浏览器的BHO加载项目是固定在系统目录的“Downloaded Program Files”文件夹中,对于在浏览器上出现的栏目,只要简单地在这个文件夹里选中删除即可。但是其余残留文件就只能靠用户自己寻找了,由于制作恶意捆绑BHO的公司太多,文件存放位置也不同,这里无法给出很全面的删除方法,所以只能推荐两个工具:Upiea和RogueCleaner,使用它们即可快速卸载掉惹人讨厌的附属产品。更高级的工具有HijackThis,它专门用于对付浏览器劫持软件。</FONT>
. |2 {, X  L$ @2 V. o$ F</P><!--正文内容结束--></H1>
发表于 2006-3-4 13:45 | 显示全部楼层
注册一下,这个回头再来看看,有点长了.
发表于 2006-9-10 00:45 | 显示全部楼层
看得我都想睡了,太长了,不过还是谢谢了,见识了!
发表于 2009-5-10 10:42 | 显示全部楼层
振作起来,你需要努力。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|关于我们|sitemap|小黑屋|Archiver|手机版|UG网-UG技术论坛-青华数控模具培训学校 ( 粤ICP备15108561号 )

GMT+8, 2024-11-15 09:16 , Processed in 0.156729 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表