网站遭入侵,可能是经营网站过程中最令人沮丧的经历之一。不过,务实地应对,有助于保持冷静,并尽量降低影响、渡过难关。
“被黑”是一个含糊的说法,本身很难说明究竟发生了什么。为了在论坛获得有效帮助,需要明确哪些具体症状让你怀疑网站受侵。这些现象也称为入侵指标(Indicators of Compromise,IoC)。
一些较明确的迹象包括:
- 网站被 Google、Bing 等列入黑名单。
- 主机服务商停用了网站。
- 网站被标记为传播恶意软件。
- 读者反映其桌面杀毒软件对网站报警。
- 有人通知你,网站正在被用于攻击其他网站。
- 出现未授权行为,例如创建新用户。
- 在浏览器打开网站时,能直接看到被篡改的页面。
不同入侵的情况并不相同。向论坛求助时,应记住这一点;症状描述越清楚,社区越容易提供帮助。
以下步骤帮助你开始处理入侵后的恢复工作。它们不可能覆盖所有场景,而是提供一个思考和处理流程。
保持冷静
处理安全事件时,网站所有者往往承受很大压力,感觉比以往任何时候都脆弱,这与“WordPress 很简单”的印象相去甚远。
但一切并未失去。可能损失金钱,品牌也可能受影响,但仍可以恢复。先退一步、稳定情绪,有助于更有效地控制局面,恢复网站。
记录情况
确认受侵后,第一个实际步骤是记录。写下遇到的现象,以及尽可能准确的时间:
- 看到了什么,让你认为网站被黑?
- 什么时候发现,使用哪个时区?
- 最近做过什么?是否安装新插件、修改主题或调整小工具?
这些内容构成事件报告的基础。无论自行响应还是聘请专业机构,都会很有价值。
也建议记录主机环境的细节,后续响应过程很可能会用到。
扫描网站
可以使用外部远程扫描器,也可以使用应用级扫描器。它们检查和报告的内容不同,没有单个方案覆盖一切,组合使用能提高发现问题的机会。
原文列出的应用级扫描插件包括 Quttera、GOTMLS、WordFence、Sucuri;远程扫描服务包括 VirusTotal 和 Sitecheck。
WordPress 插件目录还有其他相关安全插件。原文所列工具已有较长历史,并拥有各自的社区支持。
扫描本地环境
除了网站,也应扫描本地计算机。有些入侵或感染始于笔记本、台式机等设备:攻击者在本地运行木马,窃取 FTP 或 wp-admin 登录信息,再以站长身份进入网站。
对本地机器进行完整的病毒和恶意软件扫描。有些病毒会识别杀毒软件并躲避,必要时可换另一种工具检查。这一建议同样适用于 Windows、OS X 和 Linux。
联系主机服务商
尤其在共享主机上,事件可能不仅影响你的网站。联系服务商,了解他们是否正在处理,或是否需要采取措施。他们也可能帮助判断究竟是入侵,还是服务中断。
另一个严重后果是邮件黑名单。网站被用于发送垃圾邮件后,相关 IP 可能被列入黑名单,而同一服务器的 IP 又可能承担邮件服务。原文建议,企业邮件需求可以考虑 Google Apps 等独立邮件提供商。
留意网站黑名单
Google 黑名单会损害品牌。原文记录当时每天约有 9500–10000 个网站被列入,并表示这一数字仍在增长。警告形式既可能是醒目的拦截页面,也可能只是搜索结果中的较轻提示。
除了 Google,还有 Bing、Yahoo 和各种桌面杀毒软件。访客可能使用不同工具,其中任何一个都可能导致访问告警。
原文建议将网站注册到站长平台,包括 Google Search Console、Bing Webmaster、Yandex Webmaster 和 Norton Webmaster。
改善访问控制
更换密码非常重要,但只是更大的访问控制问题中的一小部分。首先使用复杂、足够长且不重复的密码。原文建议使用 1Password、LastPass 等应用中的密码生成器。
应覆盖所有入口,包括 FTP/SFTP、WP-ADMIN、cPanel 或其他主机管理面板,以及 MySQL。不仅是自己的账户,所有有权访问该环境的用户都应纳入。
也应考虑双因素或多因素身份验证,让 WordPress 登录除了密码,还需要另一种认证方式。原文列出的辅助插件包括 Rublon 与 Duo。
重置所有访问
识别入侵后,应尽快收紧访问,减少继续被修改的机会。先从用户开始,强制所有用户,尤其管理员,重置密码。原文列出的辅助插件是 iThemes Security。
还应让已登录的 WordPress 用户退出。通过更新 wp-config 中的秘密密钥实现:使用 WordPress 密钥生成器 创建新值,替换 wp-config.php 中的旧值,即可使现有登录会话失效。
创建备份
理想情况下已经有网站备份;如果没有,现在应创建一份。备份是业务连续性的关键,今后应主动规划,也要询问主机服务商的备份政策。如果已有备份,可以恢复,然后进入取证工作。
应定期备份数据库和文件,防范再次发生。
开始清理前,建议再为当前环境保存一次快照,即使它已经感染。不同入侵可能造成复杂影响;发生灾难性失败时,至少还有这份受侵副本供参考。
找到并清除入侵内容
这是整个过程中最困难的部分。具体步骤取决于前面的症状等多种因素,也取决于你对网站和 Web 服务器的技术掌握程度。
以下资源可提供帮助:
你可能想删除所有内容重新开始。有时可行,许多情况下却不现实。不过,可以重新安装某些组件,对网站核心内容的影响较小。
重新安装时,应使用网站当前的相同软件版本;更旧或更新的版本都可能让网站无法运行。不要直接使用 wp-admin 的重新安装按钮,而应通过 FTP/SFTP 替换文件。安装器往往只覆盖已有文件,而入侵常常引入新文件,因此明确替换通常更有效。
原文列出可替换的目录:
/wp-admin/wp-includes
处理 wp-content 时应更谨慎,因为其中包含主题与插件。
务必检查 .htaccess。无论哪种感染,它都很常被修改以进行恶意活动。通常位于安装根目录,也可能出现在其他子目录。
清理时还应留意 index.php、header.php、footer.php 和原文列出的 function.php。这些文件被修改后,往往能影响全部页面请求,因此是攻击者偏爱的目标。
借助社区
WordPress 是社区平台,遇到困难时,常有人愿意帮助。预算有限或只是需要援手,可以从 WordPress.org 的 Hacked or Malware 论坛 开始。
更新
清理完成后,将 WordPress 更新到最新版本。旧版本通常比新版本更容易遭受已知漏洞攻击。
再次更换密码
确认网站干净后,需要再次更换密码。如果只在发现入侵时改过,现在应再改一次,并继续使用复杂、长且唯一的密码。
也可以考虑更改数据库用户名和密码;修改后,别忘了同步更新 wp-config.php。
取证
取证旨在理解发生了什么,以及攻击者如何进入。目标是找到攻击途径,确保它不能再次被利用。
网站所有者可能缺乏技术知识或足够数据,因此很难完成这类分析。如果具备所需元数据,OSSEC、Splunk 等工具可以帮助综合分析。
加固网站
恢复成功后,落实推荐安全措施中的一部分或全部,进一步保护网站。
无法登录 WordPress 后台
攻击者有时会劫持管理员账户。先不要慌,有多种方式可以重新取得控制,可按照密码重置说明操作。
主机服务商常提供 phpMyAdmin 或 Adminer。它们可以直接登录数据库,绕过管理页面,在 wp_users 表中重置用户。
如果不想处理密码哈希,或不清楚如何操作,可以先更新自己的邮箱,再回登录页面点击“忘记密码”,等待重置邮件。
使用版本控制吗
版本控制可以快速识别变化,并回滚到早期版本。在终端中可与 WordPress 官方仓库版本比较:
$ svn diff .
或比较特定文件:
$ svn diff /path/to/filename
其他资源
原文:FAQ My site was hacked。作者/维护者:WordPress 文档贡献者。本文为原文的中文译文;代码保留原文内容。











暂无评论内容