与间谍软件作斗争

不论是对于企业或者个人用户来说,间谍软件数量的增长都是令人头痛的问题。通过本文介绍的一些技术,
用户将有能力应对由间谍软件带来的常见问题。
如今,来自互联网的安全威胁已经不是什么新鲜的消息了。不过在面对垃圾邮件、弹出窗口以及各种病毒的同时,应付间谍软件也成为了保护计算机安全每日必做的功课。间谍软件之所以会如此难以处理,主要是因为间谍软件的种类太多了,而且间谍软件的作者又通过各种方法努力让用户无法删除它们。通过本文介绍的几种技术,用户将有能力处理企业电脑中的间谍软件。

什么是间谍软件
假如你不知道什么是间谍软件,那么我可以告诉你,用我的话来说,间谍软件就是“浏览器寄生虫”。因为在大多数情况下,间谍软件都是在用户访问一些恶意站点时在不知情的状态下被植入用户电脑的。因此从某种角度看,间谍软件要比那些通过邮件附件形式传播的病毒更隐蔽,因为邮件附件中的病毒只要用户不打开附件就不会被激活。

大多数间谍软件都是在用户浏览恶意网站时自动进入用户电脑的,而一般人访问到这种恶意网站的机率远比我们想象的要大得多。你可以想象一下自己是不是在访问一些门户网站时由于输入地址错误进入了另一个网站。事实上,很多恶意网站都会选择一个和知名网站类似的域名,通过用户在输入网站地址时的拼写错误而达到传播间谍软件的目的。

那么间谍软件进入用户的电脑中会做些什么呢?这个问题并没有一个明确的答案,因为间谍软件的种类很多,不同 的间谍软件具有不同的运作机制。有些间谍软件会监视用户的浏览器,并采用开启无数弹出广告的方式令用户的电脑瘫痪;有些会在电脑中寻找用户的信用卡号等个人资料,并把它们通过互联网传送到一个指定的地方;还有一些间谍软件会修改IE设置,改变起始页并将收藏夹下的常用链接替换成间谍软件作者所指定的网站链接。

为什么间谍软件难以清除
虽然我们发现,间谍软件有与病毒类似的性质,但是间谍软件的清除工作要比大多数病毒更困难。从传统意义上说,控制间谍软件并不比控制病毒要困难,但是你应该想到,虽然大多数用户都安装了反病毒软件,但是有多少人,尤其是非IT行业的人,懂得为自己的电脑安装一个防间谍软件的程序呢?

也许你会说,我的防病毒软件带有扫描间谍软件的功能,但我还是要说,最好的清除间谍软件的办法应该是安装一个专门的反间谍软件程序。比如Lavasoft的Ad-Aware,如图A所示。

图A:Ad-Aware 可以很好的清除间谍软件,并且这个软件对于个人用户是免费的。

如果你不太熟悉Ad-Aware,我可以告诉你,这是一个比较不错的清理间谍软件的工具,更重要的是,它对于个人用户来说是完全免费的。你可以从Lavasoft的网站上下载Ad-Aware,专业版的Ad-Aware还可以实时监控系统,防止间谍软件入侵。

也许你会想,如果Ad-Aware真的那么好,那么为什么这篇文章还要继续介绍其它技术。Ad-Aware确实是个不错的软件,但是它有一个弱点,那就是当用户系统里的间谍软件被清除后,系统可能会运行不正常。别的杀毒软件也有可能出现这样的问题。

当间谍软件破坏了你的Windows系统
一般来说,当间谍软件从Windows中清除后,最常见的系统错误就是DNS错误。在这种情况下,用户可以利用IP地址来察看网页,但是用域名就不行了。如果试图在IE中使用域名访问站点,IE会显示“该页无法显示”。

要知道为什么当间谍软件被清除后会有如此后果,你应该先了解windows是如何让你的电脑与Internet相连的。也许你知道,Windows通过利用TCP/IP协议与互联网通信,而Windows利用TCP/IP协议的机制被称作Winsock。

