这是攻击 (DoS/DDoS) 的征兆吗?

信息安全 Web应用程序 攻击 ddos 拒绝服务
2021-08-20 16:39:22

我在我的国家为一家电子商务网站工作,这是我们第二次遭受攻击。至少,看起来像一个。

我们的网站中有一个搜索功能,假设的攻击者直接向我们的搜索发送大量请求。现在它正在让我们失望,因为这是一个瓶颈(数据库)。我们正在努力扩大它(将搜索从数据库中转移到 lucene 中),因此这种流量在未来应该不会成为问题。

所有请求都来自分布在德国和美国亚马逊 AWS 主机名中的十几个 IP 地址,但由于它们使用的查询术语与我们的业务并非完全无关(它们传递数字序列和奇怪的全名),我不得不考虑这是不是真的是攻击。

对此有什么想法吗?

谢谢

3个回答

从您的问题总结来看,如果它导致资源消耗,那么即使这不是邪恶的“攻击”,它仍然会导致您出现拒绝服务情况,您重新审视您的架构是正确的。

但是,就识别这是一种攻击而言,您需要进一步调查查询术语,以了解其中是否有任何尝试进行基于注入的攻击(例如跨站点脚本(XSS)/SQL 注入等。 )。大量的数字和名称可用于制造噪音以隐藏恶意企图。

您还应该在数据中寻找趋势,以确定这是否是潜在的协调工作,从而将所有不良流量分类为相同,或者您是否有可以关注的特定不良流量子集。

如果您看到“十几个”IP 在几秒/分钟的间隔内向您发送了第 1,000 个请求,则您更有可能遭受 DOS 攻击。

只有十几个 IP,我不会称之为 DDOS。

但它可能是为更大的事情做准备。

所有请求都来自分布在德国和美国亚马逊 AWS 主机名中的十几个 IP 地址,但由于它们使用的查询术语与我们的业务并非完全无关(它们传递数字序列和奇怪的全名),我不得不考虑这是不是真的是攻击。

从表面上看,这似乎是一种典型的洪水攻击,使用代理服务器并在您的网络服务器上放置重复或锤击动作类型的请求,针对将导致最大搜索结果的搜索词,从而消耗尽可能多的 CPU 使用率数据库服务器。

序列号可能是一种缓存破坏练习,因为使用代理服务器的问题在于它们中的许多正在缓存给攻击者,攻击者希望每次发送都是您网络服务器上的实际请求。

例如 www.yoursite.com/?searchword=aeroplanes&randomfieldname=100001

虽然网络服务器将忽略 randomfieldname 因为它没有寻找它,但它会从 searchword 中获取值并应用请求。

然而,缓存代理将看到以下内容

www.yoursite.com/?searchword=aeroplanes&randomfieldname=100001

www.yoursite.com/?searchword=aeroplanes&randomfieldname=100002

www.yoursite.com/?searchword=aeroplanes&randomfieldname=100003

www.yoursite.com/?searchword=aeroplanes&randomfieldname=100004

等等

因此,即使搜索词没有更改,新请求也会始终将请求传递到您的服务器。

这是一个锤子攻击的例子。

但是,通常情况下,锤子工具是基本的,因为它们可能无法理解对合法请求的更高级验证。例如,经过验证的搜索请求可能意味着使用图像验证,或要求 cookie 响应,甚至要求查看浏览器理解 javascript 以执行有效的搜索请求。

尽管这些额外的安全检查对于合法的站点查看者来说可能很烦人,例如图像验证。

查看Cafe Counter Intelligence Soap CMS 类,了解作者如何使用会话和 javascript 的巧妙组合来要求查看浏览器在接受页面请求之前理解 js。然后启动一个请求计数器,如果请求过于频繁,则拒绝访问 IP 地址......即锤子攻击中经常出现的情况。

尽管该类是近十年前编写的,但其中的概念在今天与它们编写时一样有效,尽管它们需要更新到最新的 PHP 编码标准。