清理并维护网站

为了确保您的网站保持清洁,并防止日后遭到黑客入侵,您需要执行以下操作:

  • 对您网站服务器(网站、数据库、文件)的 shell 或终端管理员访问权限
  • 了解 shell 或终端命令
  • 懂代码(如 PHP 或 JavaScript)
  • 存储空间,用于创建网站的备份,包括文件、数据库和图片

后续操作

在此步骤中,我们将介绍以下几项操作:

  • 如果您认为黑客意图获取用户的个人信息(例如通过钓鱼式攻击页面),请前往哪里查找其他资源。
  • 在 Search Console 中使用移除网址选项,快速移除黑客创建的完全新的、不良的、面向用户的网址,这些网址不应显示在 Google 搜索结果中。
  • Search Console 中的让 Google 重新抓取您的网址选项,可让 Google 更快地处理您希望显示在 Google 搜索结果中的干净网页(即新网页或新更新的网页)。
  • 安装最新、最安全的软件版本。
  • 移除可能会导致您的网站在日后出现更严重漏洞的不必要或不使用的应用或插件。
  • 恢复合法内容并移除黑客的内容。
  • 修复黑客利用的根本原因漏洞。
  • 更改所有密码。
  • 做好规划,确保您的网站安全无虞。

1. 查找支持资源

如果有人从您的网站获取了机密用户信息(例如,因为它是钓鱼式攻击的一部分),您可能需要先考虑任何业务、监管或法律责任,然后再开始清理网站或删除任何文件。如果发生钓鱼式攻击,antiphishing.org 提供了一些实用资源,例如其文档如果您的网站遭到钓鱼式攻击,该怎么办

2. 考虑更快速地移除由黑客创建的新网址

如果黑客创建了完全新的、可供用户访问的网址,您可以使用 Search Console 中的移除网址功能更快地将这些网页从 Google 搜索结果中移除。这是可选步骤。如果您只是删除网页,然后将服务器配置为返回 404 状态代码,这些网页会随着时间的推移而自然从 Google 的索引中移除。

  • 是否使用网址移除功能可能取决于创建的不需要的新网页数量(如果网页数量过多,在移除网址中添加这些网页可能会很麻烦),以及这些网页可能会给用户造成的潜在损害。为了避免通过“网址移除”功能提交的网页出现在搜索结果中,请确保这些网页也针对不受欢迎的网址和已移除的网址返回 404“未找到文件”响应。
  • 请勿使用此工具请求移除仅因黑客入侵而遭到破坏的任何之前正常的网页。您希望这些网页在清理后显示在搜索结果中。网址移除功能仅适用于您再也不希望出现在搜索结果中的网页

3. 考虑加快 Google 对您正常网页的处理速度

如果您有新的或更新后的干净网页,可以在 Search Console 中请求 Google 重新抓取您的网址,以将这些网页提交到 Google 的索引。这并非强制性要求;如果您跳过此步骤,系统可能会随着时间的推移抓取和处理新建或修改的网页。

4. 开始清理您的服务器

现在,请根据您在评估受破坏程度找出漏洞过程中记录的信息,开始清理您的网站。您在此步骤中要采取的路径取决于您可用的备份类型:

  • 正常且最新的备份
  • 正常但已过期的备份
  • 无备份

首先,检查您的备份是在网站遭到入侵之前创建的。

正常且最新的备份

  1. 恢复您的备份。
  2. 安装所有可用的软件升级、更新或补丁。这包括操作系统软件(如果您控制服务器),以及所有应用(例如内容管理系统、电子商务平台、插件或模板)。
  3. 考虑从服务器中移除网站不再使用的软件(例如 widget、插件或应用)。
  4. 修复漏洞。
  5. 确保在评估损坏情况期间发现的所有问题均已得到解决。
  6. 请为与该网站相关的所有账号(例如 FTP 访问权限、数据库访问权限、系统管理员和 CMS 账号的登录信息)再更改一次密码。在基于 Unix 的系统上:
passwd admin1

正常但已过期的备份

  1. 为当前网站制作磁盘映像,即使该网站仍处于受感染状态也是如此。但为了安全起见应保留此副本。将该副本标记为“受感染” 以便与其他副本区分开来在基于 Unix 的系统上,创建磁盘映像的方法如下:
dd if=/dev/sda bs=1024 conv=noerror,sync | gzip -c -9 \
> /mirror/full-backup-20120125-infected.gz
  1. 创建服务器的备份文件系统副本,包括图片和媒体文件。如果您有数据库,还请同时备份数据库。
tar -pczf full-backup-20120125-infected.tar.gz www/
mysqldump -u root -p --all-databases | gzip -9 \
> fulldb_backup-20120125-infected.sql
  1. 在您的服务器上恢复正常但已过期的备份。
  2. 考虑是否可以从服务器中移除网站不再使用的软件(例如 widget、插件或应用)。
  3. 升级所有软件,包括操作系统(如果您控制服务器)以及所有软件应用,例如内容管理系统、电子商务平台、插件和模板。请务必检查并安装可用的安全更新和补丁。
  4. 修复漏洞。
  5. 在干净的备份和当前受感染的副本之间,手动或自动执行网站 diff
