发起网络层流量洪水?不不不,现在的DDoS攻击者更钟爱应用进程。攻击者注意到人们已经越来越善于防御大规模分布式拒绝服务(DDoS)攻击了,于是他们换了个淹没的目标——应用进程。
DDoS导流专家CloudFlare观测到,消耗进程CPU时间、磁盘空间、内存分配等高层服务器资源的网络攻击急速增加,而靠淹没网络架构中低层级带宽资源的传统DDoS攻击似乎无甚变化。
5月21日,该云服务提供商的安全产品经理 Alex Cruz Farmer 表示,通常速率在每天160左右的OSI第七层(应用层)攻击如今能以每天1000的高速爆发。
与动辄每秒数百GB的垃圾流量洪水相比,这点速度看起来似乎很不值一提,但那是在你不作为接收端系统管理员的情况下:构建合理的应用层攻击能以每秒相对少量的复杂请求令服务器进程过载,无需大量数据包即可搞瘫目标。
CloudFlare已推出速率限制产品,可搞定僵尸攻击和应用层DDoS,但Farmer称该产品经过1年的应用体验后发现还需增加其他功能。
该产品不是简单地封锁流量源,而是让用户可以选择通过CloudFlare的JavaScript或谷歌的reCptcha提出挑战,作为UI和API缓解措施。
设置一条5分钟内5次登录尝试失败就禁用的规则很简单,但这会伤到合法用户。
1分钟内登录4次就很难,手速再快都难以企及,可以用来识别潜在的僵尸主机,应用速度限制并提起人类能通过而僵尸主机通不过的挑战。
其他更为复杂的速度限制规则也可以设置,从提起 Cloudflare JavaScript 挑战到锁定账户24小时都可以。
在正式部署前,这些挑战可以在 Cloudflare 的模拟工具中免费测试。
另一个改变是速度限制工具增加扩展性。对企业客户而言,该系统现在从源响应头通过匹配从源返回到CloudFlare的属性来计算流量。
该功能是为减轻系统管理员维护不断膨胀的问题IP地址列表而设计的,能使管理员基于此源响应头触发速度限制:
我们在源处产生一个包头,添加到返回CloudFlare的响应中。因为匹配的是静态的头,我们可以基于该头的内容设置严重性级别。比如说,如果是重复性攻击,便可往该头中填入表示严重性级别为“高”的值,触发更长时间的封禁。
除此之外,还有一个用于防护数据库免受枚举攻击的防御措施,避免攻击者通过快速逐条查询记录而让数据库进程锁死:攻击者向终端连续快速发送随机字符串,导致数据库卡死停顿。
比如说,CloudFlare某客户就曾遭受过6小时内收到1亿条数据库查询请求的枚举攻击。
由于攻击者发送的是随机字符串,任何“查无此记录”的查询请求都会产生一个 HTTP 404 错误代码,速度限制就能应用在此处;或者,速度限制也可应用于 HTTP 404 和 HTTP 200 (查询成功代码)的组合。
类似的规则可以应用到试图下载图像数据库(包含 HTTP 403 “禁止访问”)的爬取器上,阻断试图通过爬取图像让服务器过载或窃为己用的僵尸主机。
CloudFlare的专业版中,允许设置的规则数量从3条增加到了10条;商业版则更多,可设置15条。
原文发布时间为:2018-05-25
本文作者:nana