混淆代码 (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 为如何使您的软件符合我们的指南提供了一些建议。
3. 如果你的网站上的广告链接到恶意软件
删除所有链接到恶意软件的广告。如果你使用一个广告网络,这可能意味着从你的网站上删除该网络的所有广告,直到你肯定该广告网络是干净的。你也许可以联络你的广告商,让他们知道他们在你的网站上的一个或多个广告是恶意软件链接。
4. 如果恶意软件是从你的用户区得到的链接
从你的站点删除恶意软件的链接。你可能要编辑用户的帖子以消除恶意软件内容,或删除用户的整个帖子。
5. 如果你的网站已经被黑了
首先让你的网站离线,这样你网站访客和你的客户就不会有访问风险。然后删除所有不良代码,修复所有安全漏洞。最后才把你的网站重新上线。发现并去除特定的黑客插入的坏代码块以使你的站点干净是一时的。要使你的网站将来也不受到感染,你必须修补安全漏洞来防止黑客在你的网站插入代码。因此,一定要确保消除任何攻击者留下的后门。黑客留下的后门会使他们重新回到你的网站,即使你封锁了你的网站。
你的寄存服务商也应该能够帮助你查出你网站的安全漏洞,所以如果你认为你的网站已经被黑,和他们联系应该是当务之急。你也可以察看一下你的寄存服务商的论坛,看看使用该寄存服务的其他网站是否也已经被攻破。访问你网站所使用的软件的用户论坛也可以帮你看看有没有其他用户因为软件漏洞而失密,或者是你的网站没有对该软件的安全补丁进行更新。
1. 在让网站可下载软件之前进行恶意软件检查
请参阅以上的第 1.1 节了解关于恶意软件及我们的软件指南的信息。
2. 在你网站链接到其他网址前对链接进行恶意软件检查
请参阅以上的第 1.2 节了解我们的关于链向恶意软件的信息。
3. 只使用有信誉、有良心的广告商,并定期监测以确保他们的广告是干净的
确保你的广告网络是有信誉的并积极为广告主屏蔽恶意软件。如果他们不这么做,赶紧换人,并告诉他们你为什么要换。请记住,一个在你网上的广告,即使是由第三方提供的,仍然是你的网页的一部分。你应该只接受来自为保护客户不受恶意软件侵害而不懈努力的广告商。你可以使用 StopBadware 的报告作为恶意软件广告商的一种来源。StopBadware 正致力于把最坏的广告网络通过报告的形式来曝光,报告我们所看到的被这些广告提供者害苦了的网站。
4. 监控你网站的用户区
确保你网站的论坛,博客,和其他用户区的使用条款中明确禁止链接至恶意软件的帖子。您也可以选择不让用户直接连接到任何形式的可执行文件或插入 javascript 到论坛帖子或其他用户生成内容区。你要严密监督你网站的这些区域以防止可疑的链接或可执行文件。请参阅以上的第 1.2 节了解我们的关于链向恶意软件的信息。
* 使用 SSH 和 SFTP 协议,而不是 telnet 或 FTP。Telnet 和 FTP 都被认为是不安全的,因为他们使用纯文本协议。他们传送的用户名和密码可以被任何接入网络的人读懂。SSH 和 SFTP 都是加过密的以防止窃听。
* 利用漏洞审查扫描器(有免费的和商业的版本)来扫描你的网站的安全漏洞。使用安全更新管理工具,以查找被错过的补丁。一旦找到,要立即应用补丁程序。
* 跟踪你网站或者你的网站寄存商使用的软件的最新消息,永远运行最新版本,其中包括安全补丁。订阅,并定期阅读你的寄存服务商和软件提供商的任何通讯或警报。
* 确保你的寄存服务商保持所有软件的更新,包括安全补丁。如果它们不这么做,敦促他们这样做或转换到另一家能为客户的网站安全竭尽全力的网站寄存服务商。
当你的网站变得干净、安全后再重新上线,你可能想通知你的访问者你们所遇到的恶意软件问题,以及你解决问题的措施。如果一个用户因为访问了你的网站而已感染了恶意软件,让他们知道你的发现会帮助他们清理他们的计算机。讲述你的故事可以帮助其他管理员处理在自己网站上的类似情况。如果你想和其他站长分享你如何清洁你的网站的故事,或者想分享如何保持网站安全的小技巧,请访问我们的讨论组。
这一页是一个不断被更新的资源。如果你有进一步的问题或建议作为补充,请加入我们的讨论组分享你的想法。