Winsock并不只是一个单独的文件,而是通过一系列分层的结构实现TCP/IP协议的,就像一个链子。如果用户将链子中的一环移开,Winsock的功能就会受到影响,轻则Internet连接出现某种问题,重则使电脑断开与Internet的连接。

某些间谍软件利用了Winsock,这样做有不少好处。首先,间谍软件看上去就像操作系统的一部分,因此比其它类的间谍软件更难被发现。第二,如果间谍软件核心进入了Winsock链,那么它就获得了相当大的权力,可以随意监控电脑与互联网的通信。最后,如果间谍软件核心能够骗过Windows,让它相信其是系统的一部分,那么这个间谍软件就不仅能在当前用户下工作了。因为在大多数情况下,操作系统和它的组件在该电脑的所有用户中都是有权限的。

因此事情就变得比较棘手了,比如你可以想象间谍软件已经渗入到操作系统并进入Winsock链中,而此时运行间谍软件清除工具虽然可以将间谍软件清除掉,但同时也破坏了winsock链的正常状态,从而影响了电脑与Internet的连接。在这种情况下,很多人都会选择重新安装Windows系统以便覆盖目前受损的系统,因为重新安装系统可以将丢失的系统文件补上,这样应该可以让Winsock链恢复正常。不过很不幸,当重新安装后你会发现,问题仍然没有得到解决。为什么呢?

这是由于Windows是一种可以升级和更新的系统,而Winsock链上的各个文件并不属于Windows的核心文件,而是通过注册表调用的。当用户重新安装操作系统覆盖原来的操作系统时,Setup程序会覆盖系统文件,但注册表中所有客户自行定义的内容则不会被修改。这意味这假如间谍软件在两个Winsock组件间插入了内容,那么就算间谍软件模块被清除了,并且系统也重装了,但注册表依然会调用这个间谍软件模块。

解决这个问题的唯一办法就是重建Winsock链并纠正注册表中与Winsock相关的内容。需要注意的是,修改注册表具有一定风险,一个错误的修改可能会导致系统或者应用程序损坏。因此在做以下操作前,我强烈建议用户先备份注册表。

要手动修改Winsock,需要在注册表中找到并删除以下两个键:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Winsock

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Winsock2

删除这两个键后,你需要关闭注册表编辑器并重新启动电脑。当重启动时,Windows会在注册表中搜寻你刚才删除的那两个键,当发现找不到该键时,系统就会自行建立正确的键,这个问题也就得到了解决。

当系统重启后,你需要重新安装TCP/IP协议。右键点击网络连接并选择Properties 项,然后系统会列出连接协议列表。现在点击Install按钮并选择Protocol,然后点击Add。之后点击Have Disk并输入C:\Windows\inf(假设C:\Windows是你的Windows系统路径)。从列表中选择Internet Protocol (TCP/IP)项,并点击OK。重新启动电脑。

虽然这种方法可以修复错误,不过对一般用户来说可能有些困难。下面我介绍一种更简单的修复Winsock错误的方法。实际上,它是某个电脑高手为了快速修复这一错误而制作的免费小工具,名为Winsock Fix,由于它也是利用修改注册表的方式完成修复错误的工作,因此我依然建议用户在使用前备份注册表。

软件限制策略
另一个与间谍软件作斗争的方法是利用Windows XP的一个鲜为人知的功能,这个功能被称作软件限制策略(software restriction policy)。软件限制策略原来是为了协助系统管理员管理未经验证的软件(如游戏)脱离联网的。因此,软件限制策略对于间谍软件来说,也有一定的防御效果。

虽然有多种途径可以实现软件限制策略,但你必须知道何种软件需要被约束。比如你不能只设定游戏需要进行限定,还必须指明是哪个游戏的哪个(或哪几个)文件。对于间谍软件也是如此,你必须知道间谍软件所使用的文件名。

因此,使用软件限制策略并不能防止所有的间谍软件,因为每天都有新的间谍软件出现,大部分都利用了系统文件(无法被限制)。不过对于一些知名的间谍软件,这种方法还是相当有用的。

