基于网页挖矿攻击的防御策略研究与实现

2018-09-12 09:52◆高
网络安全技术与应用 2018年9期
关键词:挖矿脚本攻击者

◆高 岩



基于网页挖矿攻击的防御策略研究与实现

◆高 岩

(武汉虹旭信息技术有限责任公司 湖北 430000)

随着区块链的快速发展以及虚拟货币的大量引入,挖矿木马成为了被攻击者运用最频繁的攻击方式,从挖矿的形态上可以分为PC客户端挖矿和网页挖矿。本文的研究重点是针对网页挖矿攻击进行有效防御。针对已有的防御策略的不足,本文提出了通过黑名单限制常见挖矿引擎,并通过检测CPU使用率阻止新型的挖矿引擎,同时自动更新黑名单的防御策略,完成对网页挖矿攻击的防御。

区块链;挖矿攻击;挖矿攻击防御

0 引言

近来年随着互联网的快速发展,区块链的出现将原有的信息互联网转化为价值互联网。区块链是一种去中心化的信息同步技术,其以密码学以及POW(proof of work)共识机制为基础,利用分布式节点共识算法来生成和更新数据,最终完成完整的记录价值转移的过程。而为了保证这一安全性,挖矿的概念被提出,挖矿是一种CPU密集型的资源争抢工作,挖矿的中心思想起源于hashcash机制,该机制初次提出时主要用来阻止恶意用户向邮件服务器发送垃圾邮件。攻击者通过恶意代码将挖矿程序植入受害者计算机,利用受害者的计算机的算力进行挖矿,此类挖矿攻击日益增多,如何有效防御挖矿攻击是如今信息安全研究的热点。

常见的挖矿攻击方式主要分为:僵尸网络挖矿以及网页挖矿。僵尸网络网矿是指攻击者通过网络入侵其他计算机建立僵尸网络并植入木马,通过所控制计算机的巨大算力来进行挖矿。网页挖矿通常指攻击者通过在页面植入JavaScript恶意脚本,当普通用户访问该页面时,执行javascript脚本,通过javascript脚本进行挖矿。本文主要针对网页挖矿的攻击手段进行分析,并针对性地提出对应的防御措施。

1 网页挖矿概述

网页挖矿在用户浏览器访问页面时,执行网页中包含的挖矿代码,导致在不知情的情况下计算机CPU被占用进行挖矿。网页挖矿拓扑图如图1所示。

图1 网页挖矿拓扑图

图2 广告联盟挖矿框图

1.1 广告联盟进行挖矿

现阶段通过网页进行挖矿已经不满足于单个网站挖矿,而是将目标对准更大流量的网站进行传播,其中通过广告引入恶意挖矿脚本是其主要攻击方式之一。广告联盟挖矿的流程如图2所示。

攻击者通过在广告窗口嵌入挖矿脚本,受害者访问包含该广告的网站时浏览器会自动加载该挖矿脚本,挖矿脚本占用大量用户CPU的使用率进行挖矿,导致受害者卡顿。但当受害者关闭该页面时,浏览器停止挖矿操作。

1.2 跨站脚本挖矿

跨站脚本攻击(Cross-Site Scripting,XSS)是近年来出现频率最高的漏洞之一,跨站脚本攻击具有攻击范围广泛、跨平台、破坏力强等特性受到攻击者重视。根据XSS攻击的攻击方式以及利用手法不同,将跨站脚本分为三类:反射型XSS、存储型XSS、DOM型XSS。由于挖矿攻击需要受害者在加载页面后执行攻击者的恶意脚本,因此攻击者通常利用存储型XSS漏洞向正常页面注入挖矿脚本。存储型XSS通常出现在用户与服务器交互的接口,如留言板、个性签名、发帖处等。攻击者在这些接口处通过已存的漏洞注入恶意脚本,恶意脚本会存入服务器中,当其他用户或管理员浏览该信息时,浏览器将会直接从服务端读取攻击者构造的恶意脚本,在不知情的情况下,受害者浏览器会自动加载攻击者注入的代码并进行挖矿操作。

1.3 钓鱼页面挖矿

网络钓鱼是一种以社会工程学为基础的攻击手段,大多数通过电子邮件、即时通讯工具、网页虚假宣传进行传播,最终意图是引导用户点击并访问钓鱼网站。传统的钓鱼网站是为了欺骗用户登录完全模仿真实网站的虚假网站,从而获取用户的敏感信息(如账号、密码、手机验证码等)。而钓鱼页面挖矿则危害更加直接,攻击者只需要诱导用户访问钓鱼页面,之后攻击者通过代码隐藏钓鱼页面,此时在钓鱼页面中执行了挖矿脚本。而由于攻击者隐藏了钓鱼页面,导致用户无法正常关闭该页面,挖矿脚本将持续运行,导致受害者CPU占用率增高。

2 网页挖矿防御策略

2.1 跨域访问限制

以同源策略为基础,不允许用户访问非当前域下的外联javascript脚本,不允许用户打开非当前域下的网站。但仅仅通过此方法,会影响到用户正常浏览网站时的用户体验,如非恶意的广告联盟所推送的广告无法显示,有些网站本身引用了非本域的javascript以及css脚本,此时会导致用户浏览器所解析的页面出现错误。

2.2 CSP

CSP(Content-Security-Policy,内容安全策略)规范了网页中某个标签所能加载的第三方域,从协议层对存在安全隐患的非信任数据进行过滤,其核心思想是同源策略,同时限制内联脚本的执行,以此来防御跨站脚本攻击。CSP运用了白名单策略,用来判定输入内容是否存在于白名单中。CSP在默认配置下限制内联代码(