Niro Asked: 2009-08-12 04:35:35 +0800 CST2009-08-12 04:35:35 +0800 CST 2009-08-12 04:35:35 +0800 CST 我的网站被黑了——我能做些什么来防止它再次发生? 772 我有一个基于旧 pigg 版本(从 2006 年开始)的网站。该站点托管在dreamhost 共享服务器上。今天早上我发现我网站的主数据库被完全删除了。 如何确认是黑客还是其他原因造成的?我能做些什么来防止它再次发生?我无法切换到新版本的 pligg,因为我对原始版本进行了许多自定义。 任何建议都将受到高度赞赏。 security hacking 9 个回答 Voted Best Answer David Rickman 2009-08-12T04:39:57+08:002009-08-12T04:39:57+08:00 检查您的访问日志和数据库查询日志(如果您记录它们) 请与您的托管服务提供商联系,看看数据库服务器是否已经崩溃并且他们错过了恢复您的服务。 搜索受您的 pligg 版本影响的漏洞。 使用更强的数据库密码并将权限隔离到最低限度。 David Spillett 2009-08-12T04:40:26+08:002009-08-12T04:40:26+08:00 如果您无法切换到最新版本的 pligg,那么您需要将过去三年内所做的任何安全更新反向移植到您拥有的版本。我建议更新您的自定义以使用最新版本会简单得多。 为了阻止它再次发生(或至少尽可能降低风险),您需要确保所有内容都与安全更新保持同步。如果您需要该网站公开可用,您真的不能走捷径。 此外,为了减轻再次发生时造成的损害,您需要设置一个体面的自动备份机制。 The Pixel Developer 2009-08-12T04:41:24+08:002009-08-12T04:41:24+08:00 我无法切换到新版本的 pligg,因为我对原始版本进行了许多自定义。 我不是服务器天才,所以我无法帮助您追踪它是如何被黑客入侵的,但我可以为您提供一些建议。您应该使用出现的新安全修复程序手动修补您的安装。 Mark Davidson 2009-08-12T04:46:57+08:002009-08-12T04:46:57+08:00 如果您真的无法升级,我会看看pligg的漏洞利用我仍然会研究针对这些特定漏洞的集成修复程序。因为它们都非常讨厌并且涉及 SQL 注入和远程代码执行。可能只是在某些地方添加了一些额外的验证。 Joe 2009-08-12T04:39:47+08:002009-08-12T04:39:47+08:00 有可以读取的日志文件吗?也许您可以看到一些导致 SQL 注入攻击的错误查询字符串? Ben Quick 2009-08-12T04:40:21+08:002009-08-12T04:40:21+08:00 日志文件,假设它们没有被改变 你根本无法确定我害怕的任何事情 我的猜测是,如果您使用的是一些较旧的软件,那么一些脚本小子已经运行了一些工具来利用。他们利用了什么,你可能永远不知道 您也许可以联系 Dreamhost 看看他们是否可以提供任何见解,但我猜他们不能 Kyle Brandt 2009-08-12T04:40:30+08:002009-08-12T04:40:30+08:00 我会首先通过 Dreamhost 门户提交一张票,看看他们能为你找到什么。虽然如果入口点不是您通过 Web 应用程序,它们可能不会那么即将出现(不是对它们的特别判断,只是对一般人的愤世嫉俗的看法)。 如果你不能更新它,你能限制谁可以访问它吗?也许移动到 vps,这样您就可以使用 iptables 来限制对某些 IP 地址的访问。 Kristaps 2009-08-12T04:53:36+08:002009-08-12T04:53:36+08:00 pligg的利用。检查脚本小子网站的漏洞利用有时很有用。他们中的大多数人都有评论,他们是如何成为可能的,所以你可以: a)补丁源 b) 使用 mod_security 过滤请求 ( http://www.modsecurity.org/ )。 Lee B 2009-10-08T15:41:58+08:002009-10-08T15:41:58+08:00 假设您发现问题出在 pligg 上(似乎很可能,正如您所说的那样,它是一个旧版本,而我从未听说过它,所以它可能没有很多人在寻找代码中的错误)。 .. 你会非常有限。作为损害控制: 查看日志,找出发生了什么(必要时与专家交谈),并至少修补那个漏洞。使用防火墙或网络服务器访问控制规则禁止黑客的 IP。正如其他人所说,如果您可以追踪他们的入口点,并在较新的 pligg 版本中找到针对它的错误修复,请尝试向后移植任何修复攻击向量的内容。无论你能合理地(甚至是努力工作)做些什么来防止同样的事情再次发生。但是,我真的不会尝试通过向后移植所有安全修复程序来“更新”您的版本。那将是一场噩梦。 您可以运行日志分析器/主动 IDS 系统来主动识别和禁止黑客。例如,Fail2ban 就是这样做的。 中期: 获取您安装的旧 pligg 版本的原始副本(未经更改的副本) 使用 git 之类的版本控制系统将您的更改应用到顶部,并 git 比较自原始版本以来您所做的所有更改 获取最新版本的 pligg,并将您的差异应用到它。它可能不起作用,但您只需要更改最小值即可使其正常工作。请查阅更新日志,尤其是 pligg 的升级说明,这将有助于您移植代码。 更好、更长期的解决方案: 远离pligg,因为它似乎让你失望了。必须对软件进行如此多的定制,以至于它不再可以升级到新版本,这意味着它的设计很糟糕。获得更好的软件来作为您的代码的基础,确保您可以在其中编写干净、可移植的代码,而不会改变产品的代码。然后升级应该是干净和兼容的,除非产品发布说明解释的任何小的和不经常的必要更改。
如果您无法切换到最新版本的 pligg,那么您需要将过去三年内所做的任何安全更新反向移植到您拥有的版本。我建议更新您的自定义以使用最新版本会简单得多。
为了阻止它再次发生(或至少尽可能降低风险),您需要确保所有内容都与安全更新保持同步。如果您需要该网站公开可用,您真的不能走捷径。
此外,为了减轻再次发生时造成的损害,您需要设置一个体面的自动备份机制。
我不是服务器天才,所以我无法帮助您追踪它是如何被黑客入侵的,但我可以为您提供一些建议。您应该使用出现的新安全修复程序手动修补您的安装。
如果您真的无法升级,我会看看pligg的漏洞利用我仍然会研究针对这些特定漏洞的集成修复程序。因为它们都非常讨厌并且涉及 SQL 注入和远程代码执行。可能只是在某些地方添加了一些额外的验证。
有可以读取的日志文件吗?也许您可以看到一些导致 SQL 注入攻击的错误查询字符串?
日志文件,假设它们没有被改变
你根本无法确定我害怕的任何事情
我的猜测是,如果您使用的是一些较旧的软件,那么一些脚本小子已经运行了一些工具来利用。他们利用了什么,你可能永远不知道
您也许可以联系 Dreamhost 看看他们是否可以提供任何见解,但我猜他们不能
我会首先通过 Dreamhost 门户提交一张票,看看他们能为你找到什么。虽然如果入口点不是您通过 Web 应用程序,它们可能不会那么即将出现(不是对它们的特别判断,只是对一般人的愤世嫉俗的看法)。
如果你不能更新它,你能限制谁可以访问它吗?也许移动到 vps,这样您就可以使用 iptables 来限制对某些 IP 地址的访问。
pligg的利用。检查脚本小子网站的漏洞利用有时很有用。他们中的大多数人都有评论,他们是如何成为可能的,所以你可以:
a)补丁源
b) 使用 mod_security 过滤请求 ( http://www.modsecurity.org/ )。
假设您发现问题出在 pligg 上(似乎很可能,正如您所说的那样,它是一个旧版本,而我从未听说过它,所以它可能没有很多人在寻找代码中的错误)。 ..
你会非常有限。作为损害控制:
查看日志,找出发生了什么(必要时与专家交谈),并至少修补那个漏洞。使用防火墙或网络服务器访问控制规则禁止黑客的 IP。正如其他人所说,如果您可以追踪他们的入口点,并在较新的 pligg 版本中找到针对它的错误修复,请尝试向后移植任何修复攻击向量的内容。无论你能合理地(甚至是努力工作)做些什么来防止同样的事情再次发生。但是,我真的不会尝试通过向后移植所有安全修复程序来“更新”您的版本。那将是一场噩梦。
您可以运行日志分析器/主动 IDS 系统来主动识别和禁止黑客。例如,Fail2ban 就是这样做的。
中期:
更好、更长期的解决方案:
远离pligg,因为它似乎让你失望了。必须对软件进行如此多的定制,以至于它不再可以升级到新版本,这意味着它的设计很糟糕。获得更好的软件来作为您的代码的基础,确保您可以在其中编写干净、可移植的代码,而不会改变产品的代码。然后升级应该是干净和兼容的,除非产品发布说明解释的任何小的和不经常的必要更改。