浅谈基于JavaScript的DDOS攻击

CloudFlare通过对上百万个网站进行防护,总结出最古老、最普遍的攻击非DDoS攻击莫属。在传统的DDoS攻击中,攻击者会控制大量的傀儡机,然后向目标服务器发送大量请求,阻止合法用户访问网站。

然而,最近几年DDoS攻击技术不断推陈出新:攻击者用一种新型且很有趣的方式欺骗用户参与到攻击活动中。去年CloudFlare就见证了一次使用NTP映射的攻击,可能是DDoS攻击史上最大的一次攻击(大于400Gbps)。

今年的DDoS攻击又出现了一个新的攻击趋势:使用恶意的JavaScript欺骗用户参与DDoS攻击。

NTP或者DNS映射攻击造成的后果受到傀儡服务器数量的限制,同时攻击流量也受傀儡服务器容量的限制。随着时间的推移,服务器会不断的更新补丁,能被攻击者利用的服务器数量也在不断的减少。而基于JavaScript的DDOS攻击有一个非比寻常的特点:任何有浏览器的设备都可能参与攻击,其潜在攻击规模接近无限。

基于JavaScript的DDOS攻击原理

现代网站的交互作用大多数都是采用JavaScript。JavaScript脚本可直接注入HTML中,或者通过

function imgflood() {
  var TARGET = ‘victim-website.com‘
  var URI = ‘/index.php?‘
  var pic = new Image()
  var rand = Math.floor(Math.random() * 1000)
  pic.src = ‘http://‘+TARGET+URI+rand+‘=val‘
}
setInterval(imgflood, 10)

该脚本会在目标网页上生成一个图片按钮,图片按钮会指向“victim-website.com” 网站。只要用户访问了含有该脚本的网页,那么他就会成为 “victim-website.com”DDoS攻击中的一员。浏览器发出的每一个请求都是有效请求,于是该攻击又变成了Layer 7 攻击。

FreeBuf百科:应用层攻击

攻击者发送大量的数据包或利用服务器应用的漏洞等,饱和服务器的资源,造成DDOS攻击,该类漏洞往往不需要大量的肉鸡。应用层DDOS攻击的列子包括Slowloris、Apache、Windwos、OpenBSD等的漏洞。如ModSecurity 空指针间接引用远程拒绝服务漏洞(CVE-2013-2765),攻击者可以利用该漏洞使Apache Web服务器崩溃。

如果攻击者在一个网站中嵌入了恶意JavaScript脚本,那么该网站的每一个访客都将成为DDoS攻击中的一员。网站流量越高就意味着DDoS越严重。

入侵共享JavaScript的第三方服务器

许多网站使用的都是普通的JavaScript库,为了节约带宽、提升性能,通常还会将JavaScript脚本共享在第三方服务器上。也就是说如果网站上包含有指向第三方服务器的脚本标签,就意味着所有访问该网站的用户都将自动下载JavaScript脚本,并执行。不幸的是,如果攻击者入侵了该第三方服务器并在JavaScript脚本中注入了DDoS攻击代码,那结果可想而知了,所有的访客也将变成DDoS攻击中的一员。

2014年9月份的时候,jQuery就发生过这种形式的入侵。

子资源完整性简介

通过替换第三方服务器上的JavaScript展开攻击,这是其实也是一种比较老的攻击方式。目前HTTP还没有相关的机制来阻止该脚本的运行,但W3C已经提出了名叫子资源完整性(SRI)的新功能,使用加密哈希值验证脚本,如果哈希值不匹配浏览器可以阻止其运行。

例如,如下脚本标签:

<script src="https://code.jquery.com/jquery-1.10.2.min.js">

浏览器会自动下载该.js文件,并且会不分青红皂白的运行它。即使该文件中被攻击者注入了恶意脚本,浏览器也不会识别。然而如果网站发现了哈希值验证脚本不匹配,子资源完整性(SRI)会告诉浏览器不要运行该脚本。

<script src="https://code.jquery.com/jquery-1.10.2.min.js"
        integrity="sha256-C6CB9UYIS9UJeqinPHWTHVqh/E1uhG5Twh+Y5qFQmYg="
         crossorigin="anonymous">

建议网站管理员将添加这一标签添加到服务器上,用以保护其用户不被利用。

目前支持子资源完整性的浏览器只有Chrome和Firefox。

中间人攻击

位于浏览器和服务器间的中间人可以任意修改数据,包括更改HTML内容或者JavaScript脚本。而如果中间人走偏了,做了一些恶意的事情,如向页面中添加恶意JavaScript并执行,那后果一样很严重 (也就是所谓的中间人攻击)。

修改传输过程中的网站是ISPs和WiFi供应商独有的技术,但如果攻击者获得了这一权限,他们会将传输过程中的脚本替换成恶意JavaScript脚本。更甚的是,如果JavaScript脚本中包含了DDoS脚本,那DDoS攻击成员将会进一步的扩大。

情况还可以更糟糕一点,如果JavaScript文件的传输路径正好经过攻击者的网络,那么参与DDoS攻击的浏览器和用户的数量将会大的惊人。

总结:防御

基于JavaScript的DDOS攻击越来越频发,防御这一攻击的唯一方式是全面启用HTTPS。

时间: 2024-10-22 06:23:29

浅谈基于JavaScript的DDOS攻击的相关文章

