恶意软件清理和保护你的网站的小技巧

2007年9月25日星期二

译自: StopBadware.org : Tips for cleaning & Securing Your Website

译者按: StopBadware.org 是一个独立于Google的致力于恶意软件清理(badware)的非盈利组织。根据StopBadware.org对 恶意软件 (亦称流氓软件)和 恶意软件网站 的定义,Google对索引中带有恶意软件的搜索结果会加上“ 该网站可能含有恶意软件,有可能会危害您的电脑。 ”。如何清除恶意软件并保护你的网站不受恶意软件的侵犯?StopBadware.org在他们的英文网站上给出很多非常实用的小技巧。我们刚刚翻译了StopBadware.org的 恶意软件清理指南 ,在此,我们继续为广大中文站长翻译StopBadware.org关于恶意软件清除的小技巧。

清理恶意软件并保卫你的网站的小技巧

这篇文章提供恶意软件删除并保持网站干净的方法。它是一个起始点。之所以是起始点,是因为我们应该会不断更新它并提供更多的方法。请注意,这篇文章中的方法绝不是全面的或详尽的。我们只想把它作为是关心恶意软件的站长们要做的第一步。我们鼓励站长们和网站托管商们撇开这里所提供的建议,独立研究网站的安全。获取关于网站安全问题的最新消息是站长和网站托管商们自己的责任。

通常有三个基本步骤来保持一个网站的洁净:
  1. 恶意软件的识别
  2. 恶意软件的清理
  3. 恶意软件的预防

恶意软件的识别

让您的网站保持不受恶意软件侵犯的第一步是检查你的网站上是不是已经有了恶意软件。恶意软件往往根本不顾用户选择如何使用他们的计算机。有些应用软件是恶意软件,因为他们的行为是欺骗性的或不可逆转的(例如,有的应用程序秘密安装难以或根本无法卸载的间谍软件)。还有些应用软件是恶意软件,因为他们有不良行为(如显示弹出式广告或改变用户的主页设置)。这些行为往往事先不让用户知道,也无从得到用户的同意。

这里是一些你应该查一查的常见的恶意软件类型:

