本文讲的是 :  对抗模拟浏览器的DDoS攻击  , 收藏该文基于浏览器的僵尸网络就是DDoS世界里的T-1000s。他们之所以如此危险是因为他们就跟终结者里的反派一样,被设计的可以适应各种情况的攻击。当其他原始的网络僵尸还在暴力破解你的防御的时候,基于浏览器的僵尸就已经模拟真实的人类从前门进入了。

  当你意识到情况不对时,他们已经突破边界,搞宕服务器,已经无力回天了。

  那么应该怎么防御T-1000呢,怎么分辨一次访问是来自与真实的浏览器还是一个基于浏览器的僵尸?传统的过滤僵尸的策略在面对能够保存 cookie和执行javascript的僵尸时都失效了。而不分青红皂白地让所有用户都填写验证码无异于自我毁灭,尤其是当这种攻击可能持续数个星期的 时候。

  为了研究防御方法,我们来看一个真实的案例:

  这次攻击是一个未知的僵尸网络发起的。这些基于浏览器的僵尸可以保存cookie,执行javascript。攻击的早期我们识别出是PhantomJS无界面浏览器。

  PhanomJS是一套开发无界面浏览器的工具。它提供所有浏览器的功能但是没有界面,没有按钮,没有地址栏。一般被用在自动化测试和网络监控上。

  这次攻击持续了150个小时以上。这个过程中,我们记录了全球超过180000个恶意IP。高峰期每秒6000次攻击,平均一天有 690000000次以上。攻击IP的数量和分布范围让我们觉得这应该不仅仅是一个僵尸网络,而是可能整合了多个。下图是攻击ip的地理分布。

  

  攻击过程中我们截获了861个不同的user-agent。攻击者修改了头部的结构试图绕过我们的防御。

  下图是攻击最多的ip:

  有趣的是攻击者除了使用模拟浏览器的僵尸,还试图模拟人类的行为来躲避基于行为检测的安全规则。这些僵尸会先访问不同的页面,然后像人类那样访问一些随机的页面,最后才会聚集在一起消耗资源。

  尽管基于浏览器的僵尸能够突破传统的过滤。但是由于它使用了一个已知的无界面浏览器,这样子就可以通过我们的客户端分类机制检测到。

  我们的客户端分类机制基于我们已经收集的大量信息总结出来的签名。发生这次攻击的时候,我们的信息库已经有超过10000000个签名。每一个签名都包括:

  User-agent

  IPs and ASN info

  HTTP Headers

  JavaScript footprint

  Cookie/Protocol support variations

  我们不仅仅收集一些明显的信息,比如user-agent,还收集一些浏览器之间复杂的细微差别。安全的对抗是封闭的,所以不说一些技术细节的话很 难把这个机制解释清楚。稍微说一点,我们会寻找浏览器处理编码方面细微的差别,比如,我们通过浏览器处理HTTP头里两次空格和特殊字符来区别不同的浏览 器。

  所以我们的数据库里有成千上万个已知的浏览器和僵尸签名,覆盖各种场景。在这个案例中,攻击者的武器PhantomJS webkit当然也是我们签名库中的一个。

  当攻击者在规划如何让他的僵尸看起来更像人类的时候,我们的团队必须做的就是让我们的系统发现攻击者用的无界面浏览器是哪一种。之后我们做的就是简单的屏蔽了所有的PhantomJS的实例。我们甚至留了一个备选,让用户填一个验证码,以免屏蔽掉了真正的人类访问。

  不出意料的,没有验证码被填写。

  几天之后,当我们已经完全依靠机器识别,不需要人工干预了。攻击者依然在使用新的user-agent和新的ip试图绕过防御。但是所有残忍的T-1000s都已经被我们冰冻起来了。他们使用的方法,签名,模式都已经被记录下来作为将来的参考。

原文发布时间为:2015年7月6日

本文作者:佚名

本文来自云栖社区合作伙伴IT168,了解相关信息可以关注IT168

原文标题 :对抗模拟浏览器的DDoS攻击

