您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center   Code  
会员   
   
 
     
   
 订阅
  捐助
华安解密之DDoS攻防-05 HTTP案例篇 “搜狐视频”事件解密
 
作者:华安
   次浏览      
2020-8-28 
 
编辑推荐:
本文首先对一个案例进行了回顾,然后又介绍了HTTP协议基本知识、华为Anti-DDoS解决方案怎么做?


本文来自于华为企业互动社区,由火龙果软件Anna编辑、推荐。

在苦心钻研DDoS防御技术之前,哥也曾经和大多数人一样,认为网络犯罪都是黑客的事,只想安安静静地做个美(好)男(网)子(民),互联网上的各种纷争都与我无关,直到哥不知不觉充当了一次“肉鸡”。

话说那时的搜狐已经是名列前茅的网站,那时的哥也还是个年轻的小鲜肉,当哥整天抱着搜狐视频看电视看球赛看广告的时候,下面的事情发生了……

0x01 事件回顾

2014年5月,当哥还沉浸在搜狐热播的时候,颇负盛名的搜狐视频,却背负了一起著名的DDoS攻击事件。

当时,日本CDN服务商Incapsula声称,自己的一位客户的服务器遭遇了搜狐视频发起的DDoS攻击,期间总共有超过2万的网民通过搜狐视频向这位客户发起超过2000万次的HTTP Get请求。然而如此知名的网站,怎么会甘冒不韪,公然向别人发起攻击呢?原来,搜狐视频是在未知的情况下被黑客利用,成为了攻击的源头。

有句话叫“趁虚而入”,搜狐视频网站上恰好就有这么一个漏洞给了黑客“打劫”的机会。通过这个漏洞,黑客注册一个搜狐视频账户,在头像中注入恶意代码(JavaScript),然后用这个账户在视频的评论区发布大量的评论。你看,每条评论都带有用户头像,头像中带有恶意代码,这样,每条评论都附带着恶意代码。当任何用户访问这个视频页面的时候,都会触发恶意代码,实际上控制了搜狐视频用户的浏览器。

那么这段恶意代码干了什么呢?简单说,这段代码就是在用户不知情的情况下,定时向受害者发起HTTP访问请求。这个定时器,是1秒。

也就是说,当搜狐视频用户观看视频时,他的浏览器会每秒向受害者发起一次请求。如果用户观看30分钟视频,那么就会向受害者发起1800次请求。大家可能会觉得,这也没有多少呀,但是,搜狐视频这样的大型视频网站,同时在线观看热门视频的用户都是成千上万级别的,黑客在多个热门视频下发布海量评论,轻松获得无数“肉鸡”。众人拾柴火焰高,如果星火燎原到千家万户同时持续地向受害者发送请求,攻击效果就可想而知了。

嗯,每一个人都是帮凶。

0x02 HTTP协议基本知识

HTTP协议,HyperText Transfer Protocol,超文本传输协议。我们先来简单回顾下HTTP协议的基本原理。

HTTP协议最基本的交互流程如下。

完成TCP三次握手后,客户端向服务器发起HTTP请求。正常情况下,服务器回应200 OK,在应答中添加应答长度,然后开始传输数据。

HTTP协议还有一种重定向的交互流程,如下。

完成TCP三次握手后,客户端向服务器发起HTTP请求。如果客户端请求的这个URL是过期的,那么服务器就会回应客户端302重定向报文,并携带新的URL地址。然后客户端再重新向新的URL地址发起请求,服务器回应200 OK,并开始传输数据。

0x03 华为Anti-DDoS解决方案怎么做?

HTTP协议是一种基于TCP协议的应用层协议,而HTTP类的攻击,最高效的防御方式就是源认证方式进行校验。华为Anti-DDoS解决方案可以感知TCP协议和HTTP协议,可以针对攻击源进行多层级的源认证和校验。

源认证体系主要有三个层面:

第一层,TCP/IP源认证

一般用于TCP三次握手还没建立成功前,验证攻击源的TCP/IP是否真实可信,比如IP源认证是对IP层面的校验,认证这个源是不是真实存在的源;而TCP代理和首包丢弃校验是对于TCP协议栈层面的校验,用于判断是否是这个源发出的真实请求。