(译者按: 如果你的网站被Google在 搜索结果加上"恶意软件“标记 ,或是在 Google站长工具 里的某个网站概括中有一个恶意软件标签,那么你在站长工具里可以看到你的感染了恶意软件的URL的样本。)

1. 你的网站有可以下载的恶意软件

根据StopBadware的软件指南,评估你提供下载的软件(包括任何第三方捆绑在你的软件上的应用软件)。如过你提供下载的软件违背了我们的指南,它就构成了恶意软件。

如果你的软件和第三方应用程序捆绑,你可能还需要检查是否捆绑软件会安装任何危险性或欺骗性的代码。一个检测方法是,下载整个捆绑软件到一个虚拟机,然后使用反病毒或反间谍软件对它扫描。

2. 在你指向的网站中存在的恶意软件

如果你的网站链向恶意网站,你的网站访问者就处于危险之中,哪怕是恶意软件或代码漏洞实际上不寄存在你的网站上。在以下情况下,你的网站可能违反了我们的 网站指南 :如果你的网页自动重定向到一个寄存或传播恶意软件的网站; 直接链接到恶意软件的可执行文件上; 链接到另一个企图自动安装恶意软件到用户电脑的网站; 或者是含有大量链接到其他主要是寄存或传播恶意软件的网站。

有一些方法可以判断你网站上的链接是否违反了我们的指南。检查你的所有链接,看是否有些链接会让用户下载其他网站上的恶意软件,或导致用户去访问其他网站上已被恶意软件感染的网页。(我们建议你在找恶意软件的时候用一个虚拟机,以避免损坏你自己的电脑)。以下方法也可能是有用的:通过搜索你的网站的源代码来并寻找到不明网站的链接,特别是到可执行文件的链接。可执行文件的扩展名包含.exe, .bat, .cmd, .scr, 以及.pif。有的应用软件可让您对一个网页的恶意链接进行扫描。你也可以使用这些应用程序来帮助决定是否链接到该网页。

您也可以把 StopBadware报告 以及我们的 恶意软件网站清除站 作为一种资源。你可以查询我们的数据库来得到你已经链接到的或者是想要链接到的网站和软件的信息。

3. 通过你网站上的广告传播的恶意软件

在你的网站上发布的广告是另一种恶意软件的潜在来源,因为大多数的广告包含到一个外部网页的直接链接。关于通过链接找出恶意软件的指南信息,请参阅第以上的 1.2节 。如果你在你的网站上展示第三方的广告,请确保那些链接不被引向不良软件或被恶意软件感染的网页。评估通过广告传播的软件的方法类似于在上面 第1.1节 描述的方法("你的网站有可以下载的恶意软件")。

您也可以把StopBadware深度报告以及我们的 恶意软件网站清除站 作为一种资源。使用我们的数据库来检查你正在考虑使用的广告网络,以了解是否有其他网站已经因为那些广告商而产生了恶意软件的问题。

4. 贴在你网站的用户区上的恶意软件链接

如果在你网站的任何部分,用户可以张贴或上传内容,这些地区可能是一个潜在的恶意软件或恶意软件链接源。关于恶意软件和恶意软件链接,请参阅上面的 1.1节 1.2节

5. 你的网站受到黑客攻击

另一种常见的恶意软件网站来自黑客攻击。黑客攻击是第三方在安全性很低的网站上插入代码或可执行文件。一个常见的例子是"注入攻击",即黑客利用安全漏洞来在你的一个网页上注入有害代码。通常这个代码对你及你的用户来说是不可见的,但它会在一个访问者的电脑后台触发恶意软件的下载。你经常通过察看你的网页的源代码来发现这种攻击是否发生,从而确定它是否包含你从来没写过的任何代码。

两种常见的"注入攻击"类型是:
I. 无形的隐藏框架(invisible iframe)
Iframe标签是一种HTML标签。一个iframe在一个网页上创建一个小"窗口",在这个内嵌窗口中可以载入另一个页面。Iframe并非总是用于不可告人的目的; 它被经常用来,举例来说,在博客中嵌入一个视频。当恶意黑客使用它时,iframe可以被设置成小到看不见。访问受感染网页的用户永远不会知道另一页也在小iframe窗口里被载入。如果你在你网站上的一页中看到一个iframe的宽度是"0",高度也是"0"的代码,你就找到了一个看不见的iframe。Iframe最常见的是被插在网页源代码的最上端或最底端。检查iframe应首先检查开始网页标准代码的<html>标签前,或结束网页代码的</html>标签后。
II. 混淆代码 (Obfuscated Code)
混淆代码或脚本通常被隐藏在你的网站正常代码中,所以他们可以很难被察觉。这些代码是专门为了防止自动化查找工具发现他们。混淆代码不一定是恶意软件; 一些合法的编程者故意混淆编码以防止他人复制自己的工作。但是,如果你为你网站写的代码并不是想故意混淆,找到一块混淆代码可能说明有一个注入攻击。最常见的两种混淆代码的方式是通过编码和加密。

编码有时会很容易被看到,因为编码或者使用十六进制, "unicode”, 或“宽"字符。如果是十六进制字符,你会看到javascript代码的字符串由一些百分号后加两个字符的组合组成(例如%AA%BB%CC)。如果是unicode字符,你会看到字符串由一些"\u"紧随着四个字符组成(例如:
\u0048\u0069\u0021)。一般而言,编码成这种方式的代码块会占用若干段落。如果您在你的网页源代码里发现大块上述模式中的任何一种,它很可能是混淆代码。

加密代码更难被找到,因为他们没有一套模式。然而,加密代码看上去会像一块费解的文字。即使你不熟悉javascript编程,你会注意到你的网站上正常的javascript代码会使用基于常用英语单词的语法。编码或加密了的文本看上去就是完全不能理解的字母,数字和符号块。你应检查你网站日志来看看有没有对你所不认识的可执行文件的引用。可执行文件的扩展名包含.exe, .bat, .cmd, .scr, 以及.pif。

虽然大多数黑客的攻击重点是html代码,坏软件本身也有可能被上载到安全性很差的网站。不良软件可能包括不明的可执行文件(譬如以.exe, .bat, .cmd, .scr, 以及.pif结束的文件),javascript文件,甚至把图片上传到您的网站而你并未发觉。有时攻击者仅仅想利用你的网站来寄存恶意软件,然后从其它受害网站链接到该软件。这里有一个检测你的网站是否被寄存了不良软件的方法,即从你的正在运行的网站中下载所有的源代码到一个虚拟机,然后使用反病毒或反间谍程序进行扫描。

恶意软件清理

如何从你的网站去清理恶意软件取决于你的网站寄存或链接了什么样的恶意软件。我们一般建议你在清除恶意软件和加强安全性之前先使你的网站离线,以防止你的网站访客者在你清除过程中被不知不觉地感染。

1. 如果你的网站寄存了可下载的不良软件

从你的网站上删除不良软件,不要再让它可供下载除非你确保它不是坏软件。你可以在我们的指南里了解更多关于什么是恶意软件的知识。如果你是一个问题软件的作者,StopBadware为如何使您的软件符合我们的 指南 提供了一些建议。

2. 如果你的站点链接到恶意软件

从你的网站上清除所有到恶意软件的链接。

3. 如果你的网站上的广告链接到恶意软件

删除所有链接到恶意软件的广告。如果你使用一个广告网络,这可能意味着从你的网站上删除该网络的所有广告,直到你肯定该广告网络是干净的。你也许可以联络你的广告商,让他们知道他们在你的网站上的一个或多个广告是恶意软件链接。

4. 如果恶意软件是从你的用户区得到的链接

从你的站点清除恶意软件的链接。你可能要编辑用户的帖子以消除恶意软件内容,或删除用户的整个帖子。

5. 如果你的网站已经被黑了

首先让你的网站离线,这样你网站访客和你的客户就不会有访问风险。然后删除所有不良代码,修复所有安全漏洞。最后才把你的网站重新上线。发现并去除特定的黑客插入的坏代码块以使你的站点干净是一时的。要使你的网站将来也不受到感染,你必须修补安全漏洞来防止黑客在你的网站插入代码。因此,一定要确保消除任何攻击者留下的后门。黑客留下的后门会使他们重新回到你的网站,即使你封锁了你的网站。

你的寄存服务商也应该能够帮助你查出你网站的安全漏洞,所以如果你认为你的网站已经被黑,和他们联系应该是当务之急。你也可以察看一下你的寄存服务商的论坛,看看使用该寄存服务的其他网站是否也已经被攻破。访问你网站所使用的软件的用户论坛也可以帮你看看有没有其他用户因为软件漏洞而失密,或者是你的网站没有对该软件的安全补丁进行更新。

恶意软件的预防

1. 在让网站可下载软件之前进行恶意软件检查

请参阅以上的 第1.1节 了解关于恶意软件及我们的软件指南的信息。

2. 在你网站链接到其他网址前对链接进行恶意软件检查

请参阅以上的 第1.2节 了解我们的关于链向恶意软件的信息。

3. 只使用信誉好的广告商,并定期监测以确保他们的广告是干净的

确保你的广告网络是有信誉的并积极为广告主屏蔽恶意软件。如果他们不这么做,赶紧换人,并告诉他们你为什么要换。请记住,一个在你网上的广告,即使是由第三方提供的,仍然是你的网页的一部分。你应该只接受来自为保护客户不受恶意软件侵害而不懈努力的广告商。你可以使用StopBadware的报告作为恶意软件广告商的一种来源。StopBadware正致力于把最坏的广告网络通过报告的形式来曝光,报告我们所看到的被这些广告提供者害苦了的网站。

4. 监控你网站的用户区

确保你网站的论坛,博客,和其他用户区的使用条款中明确禁止链接至恶意软件的帖子。您也可以选择不让用户直接连接到任何形式的可执行文件或插入javascript到论坛帖子或其他用户生成内容区。你要严密监督你网站的这些区域以防止可疑的链接或可执行文件。请参阅以上的 第1.2节 了解我们的关于链向恶意软件的信息。

5. 堵住安全漏洞以防黑客攻击以下是使你的网站更安全的一些基本步骤:

  • 使用复杂的密码。
  • 使用SSH和SFTP协议,而不是telnet或FTP。Telnet和FTP都被认为是不安全的,因为他们使用纯文本协议。他们传送的用户名和密码可以被任何接入网络的人读懂。SSH和SFTP都是加过密的以防止窃听。
  • 利用漏洞审查扫描器(有免费的和商业的版本)来扫描你的网站的安全漏洞。使用安全更新管理工具,以查找被错过的补丁。一旦找到,要立即应用补丁程序。
  • 跟踪你网站或者你的网站寄存商使用的软件的最新消息,永远运行最新版本,其中包括安全补丁。订阅,并定期阅读你的寄存服务商和软件提供商的任何通讯或警报。
  • 确保你的寄存服务商保持所有软件的更新,包括安全补丁。如果它们不这么做,敦促他们这样做或转换到另一家能为客户的网站安全竭尽全力的网站寄存服务商。

当你的网站变得干净、安全后再重新上线,你可能想通知你的访问者你们所遇到的恶意软件问题,以及你解决问题的措施。如果一个用户因为访问了你的网站而已感染了恶意软件,让他们知道你的发现会帮助他们清理他们的计算机。讲述你的故事可以帮助其他管理员处理在自己网站上的类似情况。如果你想和其他站长分享你如何清洁你的网站的故事,或者想分享如何保持网站安全的小技巧,请访问我们的 讨论组

这一页是一个不断被更新的资源。如果你有进一步的问题或建议作为补充,请加入我们的讨论组分享你的想法。