几天前,我收到了一位我的书的读者的电子邮件。 他说他无法访问我在书中引用的一个网站。 我回复说我会查看一下。 通常,这种情况是由于参考文章或书籍中的 URL 印刷错误,或者可能是我删除了或更改了我的网站上的页面。
但这次情况并非如此。 当我点击我的网站的链接时,我看到的却是——恐怖至极——一个在线赌场。
我以为这会是一个简单的 DNS 中间人 攻击或类似情况。 当然,我自己的服务器上不会有任何问题。
查找问题
我使用 Google Domains 作为我的注册商。 在做任何其他事情之前,我检查以确保我的 IP 地址是正确的。 它们是正确的。
我登录到我可以访问的远程 Linux 主机,并使用 MTR (Matt's TraceRoute) 执行了路由跟踪。 这表明到我的主机的路由是正确的。
这看起来不太妙。
接下来,我查看了我的 httpd.conf
并验证它是正确的。 我确实发现了一些不相关的配置问题,并修复了这些问题,但它们并没有影响手头的问题。 我将我的网络与互联网隔离,并再次尝试访问我的网站。 我有适用于此的内部 DNS。 我仍然看到了那个侵入性网站。 这有力地证明了问题是我自己的服务器受到了感染。
这些都没有花很长时间。 我只是假设问题出在其他地方而不是我自己的服务器上。 我真傻!
我终于查看了我的服务器的 WordPress 安装。 我希望数据库没有被感染。 我可以通过擦除所有内容并从备份恢复来从任何问题中恢复,但我希望尽可能避免这种情况。 不幸的是,我网站的 html
目录有一些明显的“额外”文件和一个新目录。 html/wp-admin/admin.php
文件也被替换了。
我很幸运拥有多个未感染的其他网站,因此很容易比较文件日期和大小。 我还保留了网站的完整每日备份,以便从此类问题中恢复。
修复问题
在这种情况下,修复非常容易。 WordPress 非常容易安装、备份、移动、重新安装和恢复。 我首先删除了明显的额外文件和目录。 我将备份中已知的良好文件复制到受感染的文件上。 我本可以简单地从上次已知的良好备份中恢复所有内容,这也会奏效。 我将良好的备份与恢复的网站进行了比较,一切看起来都很好。
网站的数据库没有受到任何影响,我通过手动查看数据转储验证了这一点。
真正的问题
在分析问题后,我意识到我是根本原因。 我未能确保此网站的 WordPress 得到正确更新,才导致这种情况发生。 我为我的每个网站使用单独的 WordPress 实例,因此其他网站没有受到影响,因为它们正在自动更新。
一系列问题导致了我的这次失败。
-
受影响的网站是使用我几个月前停止使用的另一个电子邮件地址设置的。 这使我无法收到有关升级可用的通常通知。
-
我也未能将该站点配置为从 WordPress 自动更新。
-
而且我没有费心去检查站点是否正在更新。
当它受到攻击时,该站点至少比可用的版本落后一个完整版本级别。 保持最新的站点没有受到这次攻击的影响。
我的经验教训
我写过很多书和文章,讨论了保持系统更新到操作系统和应用软件最新版本的必要性,对此我感到非常尴尬。 然而,这对我来说是一次很好的学习经历,并提醒我绝不能自满。 我差点就没写这篇文章! 我不想承认自己疏忽了我的一个系统。 然而,我还是觉得有必要写下它,希望您能从我的经历中学习。
因此,正如我从痛苦的经历中学到的那样,保持我们的系统更新至关重要。 这是持续战斗以防止我们管理的计算机受到感染的最重要步骤之一。 我所经历的感染的具体细节不如始终存在针对我们系统的攻击这一事实重要。 自满是攻击者可以指望帮助他们实现目标的攻击媒介之一。
3 条评论