“挖矿”的原理
虚拟货币“挖矿”是利用计算机的设备资源(如算力、带宽、硬盘存储等)去解决复杂数学运算的一个过程,从而产生基于区块链技术的去中心化虚拟货币的行为,产生的虚拟货币以比特币和以太坊为主。
例如,比特币通过工作量证明来实现区块链不同节点之间达成共识,确保分布式节点上的账本相同。
工作量证明是指利用CPU或GPU的算力来解决复杂的数学运算问题,当算出某一个特定答案时则会产生新的区块,算出该区块的用户获得一定量的比特币作为奖励,这个过程就是“挖矿”。用来“挖矿”的机器被称为“矿机”,操作“矿机”的人被称为“矿工”。
为了确保尽可能快地计算出问题答案,从而获取虚拟货币奖励,参与“挖矿”的“矿工”们需要投入尽可能多的算力资源,因此获取控制尽可能多的“矿机”成为增加“挖矿”收益的一个主要手段。
“挖矿”的危害
“挖矿”活动需要通过专用“矿机”计算,产生的能源消耗和碳排放量大,对产业发展、科技进步不具有积极的带动作用,会导致学校电力资源的大量耗费,还可能被增加惩罚性电价。
以“挖矿”产生的虚拟货币促使了网络黑产快速升级,变相滋生了各种网络犯罪,如勒索病毒往往都和虚拟货币关联在一起,时刻威胁着校园网络环境。
参与“挖矿”的设备,因其设备资源如CPU、GPU、存储等长期处于高负荷运转状态,会加速其老化,减少其使用年限,给学校带来严重的经济损失和安全威胁。
“挖矿”的方式
常见“挖矿”的方式主要分为基于程序的“挖矿”方式和基于网站脚本的“挖矿”方式这两大类。
基于程序的“挖矿”方式是“挖矿”者通过上传“挖矿”木马程序,然后通过设置计划任务或者修改系统文件权限等方式,实现“挖矿”木马程序的持久化运行。
基于网站脚本的方式是通过JavaScript等编写的“挖矿”脚本在浏览器中执行,通过在网站中嵌入含有“挖矿”代码的脚本,当浏览器访问带有“挖矿”脚本的网站时,浏览器将解析并执行“挖矿”脚本(如Coinhive、JSEcoin等),在后台进行“挖矿”。这种方式比传统的基于程序的“挖矿”方式更加隐蔽,难以被发现。
内部人员私自利用学校公共资源“挖矿”。
黑客通过漏洞利用、暴力破解口令等方式入侵主机,获得主机控制权使主机失陷,植入“挖矿”程序进行“挖矿”。
黑客利用部分校园网用户安全意识淡薄的特点传播病毒,比如钓鱼欺诈、恶意链接、伪装成普通文件等手段,让用户毫不知情的情况下进行“挖矿”。
“挖矿”的检测
目前针对“挖矿”活动的检测技术可以分为三大类:基于黑名单的检测技术、基于恶意行为的检测技术以及基于机器学习的检测技术。
基于黑名单的检测技术通过收集的一份针对“矿池”和有关网站的域名和IP清单来实现。
“矿池”是采用将少量算力合并联合运作方式建立起来的网站,是矿工在网络上共享其处理能力的资源池。
“矿机”在“挖矿”过程中需要与“矿池”进行通讯,“挖矿”木马与“矿池”通讯通常采用域名或IP的形式进行控制和传播,当检测到服务器访问黑名单中的内容时,则判定为存在“挖矿”活动。
基于恶意行为的检测技术是通过专家系统分析“挖矿”软件或脚本运行时的行为,如函数调用的周期性、程序运行的线程数等,并通过与正常的操作行为进行比较,找出“挖矿”脚本特有的行为。
基于机器学习的检测技术则是利用机器学习算法自动识别出“挖矿”活动的特征,省去了人工寻找特征的过程,但需要进行大量的学习和训练。
在校园网对“挖矿”活动检测时,后两种技术离实际落地尚有一段距离,仅依靠黑名单技术又无法对“挖矿”活动进行充分识别。
校园网环境具有开放性、复杂性的特点,部署单一的安全设备无法做到对“挖矿”活动的精确识别和及时处理。
在深圳大学校园网中,我们利用已构建的网络安全运营中心,综合结合态势感知、应用流量识别和分析、资产测绘等设备,对“挖矿”活动进行识别,下面对实现的关键技术进行介绍。
威胁情报是黑名单技术的应用,来实现对网络中“挖矿”活动的检测,相关安全厂商态势感知平台提供的威胁情报中有相对丰富的“矿池”域名和IP地址及端口等信息。
通过校内应用流量识别等设备,结合威胁情报提供的数据对域名、解析地址、访问端口、DNS等进行关联拓展分析,可以快速定位存在“挖矿”活动的设备,还可进一步通过域名服务器、防火墙等设备对“挖矿”活动进行阻断,如图1所示。
“矿机”与“矿池”之间会采用特定的协议通信,如最为常见的stratum协议,该协议采用JSON格式来传输数据,在“挖矿”期间的不同阶段,如登录、下发任务、提交结果等的行为会有不同的特征字段。
有时候“挖矿”者可能会隐藏“矿机”在网络中的特征,通过用多个功能不同的控制服务器,分别负责“挖矿”木马的更新、僵尸程序的更新以及远控木马的下发,比如写入一些自检的执行代码,以保证僵尸程序被杀后还能从控制端下载新的僵尸程序,使用代理网关的方式隐藏“矿机”的真实IP。
通过流量采集探针、防火墙等设备采集校园网出口和数据中心流量,针对“矿机”需要和“矿池”通信并进行数据传输特征、回连采用的常用端口,根据协议和特征字段可检测出其中的“挖矿”流量,再进一步根据IP和MAC地址溯源定位到具体的设备,如图2所示。
此外,应用流量识别设备可提供网络流量的精准应用识别能力,针对“挖矿”协议直接识别和记录,从而快速发现“挖矿”活动。
有些“挖矿”木马为了避免重复感染目标“矿机”,会标记某些对方开放的端口,一旦木马探测到这些标记端口,“挖矿”木马会检测端口是否存活,对存活的目标端口不再进行感染。
资产测绘设备在主动型检测“挖矿”木马时,可利用“挖矿”木马特性,通过“存活”端口快速定位潜在“挖矿”的威胁资产,如图3所示。
在校园网“挖矿”活动检测中,通过网络安全运营中心提供的态势感知平台,基于威胁情报,应用识别、资产测绘等技术对主流“挖矿”木马行为进行分析判断,快速识别发现校园网中存在的“挖矿”设备。
“挖矿”的处置
在学校的网络出口、骨干网、数据中心等区域部署防火墙、流量控制、上网行为管理等设备阻断“矿机”到“矿池”的通讯,也可以在域名服务器上拦截到“矿池”相关域名的解析等,阻断“矿机”的“挖矿”活动。
在终端或云平台上集中部署安全防护软件,定期下发查杀策略,监控终端层面硬件资源占用率、系统状态、系统进程、应用程序等,通过终端安全防护软件对主机进行全面的安全检测,结合网络安全运营中心的分析、溯源能力,能够从根源上对存在“挖矿”活动的主机进行处置。
在安全运营中心发现可疑“挖矿”活动后,可进一步启动运营流程机制,对疑似“挖矿”主机进行人工检查分析,一旦判定主机被植入了“挖矿”程序,需要彻底清除“挖矿”程序并修复安全漏洞,避免主机被再次植入恶意程序。
“挖矿”的防范
加强校园网用户的安全意识,对来源位置不明的网站和设备要保持警惕的态度,避免访问带有恶意“挖矿”程序的文件、网站和未知的移动存储介质,同时安装必要的终端杀毒和安全防护软件。
对校内在网的设备资产以及设备上运行的服务、开放的端口进行清点,关闭不必要的开放端口,避免可能存在的风险暴露。及时更新运行在设备上的系统和服务应用,修复存在的漏洞,同时做好相关服务的安全配置,对服务器使用高强度密码策略,避免账号弱口令问题。
以最小权限的原则完善对内网用户的权限分配,避免不必要的高级权限分配,做好重要数据的备份,最大限度保护系统安全和数据安全。
我校基于校内网络安全运营中心,结合威胁情报、应用流量识别和分析、资产测绘等安全能力,通过技术平台与自动化流程机制,对“挖矿”活动进行综合治理。
一旦发现疑似“挖矿”安全问题,会第一时间进行研判验证,并迅速确定后续处置计划,实现了发现、研判、通报到最终处置的全流程闭环工作,可供各高校在整治“挖矿”活动中参考。