应用中可以(也应该)防范各种基于HTTP的攻击。OWASP十大风险就是典型示例,其中所列的攻击手法可在任何应用内部检测和防范。静态分析、动态分析和渗透测试等众多工具可以确保这些漏洞不会进入生产环境。当然,前提是将此类安全测试左移至CI/CD流程中,而不是将其留到应用向用户开放前的最后一步。
即使已消除开发阶段发现的所有潜在漏洞,应用仍面临风险。这是因为有些攻击无法由应用检测到,这里所说的“无法”确实是指无法检测。事实上,等攻击到达应用时,已经为时过晚。

当然,我说的是应用层(HTTP)DDoS攻击。也就是那些如同吸血鬼般的攻击,它们利用HTTP协议本身,几乎耗尽应用的所有可用计算和内存资源,使合法用户无法使用该应用。
HTTP DDoS攻击基本分为两类:快速攻击和慢速攻击;洪泛攻击和资源耗尽攻击。
洪泛攻击
基于洪泛的HTTP DDoS攻击利用了应用需要接受并响应HTTP请求这一特性。毕竟,这正是应用的职责,不是吗?所以,应用会响应请求,无论请求涌入的速度有多快。即使请求的涌入速率会在几分钟甚至几秒内耗尽服务器的可用资源,应用仍会尝试响应。每个应用(实际上包括每台设备、每项服务和每个系统等)可同时保持打开的TCP连接数都有上限,达到上限后便无法再打开新连接。达到这一上限后,后续请求会直接被忽略。用户看到的只是看似无害的状态提示“正在尝试连接……”。浏览器或应用会等待系统规定的时长,超时后再提示无法连接。
这类攻击可能来势极快(因此被比作“山洪暴发”),其速度会超出系统扩展以满足需求的能力。在这种情况下,即使自动扩展也无济于事,因为预配并启动新的应用实例所需的时间,比攻击耗尽现有实例全部资源所需的时间更长。
资源耗尽攻击
与之相反,消耗型攻击也能达到相同目的,但其方式是迫使应用保持连接的时间超过必要时长。攻击方会假装使用拨号上网,以每秒仅从应用接收少量数据的速度缓慢传输,而不是按其实际接收能力传输。这样会延长连接持续时间;如果同时建立足够多的此类连接,最终结果与洪泛攻击基本相同:资源耗尽。
这两种攻击都无法从应用内部检测到。原因何在?对应用而言,这些请求完全合法,都是格式正确、基于HTTP的数据请求,而应用每天可能要响应数千次此类请求。HTTP标头或有效负载中没有任何标记能表明这些请求的恶意性质。应用无法识别这些请求背后的恶意意图,因为它看不到网络或更广泛的环境,尤其是服务器的会话表,其中保存着所有开放连接的完整列表。这里不再赘述线程、进程以及多线程环境中数据易变性等技术细节,只需记住一点:“应用看不到其他请求的处理情况。”
简而言之,应用本身无法判断某个请求是否属于更大规模攻击的一部分(洪泛),也无法判断其行为是否与已知能力不符(耗尽)。
代理来解围

真正能够同时了解这两项情况的,是位于应用上游(前端)的代理。这是因为该代理可能正在执行负载均衡,因此必须关注当前正在处理的请求数量以及传入的请求数量,以便将这些请求发送到集群(也可称为池)中的某个应用。
此外,代理还必须知道将响应发送到哪里,因此它掌握客户端及其网络连接的信息(通常只会将客户端IP地址发送给应用,不会发送其他信息)。与应用不同,代理具备检测洪泛攻击和资源耗尽攻击所需的可见性,并能在这些攻击侵蚀应用资源之前将其阻止。
因此,在当今的应用安全策略中,WAF(Web 应用防火墙)等基于代理的服务,乃至高级负载均衡器,都发挥着关键作用。它们具备必要的可见性和手段,能够检测表明攻击正在发生的异常行为,并像大蒜驱赶吸血鬼一样将攻击击退。
此外,由于这些传统的“网络”服务必然会成为应用架构的一部分,因此DevOps方法自然也会扩展其范围,更多地涵盖那些本就与应用密切相关的服务,例如应用安全和可扩展性(负载均衡)。
应用无法阻止所有攻击,尤其是那些需要更高可见性,而应用本身根本无法提供这种可见性的攻击。不过,通过与Web应用安全和负载均衡等应用相关服务协同工作,可以检测并抵御更广泛的攻击,从而减少服务中断和安全事件。
关于作者

Lori MacVittie是F5首席技术官办公室的杰出工程师兼首席技术布道师,在应用交付、自动化战略和基础设施领域拥有深厚的专业知识。无论是为AI智能体定义防护机制、剖析脆弱的多云架构,还是探索可扩展系统的极限,她都善于化繁为简。她在应用开发、IT架构以及网络和系统运维领域拥有30多年的行业经验。加入F5之前,她曾担任技术编辑,并因出色表现获得奖项。 MacVittie拥有计算机科学硕士学位,著述颇丰,出版作品涵盖安全、云和企业架构领域。她还热衷于桌面游戏和电子游戏,并且对奶酪有着毫不掩饰的鲜明见解。
Lori Mac Vittie 的更多博客文章相关博客文章
Thingbot正转变为攻击平台
Lori MacVittie重点介绍了F5 Labs对2018年1月至6月全球物联网设备攻击的研究,并指出了其中令人警醒的影响。物联网设备不仅持续遭到利用,还被转变为攻击平台,这意味着攻击者可以更充分地利用这个必然增长的市场。
借助F5全新Quick Start,在AWS上快速开展业务
在AWS re:Invent开幕前,我们很高兴与大家分享F5与AWS之间全新的Quick Start集成。F5的Tom Atkins将介绍该服务如何启动、配置和运行在AWS上部署工作负载所需的计算、网络、存储及其他AWS服务。