偶尔我会浏览我们的 (apache) 访问日志,经常会碰到有人试图窃取管理页面。例如,他们试图访问以下页面:
/wp-login.php
/administrator/index.php
/admin.php
/user
这些页面/目录实际上都不存在,因为它们从未存在过,或者我将它们重命名为不太明显的名称。
那么,人们会主动阻止这些类型的请求吗?我有时会这样做,但我收到了很多请求,我想知道这是否真的有什么不同。目前,我在 httpd.conf 文件中阻止了主机或 IP。
我是不是在杞人忧天?
(仅供参考 - 在基于‘linux’的服务器上运行 Apache)。
编辑:从“子企业”(中小型企业级别)的角度来看。
答案1
在防火墙级别阻止此类请求有一些优点,即:
- IPTABLES 阻止连接所消耗的资源比 Apache 返回错误所消耗的资源要少。
- 它将使您的日志文件更小、更干净。
您提到在 httpd.conf 中阻止主机。这没什么用。机器人无论如何都会收到 404,发送不同的错误代码对您没有好处,也不会对他们造成任何伤害(httpd.conf 中的所有阻止都会这样做)
在 httpd.conf 中阻止的唯一好处是,现在试图破解不存在页面的恶意主机以后可能会尝试破解真实页面。当然,您可以通过在防火墙级别进行阻止来获得相同的好处,以及上述其他优点。
tl;dr:使用 fail2ban 阻止请求,而不是使用 httpd.conf
答案2
有些人会屏蔽这些请求。但是,这样做毫无意义,因为它们是无害的。爬虫程序一直在互联网上寻找东西,无论是要破解的东西还是要索引的东西。这些类型的扫描不值得费心去屏蔽,而且你的屏蔽实际上可能会阻止索引或捕获与此类机器人共享 IP 的真实用户(这种情况很少见)。
如果日志条目困扰着您,您可能应该使用日志聚合器;查看日志很糟糕,您会错过一些事情,并且会专注于不相关的事情。
答案3
在我们的组织中,我们使用 Web 应用程序防火墙(F5 的应用程序安全模块 [ASM])来阻止此类请求。它的工作原理是首先学习可接受 URL 的数据库。它足够智能,可以找出所有静态链接以及可能变化的链接。例如,如果请求中包含令牌或唯一 ID,它将根据过去看到的内容对 URL 中令牌或唯一 ID 的长度实施限制。此外,它还有一个定期更新的数据库,其中包含它所关注的其他内容,例如 URL 或用户代理字符串中的 SQL 或 BASH。
虽然您现在可能还不会受到您所看到的攻击类型的攻击,但您无法保证将来不会受到攻击,或者您不会受到您尚未看到或尚未发现的攻击。此外,类似这种解决方案可以帮助防范 DDoS 攻击。您知道自己经常成为攻击目标,这确实会降低您基础设施的处理成本。如果您知道自己经常成为攻击目标,那么 1) 有人确实在努力尝试进入攻击目标,2) 您是一个明显的目标,或者 3) 您是一个高价值目标。最常见的是 2),并且最常见的是来自广泛的源 IP,因此不容易被阻止。
至于这样做是否值得,这实际上是一个商业决策。你必须权衡潜在违规的成本与解决方案的成本,就像购买保险一样。它可能无法覆盖所有情况,而且可能永远不会有回报。或者它可能是拯救你的东西。