diff -qr www/ backups/full-backup-20120124/
  1. 将您想从受感染副本中保留的任何新的干净内容上传到升级后的服务器。
rsync -avz /backups/full-backup-20120124/www/clean-file.jpg /www/
  1. 检查评估受破坏程度步骤中列出的所有网址是否均已更正。
  2. 请为与该网站相关的所有账号(例如 FTP 访问权限、数据库访问权限、系统管理员和 CMS 账号的登录信息)再更改一次密码。在基于 Unix 的系统上:
$passwd admin1

无备份

请为您的网站创建两个备份,即使它仍处于受感染状态也是如此。备份多份内容有助于恢复意外删除的内容,或者在出现问题时让您还原并重试。我们建议您将这两个备份都标为“infected”,以备日后参考。

其中一个备份应是您网站的磁盘映像(“克隆版本”)。这种格式让恢复内容变得更加简单。您可以将磁盘映像留作紧急情况之用。在基于 Unix 的系统上,使用以下代码创建磁盘映像:

dd if=/dev/sda bs=1024 conv=noerror,sync | gzip -c -9 \
> /mirror/full-backup-20120125-infected.gz

另一个备份将作为服务器(包括图片和媒体文件)的文件系统副本。如果您有数据库,请一并备份数据库。

tar -pczf full-backup-20120125-infected.tar.gz www/
mysqldump -u root -p --all-databases | gzip -9 \
> fulldb_backup-20120125-infected.sql

如果您没有磁盘映像,请制作两个数据库备份和两个文件系统备份。

如需清理新备份文件系统副本(而非服务器本身)上的网站内容,请执行以下操作:

  1. 如果您之前的调查发现文件权限过于宽松,请立即进行更正。请务必在备份副本上执行此操作,而不是在服务器本身上执行。
  2. 此外,在备份副本中,清理评估受损情况中发现的已被入侵网址对应的所有文件。这些文件可能是服务器配置文件、JavaScript、HTML 或 PHP。
  3. 请务必移除黑客创建的新文件(返回 404 响应),这些文件可能已或未通过 Search Console 中的网址移除工具提交。
  4. 如果您的代码中存在此漏洞或已破解的密码,请修复此漏洞。 输入验证库或安全审核可能会有所帮助。
  5. 如果您的网站有数据库,请开始清理备份中被黑客修改的记录。在您认为自己已完成工作时,请检查更多记录,确保数据库看起来干净。
  6. 请为与该网站相关的所有账号(例如 FTP 访问权限、数据库访问权限、系统管理员和 CMS 账号的登录信息)再更改一次密码。在基于 Unix 的系统上,请使用以下代码:
$passwd admin1

此时,您网站的曾受到感染的备份副本应该只包含干净的数据。请保存好这一正常副本,然后执行第 5 步操作。

5. 移除不必要的软件

考虑是否可以移除服务器上网站不再使用的软件,例如 widget、插件或应用。这有助于提高安全性并简化日后的维护。

6. 清理所有服务器

  1. 请执行全新安装,而不只是升级。升级后,系统可能会保留之前版本中的文件。如果服务器上仍有受感染的文件,您的网站就更有可能再次遭到入侵。
    • 如果您控制服务器,则全新安装应包含操作系统以及所有软件应用(例如内容管理系统、电子商务平台、插件和模板)。请务必检查是否有可用的安全更新和补丁。
  2. 将正常内容从干净的备份文件系统副本传输到新安装的服务器。请仅上传和恢复已知干净的文件或数据库。请务必保持适当的文件权限,并且不要覆盖新安装的系统文件。
  3. 为与该网站相关的所有账号(例如 FTP 访问权限、数据库访问权限、系统管理员和 CMS 账号的登录信息)最后一次更改密码。在基于 Unix 的系统上,请使用以下代码:
passwd admin1

7. 制定长期维护计划

我们强烈建议您采取以下措施:

  • 定期对您的网站进行自动备份。
  • 注意及时更新软件。
  • 在服务器上安装所有应用、插件和其他第三方软件之前,先了解其安全做法。一个软件应用中的安全漏洞可能会影响整个网站的安全性。
  • 强制创建安全系数高的密码。
  • 确保用于登录计算机的所有设备都处于安全状态(操作系统和浏览器已更新)。

8. 仔细检查以确认已完成清理

请确保您对以下问题都能做出肯定的回答:

  • 如果黑客获取了用户的个人信息,我是否已采取适当的措施?
  • 我的网站上运行的软件是否为最新、最安全的版本?
  • 我是否已移除了可能会导致我的网站在日后出现更严重漏洞的所有不必要或未使用的应用或插件?
  • 我是否恢复了自己的内容并清除了黑客的内容?
  • 我是否修复了导致我的网站被黑客入侵的根源漏洞
  • 我是否制定了保障网站安全的计划?

您现在可以让您的网站重新连接到网络。