curl来源的DDoS:如何检测和如何停止?

好的,我pipe理的Ubuntu服务器今天成为DDoS攻击的受害者。 通常这是不愉快的,但没有那么大的交易。 几个高服务器负载时刻,然后通过。 今天显然不同。 为了logging,我有多年的服务器攻击疤痕。 但今天感觉不一样。 阅读。

该解决scheme通过重新启用ModSecurity规则来解决,该规则防止通过调用纯IP地址进行curl访问。 这意味着如果主机名是mygreatsite.com ,IP地址是123.456.78.90并且我为mygreatsite.com启用了虚拟主机。 而且ModSecurity是通过调用纯IP地址阻止curl访问的规则来激活的,那么当访问者访问mygreatsite.com ,访问者将获得正确的内容,但是如果他们尝试访问,则被ModSecurity阻止403: Forbidden该网站通过123.456.78.90 。 大问题解决了!

但是在袭击发生的时候,有三件事情是清楚的:

  1. Apache通过屋顶进行处理: Munin反映的Apache处理负载高于平常水平,持续高出3倍。
  2. 没有logging相应的networkingstream量:通过Apachelogging没有相应的stream量,反映在AWStats中。 这是几个小时的情况。 这是跨服务器上所有虚拟主机上的所有日志,包括将连接到裸IP地址的默认虚拟主机。
  3. 服务器负载适度高,但不是典型的攻击级别:虽然总体服务器负载很高,但只有单个数字 – 4,5,6,7等等 – 而不是一个典型的DDoS,负载可能会增加一倍三位数像20,30甚至120(!!!)。

对我而言,第3项是这次攻击中最不寻常的部分。 我还没有经历过一个DDoS的服务器负载基本相当于一个繁忙的交通日,而不是一个疯狂的服务器负载连接到攻击。

另外,运行elinks获取Apache server-status显示连接池在重新启动的几分钟内就像疯了一样充满:

 elinks http://localhost/server-status?refresh=1 

而过去的任何一件事 ,我只是注意到一个Ubuntu安全补丁今天专门为curl问题。 这个具体的问题引起了我的兴趣:

libcurl不正确地validation包含文字IP地址的通配符SSL证书。

所以这里是一个问题:发生了什么? 我知道重新启用一个ModSecurity规则阻止了攻击,但它可以以任何方式连接到libcurl问题 ? 如果是这样,我该如何检测或certificate? 而过去,如果问题出在libcurl – 我假设这个问题是来自使用这个缺陷的武器化客户端 – 那么这是否意味着有人可以简单地把一个黑客老旧的版本curl到DDoS中去呢? 而且写下来,任何黑客都可以下载源代码并修补它,以便今天为什么洪灾呢?

我的猜测是, curl的补丁让更多人意识到全球脚本小子的缺陷和“热情”,在发现漏洞的几个小时内就带来了大量的扫描。 但是,这又让我困惑,因为它在客户端curl安装,正确? 我无法想象curl在服务器端将是这个受害者。