对抗模拟浏览器的DDoS攻击相关推荐

  1. a标签hidden属性_HTML5属性a标签ping被用于DDOS攻击,QQ浏览器被波及

    一直以来,DDoS攻击就是网络基础设施和web应用的主要威胁.攻击者也在不断创建新的方式来利用合法服务进行恶意行为,迫使研究人员在CDN DDoS攻击方面进行持续研究并构建高级缓解措施. 研究人员近期 ...

  2. 【网络攻击手段之----- DDOS攻击】

    网络攻击手段之 DDOS攻击 前言 网络的攻击手段 常见的网络攻击手段 什么是DDOS攻击 如何实现DDOS攻击 C代码模拟DDOS攻击 如何使用C语言代码来模拟DDOS攻击 提升攻击强度 如何进一步 ...

  3. 什么是DDOS攻击?怎么防御?

    一.什么是DDOS? DDOS是英文Distributed Denial of Service的缩写,意即"分布式拒绝服务",那么什么又是拒绝服务(Denial of Servic ...

  4. 带你了解DDoS攻击的原理,让你轻松学会DDoS攻击原理及防护措施

    DDoS攻击原理是什么? 随着网络时代的到来,网络安全变得越来越重要.在互联网的安全领域,DDoS(Distributed DenialofService)攻击技术因为它的隐蔽性,高效性一直是网络攻击 ...

  5. ddos攻击工具_简单有效的ddos攻击防御方法

    做过网站的站长大多有被ddos攻击的经历,不少人面对竞争对手的网站就是直接雇人ddos攻击网站,导致对方网站长期打不开,最后无奈关闭网站,初尧今天就告诉大家一个最简单也是最有效的防御方法. 高防服务器 ...

  6. 怎么抵抗DDOS攻击?

    一,为何要DDOS? 随着internet互联网络带宽的增加和多种ddos黑客工具的不断发布,ddos拒绝服务攻击的实施越来越容易,ddos攻击事件正在成上升趋势.出于商业竞争,打击报复和网络敲诈等多 ...

  7. 什么是DDOS攻击?怎么抵抗DDOS攻击?

    一.为何要DDOS? 随着Internet互联网络带宽的增加和多种DDOS黑客工具的不断发布,DDOS拒绝服务攻击的实施越来越容易,DDOS攻击事件正在成上升趋势.出于商业竞争.打击报复和网络敲诈等多 ...

  8. 什么是DDOS攻击?怎么抵抗DDOS攻击?——世通兰陵王为你解说

    一.为何要DDOS? 随着Internet互联网络带宽的增加和多种DDOS黑客工具的不断发布,DDOS拒绝服务攻击的实施越来越容易,DDOS攻击事件正在成上升趋势.出于商业竞争.打击报复和网络敲诈等多 ...

  9. 防御DDoS攻击的十一种方法

    对于遭受DDoS攻击的情况是让人很尴尬的,如果我们有良好的DDoS防御方法,那么很多问题就将迎刃而解,我们来看看我们有哪些常用的有效地方法来做好DDoS防御呢. 对于DDoS防御的理解: 对付DDoS ...

最新文章

  1. Singleton Pattern(单例模式)
  2. java 读取文件内容 实例_Java 实例 – 读取文件内容 - Java 基础教程
  3. 判断表达式值是否为空_如何在 Python 中判断列表是否为空
  4. 远程服务器登入信息,远程登录服务器查看信息
  5. js 对Array的补充
  6. Spring延迟依赖注入ObjectFactory/ObjectProvider
  7. Linux服务器双网卡双IP和单网卡双IP配置方法(Debian/Ubuntu)
  8. oracle的用户和mysql的用户_oracle数据库的用户以及表空间
  9. [改造]微信缩放字体view的改造
  10. matlab泊松分布图,matlab画泊松分布图
  11. 修复Win10任务栏开始菜单等系统图标无法点击问题
  12. 天翎开源,是一种技术,更是一种信仰
  13. 鲸探发布点评:7月12日发售小王子系列数字藏品
  14. 移动端日历插件_好用的记事日历本桌面日历
  15. Proxy的常见使用——正向代理的使用及配置总结
  16. 前端面试题精编2020(js、html、小程序、React、ES6、Vue、算法、全栈热门视频资源)持续更新
  17. 惠普笔记本LED灯闪烁代码故障含义
  18. Matlab fplot函数详解
  19. Ubuntu10.04下载Android-x86(froyo-x86)源代码步骤
  20. 如何从服务器复制cadence库文件到windows,cadence使用笔记

热门文章

  1. 远程控制篇:抓取远程屏幕图像
  2. 【自用】手工编译lnmp环境
  3. (转)invalidate()和postInvalidate() 的区别及使用
  4. 第 5 章 结合javabean实现CRUD
  5. Valak 6个月上演“变身戏法”,紧盯 Exchange 服务器窃取企业数据
  6. 请求之前~HttpHandler实现媒体文件和图像文件的盗链
  7. 微信电话本的未来在农村
  8. htpasswd用法
  9. 转载文章:Microsoft 将僵尸网络威胁智能分析程序引入云中以提供近实时数据
  10. 免费讲座 再出江湖!