很显然上述攻击事件已经完成了TCP三次握手,不属于TCP/IP范畴,关于TCP/IP源认证的防御机制,我们会在后面详细介绍,本节着重介绍应用层源认证。

第二层,应用层源认证

如果肉鸡使用工具调用真实的TCP/IP协议栈发动攻击,则TCP/IP源认证无法识别是否是攻击,我们必须启用应用层源认证,比如利用HTTP 302重定向请求,可以认证客户“浏览器”是否可信。只有真实浏览器才具备完整的HTTP协议栈校验机制。

第三层,用户源认证

在客户端是真实的基础上,进一步验证是否由真实用户发出的请求,而不是肉鸡浏览器被黑客控制强制发出的请求。针对这种情况,终极的手段就是,人机交互,输入验证码和图片运算。其实验证码机制就是对登录用户的一次安全验证,判断一下是不是真实用户发起的请求。如果是DDoS工具发起的请求,是无法自动响应随机应变的验证码的。

我们再回到前面的攻击事件上来。攻击报文是由浏览器发出的请求,没有人为参与,源IP是真实存在的,浏览器也是真实存在的,但是请求行为是虚假的。所以在防御的时候,就要识别出HTTP请求中,哪些是真实的用户发送的请求,哪些是肉鸡浏览器发的请求。浏览器具有完整的HTTP协议校验机制,对于302重定向报文,浏览器可以直接完成交互过程,无须用户参与,显然302重定向方式识别不了攻击报文。只能通过验证码这种需要人机交互的方式来识别攻击报文,显然对照的是第三个层面。

对于HTTP攻击防御,第二层提到的302重定向和第三层的验证码方式都是非常有效的防御手段,302重定向更常用。只要客户端具备完善的302重定向机制,就可以通过302重定向源探测方式识别虚假源。但是302重定向无法识别僵尸浏览器,对于僵尸浏览器可以使用验证码方式,只是验证码需要用户参与,用户体验稍差一点。

还有一种特殊情况,当网络中有HTTP代理服务器时,只要有一次源认证通过,Anti-DDoS就会将代理服务器IP地址加入白名单,后续黑客就会利用代理服务器IP绕过源认证检查,从而导致防御失败。这种情况下,就要配合代理检查功能一起使用,检测HTTP请求是否为通过代理发出的请求。如果是,Anti-DDoS会从HTTP报文中获取请求者的实际IP地址,将通过认证的真实IP地址和代理服务器IP地址加入白名单,后续只有此实际源IP地址发送的报文才能直接通过,其他源IP发送报文时,Anti-DDoS会对其进行源认证,达到防御效果。

   
次浏览       
 
相关文章

iOS应用安全开发,你不知道的那些事术
Web安全之SQL注入攻击
移动APP安全在渗透测试中的应用
从Google备份互联网看“数据安全”
 
相关文档

web安全设计与防护
互联网海量内容安全处理技术
黑客攻击与防范技术
WEB黑盒安全检测
 
相关课程

WEB网站与应用安全原理与实践
web应用安全架构设计
创建安全的J2EE Web应用代码
信息安全问题与防范
最新活动计划
LLM大模型应用与项目构建 12-26[特惠]
QT应用开发 11-21[线上]
C++高级编程 11-27[北京]
业务建模&领域驱动设计 11-15[北京]
用户研究与用户建模 11-21[北京]
SysML和EA进行系统设计建模 11-28[北京]
 
最新文章
物联网安全概述
史上最详细的区块链技术架构分析
一文读懂区块链整体架构及应用案例
区块链技术架构
安全架构评审实战
最新课程
Web应用安全架构、入侵检测与防护
物联网关键技术、安全与边缘计算
区块链安全技术实践指南
云服务与安全架构
互联网安全开发方法与实践
更多...   
成功案例
中国银行 信息安全技术及深度防御
北京 Web应用安全架构、入侵检测与防护
某财税领域知名IT服务商 Web安全测试
普瑞克斯 web安全设计、测试与优化
北京和利时 性能和安全性测试
更多...