Gator Corporation就是一个很好的例子,这个公司现在更名叫Claria Corporation。我并没有说Gator的软件就是间谍软件,因为它们现在正在以诽谤罪状告以前持此观点的人。但实际上,Gator的软件确实有类似于间谍软件的动作。

如果你不了解Gator的软件,那我就来介绍一下。Gator软件是一个电子钱包程序。它会随时收集并监视用户的个人信息,当用户在填写Web表单时,Gator会自动填入相应的内容,类似于Windows的自动完成功能。这听起来挺不错,不过为了实现这种便利,Gator需要用户允许Claria公司监视用户的浏览器动作并弹出Gator Advertising Network上的小广告。

和其它类型的间谍软件不同的是,Gator会事先告知用户,它将监视用户的浏览器内容并弹出小广告。不过虽然公开声明了,但Gator的安装程序却明显是在引诱用户安装它。所幸的是,你现在可以用软件限制策略来屏蔽这个软件了。

虽然有多个版本的Gator,但如果你屏蔽了FSG.EXE、FSG_3202.EXE和TRICKLER.EXE 这三个文件,就可以彻底摆脱Gator了。

要在Windows XP中创建一个针对Gator的软件限制策略,你可以打开控制面板,在管理工具中点击Performance And Maintenance,然后双击Local Security策略图标以打开Group Policy Editor。

当编辑器打开后,找到Security Settings | Software Restriction Policies | Additional Rules。右键点击Additional Rules并选择New Path Rule选项。之后你会看到一个New Path Rule对话框,在其中的路径栏输入%SYSTEMROOT%\FSG.EXE,并确保Security Level选项置于Disallowed,然后输入一段有关这个策略的说明。点击OK键并按照这个步骤重复对FSG_3202.EXE 和TRICKLER.EXE文件建立策略。建立好的策略看上去应该和图B类似。

图B:某些间谍软件可以通过软件限制策略来屏蔽

使用防火墙防御间谍软件
在我忙着帮一个用户清除间谍软件时,另一个用户打电话来问我,为什么她的电脑安装了防火墙,可是还是感染了间谍软件。实际上,防火墙对间谍软件的防护能力相当弱。记住,大部分感染都是通过用户访问恶意网站完成的。而恶意的代码实际上是随着其它正常的HTML代码从服务器的80端口传入用户电脑的。由于80端口是一个标准的Web浏览端口,因此防火墙不会对此进行任何干预。

虽然防火墙对于防止间谍软件入侵没有太大作用,但这并不表示防火墙在我们与间谍软件的斗争中一无是处。仔细想想就会明白,因为间谍软件的大部分功能就是将个人信息或者浏览器信息传递到互联网某处,虽然防火墙不能防止间谍软件进入电脑,但它却可以防止敏感的信息从电脑中流向互联网。只要在防火墙上作一些限制流出数据的设置就可以实现这一功能。一般来说,默认的防火墙设置会认为所有流出数据都是安全的。我建议用户限制电脑的流出数据,而只保留少数几个端口的流出数据即可。比如,仅保留与HTTP、POP3和SMTP相关的端口开放。

另一种解决之道——查阅数据库
虽然我们在前面一直说间谍软件入侵的主要途径是来自那些恶意网站,但这并不是间谍软件入侵的唯一途径。只要访问过download.com的用户就该知道,这里有成千上万的免费软件可供下载。虽然其中大部分软件都是名副其实,但仍不能排除有些软件会在正常工作的同时也从你的电脑中窃取个人信息并发送出去。

那么怎么才能知道那些软件是安全的呢?你可以阅读软件的使用协议或条款,但这些条款一般都比较晦涩,并且很多间谍软件作者并不会公开声明软件含有某种获取个人信息的机制。因此更好的方法是问问那些经验丰富的专家。Spy checker网站就是这样一个专家,它的数据库中包含了大部分已知的带有间谍软件性质的应用程序。如果你对即将安装的应用程序抱有疑虑,可以看看它是不是在Spy Checker的数据库中。图C是Spy Checker的界面。

图C:Spy Checker 提供了一个免费的数据库,记录了包含间谍软件的应用程序.

Published At
Categories with 网络技术
comments powered by Disqus