邓诗琪 武旭东 牛小龙 李小卫 雷敏
摘 要:Slow HTTP POST攻击属于应用层慢速HTTP拒绝服务攻击。在Slow HTTP POST攻击中,攻击者使用正常的POST请求进行数据的传输,但是其报文首部中的Content-Length参数值被设置为很大的值。然而,为了长时间占用建立起的请求连接,攻击者在请求首部得到确认之后开始进行的传输主体中,设置了极小的数据传输大小,导致Web服务器认为请求数据没有传输完毕,将长时间保留该请求连接,当服务器的连接资源池被类似的攻击请求占满,就会造成拒绝服务。文章根据正常HTTP POST请求发生后,数据以“尽力传输”的模式进行传输的特性与Slow HTTP POST攻击下数据传输的特性的区别,提出基于数据包大小检查的Slow HTTP POST攻击检测方法,并对检测方法进行了仿真实验加以验证。
关键词:数据包检查;Slow HTTP POST攻击;检测方法
中图分类号:TP393.083 文献标识码:A
Detection method for Slow HTTP POST attack based on packet size check
Abstract: Slow HTTP POST Attack is a type of slow-rate HTTP denial of service attack on application layer. An attacker uses normal POST request to make data transmission, but sets a large value for Content-Length parameter in header. However, for the purpose of keeping a long-time connection, the attacker makes a small data-transmission value in transmission body after the header is acknowledged and the Web server will still hold the connection and wait for other data to be transmitted. When connection resource pool of the Web server has been completely filled, the Web Server begins to deny service. This paper proposes a detection method for slow HTTP POST attack based on packet size check according to differences between normal data transmission schedule called “Best-Effort” and attack data transmission, and makes simulation test to verify the detection method.
Key words: packet size check; slow HTTP POST attack; detection method
1 引言
Slow HTTP POST攻击是一种新型的应用层慢速HTTP拒绝服务攻击的一种子类型攻击,其主要利用了HTTP协议持久连接以及HTTP POST请求需等待客户端传送完毕数据的特性,在向服务器发送HTTP POST请求报文时,在首部中设置了极大的内容长度值(Content-Length)。然而之后客户端在进行实际的数据传输时,却在传输主体中设置了极小的数据传输大小,并缓慢地发送至服务器,导致Web服务器认为请求数据没有传输完毕,继续保持当前请求连接[1,2]。在攻击端向Web服务器发送多个这样的攻击请求后,Web服务器的连接资源池将会被占满,造成服务器拒绝服务。
Slow HTTP POST攻击仅使用少量攻击流量,现有失衡比例流量检测法难以对其进行探测;在传入的数据包分组上做签名的方法只适用于攻击请求中的数据包分组与正常合法请求中的数据包分组有区别的情况,不适用于发送与合法请求数据分组结构一致的攻击请求的Slow HTTP POST攻击;用最大熵估计法检测网络流量异常误报率高。
本文首先介绍了Slow HTTP POST攻击的攻击原理,分析了其攻击成功的根本原因,并通过仿真实验对攻击进行复现,然后根据攻击特征提出基于数据包大小检查的检测方法,最后通过仿真实验对检测方法进行了验证。
2 攻击原理
2.1 尽力传输
当用户在电脑上使用万维网浏览器通过网络向服务器发送HTTP POST请求时,为了实现最大程度地有效传输数据以及最优化万维网浏览器性能,具有以尽力传输(Best Effort)运行的特征[3],如图1所示。
就Internet Explorer的HTTP POST请求来看,在浏览器向Web服务器发送了HTTP POST请求首部后,从第二个数据包开始,浏览器将向Web服务器按次序发送具有最大数据值的数据包,直到HTTP POST请求数据传输完毕。就Firefox浏览器来看,在向Web服务器发送HTP POST请求数据时,将首先发送一个HTTP POST首部和最大數据贴合在一起的数据包,然后按次序发送最大长度的数据包[4-6]。
2.2 Slow HTTP POST攻击原理
在Slow HTTP Post攻击中,攻击者使用正常的POST请求进行数据的传输,但是其报文首部中的Content-Length参数值被设置为很大的值,如图2所示。
为了长时间占用建立起的请求连接,攻击者在请求首部得到确认之后开始进行的传输主体中,设置了极小的数据传输大小。
由于报文主体中每次传输的数据长度太短,而报文首部中解析到的数据长度Content-Length太大,导致Web服务器认为请求数据没有传输完毕,将长时间保留该请求连接,直到超过传输时限。当服务器的连接资源池被类似的攻击请求占满,就会造成拒绝服务[7-9]。
在Slow HTTP Post攻击过程中,数据包的传输机制如图3所示。
2.3 Slow HTTP POST攻击过程
本文对目标服务器进行了Slow HTTP POST攻击仿真, Slow HTTP Post攻击过程连接数量变化情况如图4所示。
Web服务器在攻击发起后约10秒时变为不可用状态,挂起的TCP连接数开始增加。从24秒开始,服务器关闭的TCP连接数量逐渐上升,至约72秒时,挂起的TCP连接数开始下降。当攻击发生后108秒时,服务器恢复可用状态。攻击成功的时长为108-10=98秒。
3 检测方法设计
Slow HTTP POST攻击检测方法利用万维网浏览器中正常数据的尽力传输机制与攻击性数据传输机制的差异,对HTTP POST请求中的数据包进行比较,提出了两种攻击判定条件。
第一个条件是如果当数据包按次序传输到第N个时,第二个数据包不是最大的数据包,则判定为Slow HTTP POST攻击。
第二个条件是如果发生第三个数据包和第N-1个数据包是比最大尺寸小的数据包的情况时,则判定为Slow HTTP POST攻击。
攻击检测方法的伪代码如表1所示。
攻击检测方法的主要工作流程如图5所示。
4 实验验证
执行Slow HTTP POST攻击检测脚本对攻击进行检测,检测结果如图6和图7所示,可以看出,Slow HTTP POST攻击发起后,目标Web服务器端连续收到多个小流量的数据包,此时攻击端正通过缓慢向服务器发送较小数据来持续占用目标Web服务器连接池资源。然而,由于小流量数据包的连续流入,检测算法会将其判定为Slow HTTP POST攻击。
将本文提出的算法与现有其他算法检测准确率数据绘制与同一曲线,如图8所示。从图8可知,采用基于数据包检查的检测算法(Packet Size Check,简称PC算法)对Slow HTTP POST攻击进行检测,检测准确率在83%至85%范围内浮动,较现有TCP持久连接时长检测算法(简称TC算法)有所提高。同时,虽然本文提出的PC算法检测准确率低于STFT频谱分析法(简称RTFA算法),但其实时检测能力较强,耗时较短。
5 结束语
Slow HTTP POST攻击作为应用层新型变种拒绝服务攻击的一种,能够以较小的攻击代价轻松造成一台Apache服务器拒绝服务,其破坏力极强,涉及范围极广,对其检测防御方法研究工作至关重要。
通过本文提出的基于数据包大小检查的Slow HTTP POST攻击检测方法可以实时性地对Slow HTTP POST攻击进行检测,以协助安全管理人员及时地采取相应的防御措施。
基金项目:
2015年度国家科技支撑计划项目(项目编号:2015BAH08F02)。
参考文献
[1] Wu Z, Hu R, Yue M. Flow‐oriented detection of low‐rate denial of service attacks[J]. International Journal of Communication Systems, 2016, 29(1):130-141.
[2] Wu Z, Jiang J, Yue M. A Particle Filter-Based Approach for Effectively Detecting Low-Rate Denial of Service Attacks[C]// International Conference on Cyber-Enabled Distributed Computing and Knowledge Discovery. IEEE, 2017:86-90.
[3] 吴志军, 张景安, 岳猛,等.基于联合特征的LDoS攻击检测方法[J].通信学报, 2017, 38(5):19-30.
[4] Hirakawa T, Ogura K, Bista B B, et al. A Defense Method against Distributed Slow HTTP DoS Attack[C]// International Conference on Network-Based Information Systems. IEEE, 2016:152-158.
[5] 李赫.基于SDN的DDoS流量识别与控制技术研究[D].南京邮电大学, 2016.
[6] 任龙.应用层DDOS攻击检测技术研究[D].成都理工大学, 2016.
[7] Brynielsson J. Detectability of Low-Rate HTTP Server DoS Attacks using Spectral Analysis[C]//Ieee/acm International Conference on Advances in Social Networks Analysis and Mining. ACM, 2015:954-961.
[8] Duravkin I, Loktionova A, Carlsson A. Method of slow-attack detection[C]// Problems of Infocommunications Science and Technology, 2014 First International Scientific-Practical Conference. IEEE, 2014:171-172.
[9] Park J, Iwai K, Tanaka H, et al. Analysis of Slow Read DoS attack[C]// International Symposium on Information Theory and ITS Applications. IEEE, 2014:60-6
[10] 魏玉人, 徐育軍. DDoS攻击及防御技术综述[J].软件导刊, 16(3), 2017, 173-175.