基于JavaScript的DDoS的攻防介绍

预备知识 随着Web技术的发展,JavaScript作为一种注重交互性的客户端运行脚本,在网站开发过程中使用的越来越普遍.JavaScript是一种基于对象和事件驱动,并具有安全性的脚本语言.它与HTML,CSS结合起来,用于增强功能,并提高与最终用于之间的交互性能.JavaScript代码是解释型的,不需要编译,而是作为HTML文件的一部分由解释器解释执行.目前,基本上所有的浏览器都内置JavaScript的解释器. 分布式拒绝服务攻击(DDoS)始终是网络安全领域一项经久不衰的话题.发动DD

浅谈iptables防SYN Flood攻击和CC攻击

------------------------本人为自己实践所总结,概念性的东西不全,这里粗劣提下而已,网上很多,本文主要说下目前较流行的syn洪水攻击和cc攻击------------------------------------- 何为syn flood攻击: SYN Flood是一种广为人知的DoS(拒绝服务攻击)是DDoS(分布式拒绝服务攻击)的方式之一,这是一种利用TCP协议缺陷,发送大量伪造的TCP连接请求,从而使得被攻击方资源耗尽(CPU满负荷或内存不足)的攻击方式(TCP协议

分针网——每日分享:浅谈前端JavaScript编程风格

前言 多家公司和组织已经公开了它们的风格规范,具体可参阅jscs.info,下面的内容主要参考了Airbnb的JavaScript风格规范.当然还有google的编程建议等编程风格 本章探讨如何使用ES6的新语法,与传统的javascript语法结合在一起,写出合理的.易于阅读和维护的代码. 编程风格 块级作用域 (1)let 取代 var ES6提出了两个新的声明变量的命令:let和const.其中,let完全可以取代var,因为两者语义相同,而且let没有副作用. 'use strict';

浅谈如何防御arp的攻击

无论是在校生,上班族,还是网吧用户,一定都遇到过令人怒不可遏的ARP攻击,ARP攻击会恶意阻断你的计算机与别的计算机之间的网络通信,导致网络不能访问.通过ARP通过攻击会窃取你的信件,导致你无法与外界沟通.你可能会有此经历--网络频繁掉线,速度变慢,你对此却无从下手.这可能就是网络遭受ARP攻击表现,下面介绍几种简单方法帮助你快速解决之. 建立MAC数据库 在局域网内,ARP攻击依然占有很高比例.众所周知,ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利

浅谈关于JavaScript解析XML文件的注意事项

之前在重庆农商行的时候做项目,涉及到一个级联的功能,需要从XML中读取数据存到select框中. 开始的时候一直出错,首先是火狐浏览器报错.但是IE正常,后来是火狐浏览器不报错了但是不显示.而IE依然显示. 经过一番仔细的研究,总算解决了问题,下面我总结一下, 希望给更多的人带来帮助. 首先呢,是页面加载的时候要把数据从XML中读取并且存入select中的option . 以下是详细的代码 第一步:以下是我所定义的XML代码 名称为school.xml <?xml version="1.0

浅谈原生JavaScript实现remove()和recover()

利用原生JavaScript实现: 1.remove(selectors)删除指定的一个或一组元素. 2.recover(selectors)恢复刚才删除的元素. 1 function remove(selectors) { 2 selectors.removeNode = []; 3 if (selectors.length != undefined) { 4 var len = selectors.length; 5 for (var i = 0; i < len; i++) { 6 sel

【转】【ASP.NET MVC系列】浅谈ASP.NET 页面之间传值的几种方式

ASP.NET MVC系列文章 原文地址:https://www.cnblogs.com/wangjiming/p/6275854.html [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操作篇)(下) [04]浅谈ASP.NET框架 [05]浅谈ASP.NET MVC运行过程 [06]浅谈ASP.NET MVC 控制器 [07]浅谈ASP.NET MVC 路由 [08]浅谈AS

DDoS攻击防御方案

DDoS攻击防御方案 近期DDoS攻击事件较多(2014年DDoS攻击事件分析),大家都在思考一个问题,在面临DDoS攻击的时候,如何防御ddos攻击?绿盟科技安全+技术刊物特别邀请到绿盟科技在运营商方面的DDoS专家,给大家讲讲DDoS攻击防御方案. DDoS攻击威胁现状 对于DDoS攻击,有多种分类方式,例如流量型DDoS攻击(如SYN Flood.UDP Flood.ICMP Flood.ACK Flood等).应用层的DDoS攻击(如Http Get Flood.连接耗尽.CC等).慢速

大数据DDos检测——DDos攻击本质上是时间序列数据,t+1时刻的数据特点和t时刻强相关,因此用HMM或者CRF来做检测是必然! 和一个句子的分词算法CRF没有区别!

DDos攻击本质上是时间序列数据,t+1时刻的数据特点和t时刻强相关,因此用HMM或者CRF来做检测是必然!--和一个句子的分词算法CRF没有区别!注:传统DDos检测直接基于IP数据发送流量来识别,通过硬件防火墙搞定.大数据方案是针对慢速DDos攻击来搞定.难点:在进行攻击的时候,攻击数据包都是经过伪装的,在源IP 地址上也是进行伪造的,这样就很难对攻击进行地址的确定,在查找方面也是很难的.这样就导致了分布式拒绝服务攻击在检验方法上是很难做到的.领域知识见:http://blog.csdn.n