清理和维护您的网站

要保持网站清洁并防止未来遭到黑客攻击,您需要以下条件

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

后续操作

我们将在这一步介绍几个操作

  • 如果您认为黑客企图获取用户的个人信息(例如使用网络钓鱼页面),在哪里可以找到其他资源。
  • 可以使用 Search Console 中的移除网址选项,快速移除黑客创建的您不希望在 Google 搜索结果中显示的全新、不良、用户可见的网址。
  • 可以使用 Search Console 中的请求 Google 重新抓取您的网址选项,快速处理 Google 对干净页面的处理,这些页面是指您希望在 Google 搜索结果中显示的新页面或新更新的页面。
  • 安装最新、最安全的软件版本。
  • 移除不必要或未使用的应用程序或插件,这些应用程序或插件可能会使您的网站在未来更容易受到攻击。
  • 恢复良好内容并删除黑客的内容。
  • 修复黑客利用的根本原因漏洞。
  • 更改所有密码。
  • 制定保持网站安全的计划。

1. 查找支持资源

如果用户的机密信息已从您的网站获取(例如,由于它是网络钓鱼攻击的一部分),您可能需要在开始清理您的网站或删除任何文件之前,考虑任何业务、监管或法律责任。在网络钓鱼案例中,antiphishing.org 提供了有用的资源,例如他们的文档 如果您的网站被网络钓鱼者入侵,该怎么办

2. 考虑加快移除黑客创建的新网址

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

  • 是否决定使用网址移除可能取决于创建的新的、不需要的页面的数量(页面太多可能难以包含在移除网址中),以及这些页面可能对用户造成的潜在损害。为了防止通过网址移除提交的页面永远不会出现在搜索结果中,请确保还将这些页面配置为对不需要的和移除的网址返回 404 文件未找到响应。
  • 不要使用此工具请求移除任何以前良好的页面,这些页面只是被黑客损坏了。您希望这些页面在清理后出现在搜索结果中。网址移除仅适用于您永远不想出现在结果中的页面。

3. 考虑加快 Google 对您的干净页面的处理

如果您有新的或更新的干净页面,您可以请求 Google 重新抓取您的网址在 Search Console 中提交这些页面到 Google 的索引。这是可选的;如果您跳过此步骤,您的新页面或修改后的页面可能会随着时间的推移被抓取和处理。

4. 开始清理您的服务器

现在是时候根据您在评估损害识别漏洞期间所做的记录开始清理您的网站了。您在此步骤中采取的路径取决于您可用的备份类型

  • 干净且最新的备份
  • 干净但过时的备份
  • 没有可用的备份

首先,检查您的备份是否在您的网站被黑客入侵之前创建。

干净且最新的备份

  1. 恢复您的备份。
  2. 安装任何可用的软件升级、更新或补丁。这包括如果您控制服务器的操作系统软件,以及所有应用程序,如内容管理系统、电子商务平台、插件或模板。
  3. 考虑从您的服务器中删除网站不再使用的软件(如小部件、插件或应用程序)。
  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. 考虑是否可以删除服务器上网站不再使用的软件(例如,小部件、插件或应用程序)。
  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

没有可用的备份

即使您的网站仍然被感染,也要制作两个网站备份。拥有额外的备份将有助于恢复意外删除的内容,或者让您恢复并重试,以防出现问题。将每个备份标记为“已感染”,以供将来参考。

您的备份之一将是网站的磁盘映像或“克隆版本”。此格式使恢复内容更加简单。您可以将磁盘映像放在一边以备不时之需。在基于 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. 移除不必要的软件

考虑是否可以删除服务器上网站不再使用的软件,例如小部件、插件或应用程序。这可以提高安全性并简化未来的维护。

6. 清理所有服务器

  1. 执行全新安装,而不仅仅是升级。升级可能会留下以前版本的文件。如果受感染的文件仍然留在服务器上,您的网站更有可能再次遭到黑客攻击。
    • 全新安装应包括如果您控制服务器的操作系统,以及所有软件应用程序,如内容管理系统、电子商务平台、插件和模板。请务必检查可用的安全更新和补丁。
  2. 将良好内容从干净的备份文件系统副本传输到新安装的服务器。仅上传和恢复已知的干净文件或数据库。请务必维护适当的文件权限,并且不要覆盖新安装的系统文件。
  3. 对与网站相关的所有帐户(例如,FTP 访问、数据库访问、系统管理员和 CMS 帐户的登录名)执行最后一次密码更改。在基于 Unix 的系统上,使用以下代码
passwd admin1

7. 制定长期维护计划

我们强烈建议您执行以下操作

  • 定期自动备份您的网站。
  • 警惕保持软件更新。
  • 在将所有应用程序、插件和其他第三方软件安装到服务器上之前,请了解它们的安全实践。一个软件应用程序中的安全漏洞可能会影响您整个网站的安全性。
  • 强制创建强密码。
  • 保持用于登录计算机的所有设备安全(更新的操作系统和浏览器)。

8. 仔细检查清理是否完成

确保您可以对以下问题回答“是”

  • 如果黑客获取了用户的个人信息,我是否采取了正确的步骤?
  • 我的网站是否正在运行最新、最安全的软件版本?
  • 我是否移除了所有不必要或未使用的应用程序或插件,这些应用程序或插件可能会使我的网站在未来更容易受到攻击?
  • 我是否恢复了我的内容并删除了黑客的内容?
  • 我是否修复了允许我的网站被黑客入侵的根本原因漏洞?
  • 我是否有保持网站安全的计划?

您现在可以将您的网站重新上线。