近年来,随着虚拟货币价格的一路攀升,利用计算机资源“挖矿”的行为逐渐盛行,挖矿木马呈明显增长的趋势。在巨大利益的驱使下,为了得到更多的算力资源,黑客往往对全网进行无差别扫描,同时利用多种爆破和漏洞等手段攻击主机。在主机被成功入侵之后,挖矿木马还会向内网渗透,并在被入侵的服务器上持久驻留以获取最大收益。
那么,有没有什么办法,可以有效识别挖矿木马?不久前,腾讯安全科恩实验室高级安全研究员唐祺壹,以“BinaryAI: 用AI方法识别挖矿木马”为主题,从挖矿木马的发展趋势与威胁、BinaryAI的原理与机制以及BinaryAI如何识别挖矿木马等维度出发,为各行业用户提供基于AI技术的挖矿木马识别解决方案。
挖矿木马发展迅速
传统识别方法各有不足
自2008年中本聪提出数字货币概念并开发出比特币的算法之后,“挖矿”逐渐流行。但挖矿本会占用CPU或者GPU进行超频计算,耗时也耗电。为了得到更多的算力资源,黑客团伙对全网主机计算资源进行争夺,导致过去一年挖矿木马增长趋势明显。据腾讯云统计,在公有云攻击事件中,以挖矿为目的的入侵行为占比54.9%。
(挖矿木马攻击流程)
然而,唐祺壹指出,传统的挖矿木马检测识别方法,如静态检测、动态检测、云计算本身的资源检测等,均存在各自的缺陷。
一、静态检测。最常用的是基于文件hash的云查杀,通过已收录的木马库进行比对,判断文件是否属于挖矿木马;或利用字符串等常量特征,设计识别规则。静态检测方法计算复杂度相对较低,实现简单,但漏报率非常高,很容易对抗。
二、动态检测。主要检测矿池连接产生的网络相关行为。动态检测方法误报率比较低,但是容易漏报,且动态检测延迟比较高,缺乏实时性。
三、云计算资源检测。检测CPU和GPU的计算资源占用,并不是专门用作挖矿木马识别,产生告警之后,需要用户自己确认告警是否正常。
基于BinaryAI的
表示模型和挖矿木马识别方案
BinaryAI算法可以说是一种静态检测的方案,相较于传统方案,主要解决了漏报率过高的问题。
BinaryAI是利用深度学习算法,将函数表示成可以代表其语义的高维向量的技术。简单来说,BinaryAI技术就是把一个函数转换成一个向量,两个函数的语义相近或者一致的话,所对应的向量距离也很近。
据唐祺壹介绍,BinaryAI具有目前业界最大最全的训练数据、SOTA的神经网络模型、业界领先的函数相似度检索结果,并成功被应用到包括恶意软件识别、软件组成成分分析、漏洞挖掘等的多个安全业务场景。
(BinaryAI: 函数语义向量化表示模型)
函数语义向量化表示模型
最大最全的训练数据:数据一定程度上决定了算法所能够达到的上限。通过上百万不同语义的二进制函数,且每个二进制函数都是由一份源码在多个不同的编译器、编译优化等级、CPU架构等组合下编译。以尽可能从丰富的数据当中学习如何正确的表示一个函数的语义。
SOTA的神经网络模型:运用孪生神经网络和度量学习方法,通过HBMP模型,将每个节点转换成向量,运用图神经网络,更新每个节点的向量,用Graph Pooling的方法,把所有的节点的向量汇聚成一个高维向量;同时用立即数、字符串等常量信息,把Global Feature也转换成一个向量。最后把两个向量进行拼接,得到的最后一个向量,便足以表达这个函数的语义。
(SOTA的神经网络架构)
业界领先的函数相似度检索结果:根据腾讯安全试验测试结果,在一万个不同语义的函数当中,召回正确的正确率是91.1%。思科的研究团队进行的测试,最后的数据也大幅领先其他算法和产品。基于BinaryAI算法开发的SDK,这个IDA的插件在CTF圈也得到好评。
BinaryAI 的挖矿木马识别方案
在挖矿木马识别整个流程中,基于BinaryAI算法识别挖矿木马,首先会收集主流挖矿组件的各个函数,构建挖矿组件函数库。把每一个输入进来的待检测的样本拆成函数粒度,与函数库进行匹配,并计算出语义相似度。当相似度满足设定的阈值之后,即匹配成功。根据匹配的比例,判定是否为挖矿木马。
其次,BinaryAI算法将加密函数和矿池连接函数分别放在不同的集合当中。因为挖矿木马可能只使用某个挖矿组件的密码学运算或矿池连接方式,且可能存在多个文件,不同文件可能只包含部分功能,仅识别加密算法或矿池连接容易漏报。
最后,挖矿组件的函数包含部分噪声,这些函数本身跟挖矿也并非强相关,对挖矿木马识别没有帮助,需要自动化的清理方案,以及人工精筛。先是自动化粗略清洗,直接对函数名,函数body大小等过滤规则,进行初筛。然后对挖矿特征组件对每个函数评估其匹配上真实挖矿样本的频率,将频率过高的函数从函数库中删除。清洗之后,结合badcase分析和专家经验,进一步调整特征函数库的组成。最终得到一个相对质量比较高的函数库,用于进行挖矿木马的识别。
(基于BinaryAI算法的挖矿木马识别)
据唐祺壹介绍,在包含3000份挖矿木马,12000份正常软件,共计15000份来自真实场景的人工标注的软件样本测试中,BinaryAI算法对挖矿木马的召回率达到96%,同时正常软件误报率低于1%。
在科恩实验室与腾讯安全威胁情报产品团队的通力合作下,基于BinaryAI的挖矿木马识别方法将作为威胁情报的核心能力,为威胁情报的生产和运营提供技术支撑,作为腾讯云和腾讯安全的基础安全能力之一,将为云上、云下客户提供持续有效的安全保障。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。