
僵尸网络(Botnet)已出现多年,对网络安全构成了巨大的挑战。随着攻防技术的发展,除了基于PC和服务器的传统僵尸网络,近年来,还出现了多种形态的僵尸网络,如基于智能手机、IOT设备或者Webshell等等的新型僵尸网络。
本文将介绍一种基于Web前端的僵尸网络。在新的HTML5标准越来越广泛地被使用之后,HTML5的强大功能为构建僵尸网络提供了可能性。由于这种僵尸网络基于支持HTML5的Web前端浏览器,所以其权限很低。不过,基于Web前端的僵尸网络至少可以用作DDOS攻击,如果处理得当,也可以用作对HTTP服务器进行扫描等操作。
下面是本文总结的Web前端僵尸网络的技术基础:
1、HTML5 新增技术——Web Worker技术。这是一种多线程机制,使得浏览器可以在不影响用户操作的同时处理其他事务,这为恶意的JS脚本提供了异步环境;
2、HTML5 新增机制——跨域资源共享机制(CORS)。CORS处理机制工作在浏览器层面,如果服务器不允许跨站,浏览器将拦截服务器返回的结果。僵尸网络也就是说即使是跨域请求,服务器也同样会处理,并正常返回请求的资源。这个技术本身其实不对僵尸网络构成支持,但是HTML5支持CORS机制之后并未禁止跨域发送请求,这就成了前端僵尸网络立足的关键;
3、Web蠕虫。类似于传统的蠕虫病毒,Web蠕虫使前端僵尸网络可以自行传播,结合Web蠕虫,前端僵尸网络可以相对容易地形成规模。
以上三个技术点,合成在一起,为僵尸网络的存在提供了基本条件。下面进行详细介绍。
Web Worker 是运行在后台的 Javascript,独立于其他脚本,不会影响页面的性能。下面简单列举一下Web Worker能够做什么。
1.可以加载一个JS进行大量的复杂计算而不挂起主进程,用户可以在Worker运行期间做点击、选取内容等等任何事情;
2.可以通过postMessage,onmessage方法进行线程通信;
3.可以在Worker中通过importScripts(url)加载另外的脚本文件;
4.可以使用 setTimeout,clearTimeout,setInterval,clearInterval等方法;
5.可以使用XMLHttpRequest来发送请求,以及访问navigator的部分属性。
Web Worker增强了浏览器的能力。功能强大了,危险性也随之增大了。
跨域HTTP请求(Cross-site HTTP request)是指浏览器向提供第一个资源不同域名发起的请求。CORS机制可以让Web应用服务器能支持跨站访问控制,从而使得安全地进行跨站数据传输成为可能。
很多文章和资料对CORS机制内部工作原理解释的不够清楚,导致本人一度以为CORS是在跨域请求发出时拦截或者在服务器层次禁止了资源的返回。然而实际上CORS安全机制并没有针对服务器提供任何保护。
本文只针对XMLHttpRequest总结以下几点:
1.XMLHttpRequest请求可以发送到跨域服务器;
2.跨域服务器会对之前的XMLHttpRequest做出响应;
3.跨域服务器对XMLHttpRequest的响应和正常访问这个服务器产生的响应没有任何区别;
4.未能加载服务器资源的原因是浏览器对跨域资源做出了拦截限制。

因此,对于服务器来说,假设有10000个XMLHttpRequest同时对某资源发出请求,以上的请求与10000个用户同时用浏览器正常访问这个资源是等价的,因为都是做同样的处理,都是返回同样的内容。这也就是说,使用Web Worker和XMLHttpRequest进行DDOS攻击是可行的。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-28052-1.html
期盼节目的来到
放家里跟放银行里都贬吧