修复被黑网站

2015年5月22日星期五

原文: Case Studies: Fixing Hacked Sites
作者: Julian Prentice and Yuan Niu, 搜索质量团队

每天都会有数以千计的网站 遭到黑客入侵 。被黑网站可能会提供恶意软件、收集个人信息或将用户重定向到他们不想访问的网站,从而给用户带来危害。虽然网站站长希望能够快速修复被黑网站,但遗憾的是,修复过程可能会非常复杂。

我们正在努力借助众多资源(例如 安全问题 针对被黑网站的帮助 以及 专门针对被黑网站的论坛版块 )协助网站站长更轻松地修复被黑网站。最近我们采访了两位网站曾遭黑客入侵的网站站长,以便详细了解她们是如何修复被黑网站的。我们在下文中分享了她们的故事,并希望其他遭受黑客入侵困扰的网站站长能从中获得启发。 此外,我们还致力于利用这些故事以及其他反馈来完善针对被黑网站的文档,以便每个网站站长今后都可以更轻松地完成修复过程。

案例研究 1:被黑客植入多个脚本的餐厅网站
某个使用 Wordpress 的餐厅网站在其网站站长工具帐户中收到了一封来自 Google 的邮件,该邮件提醒他们其网站已被黑客篡改。 为了保护 Google 用户,该网站在 Google 的搜索结果中被标记为被黑网站。网站站长小姗 (Sam) 在查看源代码后发现,网站上出现了许多包含“viagra”和“cialis”等医药术语的陌生链接,许多网页的元说明标记(在 HTML 中)都被添加了诸如“buy valtrex in florida”等内容,并且许多网页上还存在链接到多个网站的 隐藏式 div 标记 (同样是在 HTML 中)。这些链接都不是小姗添加的。

小姗移除了她发现的所有被黑内容,并提交了重新审核请求。该请求遭到了拒绝,但在她从 Google 收到的邮件中,Google 建议她检查是否有任何 PHP 文件(或任何其他服务器文件)中存在任何陌生脚本,并检查 .htaccess 文件是否被更改了 。这些文件很可能会被黑客添加用于修改网站的脚本。这些脚本通常只对搜索引擎显示被黑内容,而对普通用户则隐藏这些内容。小姗检查了所有 .php 文件,并将它们与备份的干净副本进行了比较。她发现 footer.php、index.php 和 functions.php 中均被添加了新内容。当她用干净的备份文件替换这些文件后,在网站上就找不到任何被黑内容了。 再次提交重新审核请求后 ,她从 Google 收到了通知该网站已没有被黑内容的回复。

虽然小姗已清除网站上的被黑内容,但她知道,自己需要继续 保护网站的安全 ,以便抵御未来可能遭到的入侵。为了确保网站在日后的安全性,她遵从了以下措施建议:
  • 确保 CMS(内容管理系统,例如 WordPress、Joomla、Drupal 等)和插件随时保持最新版本。
  • 对于为了使用 CMS 的管理功能而需要登录的帐户,确保使用难以破解的专用密码。
  • 如果 CMS 支持两步验证(也称为双重身份验证或两步身份验证),则为登录过程启用 两步验证 。我们还建议您对用于恢复密码的帐户也启用两步验证。大多数电子邮件服务提供商(如 Google Microsoft Yahoo )都支持两步验证!
  • 确保安装的插件和主题背景均来自信誉良好的来源(盗版插件或主题背景往往会包含为黑客入侵大开方便之门的代码)!
案例研究 2:包含 大量难以发现的 被黑网页 的专业网站
玛利亚 (Maria ) 是一家小型企业的所有者,并负责管理自己的网站。她在网站站长工具中收到了一封通知她网站已被黑的邮件。这封邮件中列举了一个由黑客添加的示例网页,即 https://example.com/where-to-buy-cialis-over-the-counter/ 。她联系了托管服务提供商,但对方在查看该首页上的源代码后未发现任何医药关键字。当托管服务提供商访问 https://example.com/where-to-buy-cialis-over-the-counter/ 时,系统返回了一个错误页面。玛利亚还购买了恶意软件扫描服务,但该服务未能在她的网站上发现任何恶意内容。
于是,玛利亚打开了网站站长工具,并对 Google 提供的示例网址 ( https://example.com/where-to-buy-cialis-over-the-counter/ ) 使用了“Google 抓取方式”工具,但系统未返回任何内容。感到困惑的玛利亚提交了重新审核请求,并收到了一封拒绝邮件,其中建议她执行以下两项操作:
  1. 验证网站的非 www 版本,这是因为黑客通常会试图将内容隐藏在可能会被网站站长忽略的文件夹中。
https://example.com https://www.example.com 为例,虽然这两者看起来可能像是同一个网站,但 Google 实际上会将它们视为不同的网站。 https://example.com 被称为“根网域”,而 https://www.example.com 则被称为“子网域”。玛利亚验证了 https://www.example.com ,但没有验证 https://example.com ,而后者也非常重要,因为黑客添加的网页是非 www 网页,例如 https://example.com/where-to-buy-cialis-over-the-counter/ 验证 https://example.com 后,她便能够通过网站站长工具中的“Google 抓取方式”工具看到 Google 提供的示例网址中的被黑内容了。
  1. 查看 .htaccess 文件中是否存在新规则。
玛利亚咨询了托管服务提供商,对方向她展示了如何访问 .htaccess 文件 。她立刻注意到 .htaccess 文件中存在一些她从未添加过的陌生内容:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} (google|yahoo|msn|aol|bing) [OR]
RewriteCond %{HTTP_REFERER} (google|yahoo|msn|aol|bing)
RewriteRule ^([^/]*)/$ /main.php?p=$1 [L]
</IfModule>
您在上面看到的 mod_rewrite 规则就是由黑客植入的,该规则会将搜索引擎抓取工具以及使用某些搜索引擎的所有用户重定向到 main.php(所有被黑内容都是由该文件生成的)。 此外,这些规则还可能会重定向通过移动设备访问网站的用户。 在同一天,她还看到最近进行的恶意软件扫描在 main.php 文件中发现了可疑内容。此外,她还在网站开发软件的 FTP 用户区发现了未知用户。

她移除了 main.php 文件和 .htaccess 文件 ,并从 FTP 用户区中移除了发现的未知用户,从而解决了网站被黑的问题!

防止日后遭到黑客入侵的建议措施
  • 向服务器传输文件时避免 使用 FTP(FTP 不会对包括密码在内的任何流量进行加密),而是应使用 SFTP(作为防范窥探者窥探网络流量的措施,SFTP 会对包括密码在内的所有内容进行加密)。
  • 检查相关人员对敏感文件(例如 .htaccess )的权限。如果您需要帮助,向托管服务提供商求助也许是个不错的选择。 .htaccess 文件可用于改善并保护您的网站,但如果不慎被黑客取得了使用权限,则可能会被用于实施恶意入侵行为
  • 保持警惕,对于管理面板以及其中可能有用户能够修改您网站的位置,请留意是否有新的陌生用户。
我们希望您的网站永远不会被黑客入侵,但如果不幸被黑客入侵了,您可以在 针对被黑网站的帮助页面 中找到许多针对被黑网站的站长提供的资源。如果您需要更多帮助或想分享自己的秘诀,可以在我们的 网站站长帮助论坛 中发帖。 您在该论坛中发帖或为网站提交重新审核请求时,请包含“#NoHacked”字样。