CN108829829A - 检测虚拟货币挖矿程序的方法、系统、装置及存储介质 - Google Patents

检测虚拟货币挖矿程序的方法、系统、装置及存储介质 Download PDF

Info

Publication number
CN108829829A
CN108829829A CN201810622086.XA CN201810622086A CN108829829A CN 108829829 A CN108829829 A CN 108829829A CN 201810622086 A CN201810622086 A CN 201810622086A CN 108829829 A CN108829829 A CN 108829829A
Authority
CN
China
Prior art keywords
mine
program
digging
memory
trail
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201810622086.XA
Other languages
English (en)
Inventor
欧和
邹荣新
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sangfor Technologies Co Ltd
Original Assignee
Sangfor Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sangfor Technologies Co Ltd filed Critical Sangfor Technologies Co Ltd
Priority to CN201810622086.XA priority Critical patent/CN108829829A/zh
Publication of CN108829829A publication Critical patent/CN108829829A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash

Landscapes

  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

本申请公开了一种检测虚拟货币挖矿程序的方法,首先从真实挖矿程序中采集得到存在的各种挖矿识别特征,接着获取当前运行在被测主机内存中的内存字符串,最终通过比较内存字符串中是否包含任一挖矿识别特征来相应做出是否运行有挖矿程序的结论。该方法利用挖矿程序运行时一定会出现在内存中的特点,结合从真实挖矿进程中采集得到的多种识别特征对内存字符串进行全方位检测,使得检测无法被轻易绕过,检测成功率更高、误判率更低。本申请还同时公开了一种检测虚拟货币挖矿程序的系统、装置及计算机可读存储介质,具有上述有益效果。

Description

检测虚拟货币挖矿程序的方法、系统、装置及存储介质
技术领域
本申请涉及虚拟货币挖矿技术领域,特别涉及一种检测虚拟货币挖矿程序的方法、系统、装置及计算机可读存储介质。
背景技术
自08年经济危机开始,一种虚拟货币,比特币开始进入大众的视野,比特币不依靠特定货币机构发行,它依据特定算法通过大量的计算产生,比特币经济使用整个P2P网络中众多节点构成的分布式数据库来确认并记录所有的交易行为,并使用密码学的设计来确保货币流通各个环节安全性。比特币与其他虚拟货币最大的不同,是其总数量非常有限,具有极强的稀缺性,它总数量将被永久限制在2100万个。而稀缺性特点为比特币带来的是居高不下的市值,一个比特币曾最多价值2万美元。
由于比特币基于特定算法通过大量的计算产生,而通过大量的计算寻找到比特币网络某一时刻所需要的特解就是比特币的挖矿制度,谁第一个提供了这个所需的特解,比特币网络就会向其支付一定数量的比特币作为报酬。由于每个拥有计算能力的主机都可充当比特币的矿机,因此在比特币高昂价格的驱使下,不少黑客开始向被控制的主机中置入挖矿程序,以期利用他人主机的计算资源为自已牟利。
由于PC的计算性能有限,不少黑客瞄上了拥有强大计算能力的工作站、内网主机甚至是大型服务器,一旦被植入挖矿程序,挖矿程序就会占用巨大的CPU、GPU资源来执行挖矿操作,不仅会使得主机卡顿、CPU占用率过高,甚至造成主机宕机或瘫痪,给主机拥有者带来巨大的经济损失。
现有检测目标主机是否存在被挖矿现象的方式大多基于静态文件扫描的方式,此种方式主要通过杀毒引擎对静态的文件做全盘扫描,不仅耗时长,而且查杀成功率较低,类型多变的非文件型挖矿或突破杀毒引擎扫描文件大小阈值的超大型挖矿可以轻松绕过查杀,实际使用效果不太理想。
因此,如何克服现有的被挖矿检测方法存在的各项技术缺陷,提供一种结合多特征去判断目标主机中是否存在挖矿程序,防止绕过检测和提升检测成功率、拥有更佳的虚拟货币挖矿程序检测机制是本领域技术人员亟待解决的问题。
发明内容
本申请的主要目的是提供一种检测虚拟货币挖矿程序的方法,该方法利用挖矿程序运行时一定会出现在内存中的特点,结合从真实挖矿进程中采集得到的多种识别特征对内存字符串进行全方位检测,使得检测无法被轻易绕过,检测成功率更高、误判率更低。
本申请的另一目的在于提供了一种检测虚拟货币挖矿程序的系统、装置及计算机可读存储介质。
为实现上述目的,本申请提供一种检测虚拟货币挖矿程序的方法,包括:
获取真实挖矿程序运行时存在的识别特征,得到特征字符串集;
获取被测主机内存中的所有字符串,得到内存字符串集;
判断所述内存字符串集与所述特征字符串集中是否存在相同的字符串;
若存在,则判定所述被测主机中运行有虚拟货币挖矿程序。
可选的,获取真实挖矿程序运行时存在的识别特征,得到特征字符串集,包括:
从挖矿进程中采集与矿池通信时使用的矿池域名,得到矿池域名集;
从所述挖矿进程中采集用户个人的钱包地址,并统计各所述钱包地址的长度,得到地址位数集;
从所述挖矿进程中采集挖矿算法的函数名,得到挖矿算法集;
从所述挖矿进程中采集传输信息时使用的通信协议,得到通信协议集;
选取所述矿池域名集、所述地址位数集、所述挖矿算法集以及所述通信协议集中的至少一种,汇总得到所述特征字符串集;
其中,所述挖矿进程为所述真实挖矿程序运行时创建得到。
可选的,当所述特征字符串集由所述矿池域名集和所述地址位数集汇总得到时,判断所述内存字符串集与所述特征字符串集中是否存在相同的字符串,包括:
判断所述内存字符串集与所述矿池域名集中是否存在相同的字符串;
若所述内存字符串集与所述矿池域名集中不存在相同的字符串,则判断所述内存字符串集与所述地址位数集中是否存在相同的字符串。
可选的,在从所述挖矿进程中采集传输信息时使用的通信协议之后、得到协议特征集之前,还包括:
从采集到的所有通信协议中删去正常程序传输信息所使用的通信协议,得到独有通信协议,以基于各所述独有通信协议得到所述协议特征集;其中,所述正常程序为位于程序白名单中的程序。
可选的,在判定所述被测主机中运行有虚拟货币挖矿程序之后,还包括:
确定相同的字符串在所述内存字符串集中的位置,并根据所述位置确定相应的挖矿进程名;
通过预设路径上报虚拟货币挖矿警报信息;其中,所述虚拟货币挖矿警告信息中包括所述挖矿进程名。
可选的,该方法还包括:
按周期将新采集到的识别特征串更新进所述特征字符串集。
为实现上述目的,本申请还提供了一种检测虚拟货币挖矿程序的系统,该系统包括:
特征字符串集获得单元,用于获取真实挖矿程序运行时存在的识别特征,得到特征字符串集;
内存字符串获取单元,用于获取被测主机内存中的所有字符串,得到内存字符串集;
相同字符串判断单元,用于判断所述内存字符串集与所述特征字符串集中是否存在相同的字符串;
挖矿程序判定单元,用于当所述内存字符串集与所述特征字符串集中存在相同的字符串时,判定所述被测主机中运行有虚拟货币挖矿程序。
可选的,所述特征字符串集获得单元包括:
矿池域名集获得子单元,用于从挖矿进程中采集与矿池通信时使用的矿池域名,得到矿池域名集;
地址位数集获得子单元,用于从所述挖矿进程中采集用户个人的钱包地址,并统计各所述钱包地址的长度,得到地址位数集;
挖矿算法集获得子单元,用于从所述挖矿进程中采集挖矿算法的函数名,得到挖矿算法集;
通信协议集获得子单元,用于从所述挖矿进程中采集传输信息时使用的通信协议,得到通信协议集;
汇总子单元,用于选取所述矿池域名集、所述地址位数集、所述挖矿算法集以及所述通信协议集中的至少一种,汇总得到所述特征字符串集;
其中,所述挖矿进程为所述真实挖矿程序运行时创建得到。
可选的,当所述特征字符串集由所述矿池域名集和所述地址位数集汇总得到时,所述相同字符串判断单元包括:
矿池域名集判断子单元,用于判断所述内存字符串集与所述矿池域名集中是否存在相同的字符串;
地址位数集判断子单元,用于当所述内存字符串集与所述矿池域名集中不存在相同的字符串时,所述内存字符串集与所述地址位数集中是否存在相同的字符串。
可选的,该系统还包括:
独有通信协议获得子单元,用于从采集到的所有通信协议中删去正常程序传输信息所使用的通信协议,得到独有通信协议,以基于各所述独有通信协议得到所述协议特征集;其中,所述正常程序为位于程序白名单中的程序。
可选的,该系统还包括:
定位及进程名确定单元,用于确定相同的字符串在所述内存字符串集中的位置,并根据所述位置确定相应的挖矿进程名;
警报信息上报单元,用于通过预设路径上报虚拟货币挖矿警报信息;其中,所述虚拟货币挖矿警告信息中包括所述挖矿进程名。
可选的,该系统还包括:
定期更新单元,用于按周期将新采集到的识别特征串更新进所述特征字符串集。
为实现上述目的,本申请还提供了一种检测虚拟货币挖矿程序的装置,该装置包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述内容所描述的检测虚拟货币挖矿程序的方法的步骤。
为实现上述目的,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述内容所描述的检测虚拟货币挖矿程序的方法的步骤。
显然,本申请所提供的检测虚拟货币挖矿程序的方法,首先从真实挖矿程序中采集得到存在的各种挖矿识别特征,接着获取当前运行在被测主机内存中的内存字符串,最终通过比较内存字符串中是否包含任一挖矿识别特征来相应做出是否运行有挖矿程序的结论。该方法利用挖矿程序运行时一定会出现在内存中的特点,结合从真实挖矿进程中采集得到的多种识别特征对内存字符串进行全方位检测,使得检测无法被轻易绕过,检测成功率更高、误判率更低。本申请同时还提供了一种检测虚拟货币挖矿程序的系统、装置及计算机可读存储介质,具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种检测虚拟货币挖矿程序的方法的流程图;
图2为本申请实施例提供的另一种检测虚拟货币挖矿程序的方法的流程图;
图3为本申请实施例提供的一种检测虚拟货币挖矿程序的系统的结构框图。
具体实施方式
本申请的核心是提供一种检测虚拟货币挖矿程序的方法、系统、装置及计算机可读存储介质,首先从真实挖矿程序中采集得到存在的各种挖矿识别特征,接着获取当前运行在被测主机内存中的内存字符串,最终通过比较内存字符串中是否包含任一挖矿识别特征来相应做出是否运行有挖矿程序的结论。该方法利用挖矿程序运行时一定会出现在内存中的特点,结合从真实挖矿进程中采集得到的多种识别特征对内存字符串进行全方位检测,使得检测无法被轻易绕过,检测成功率更高、误判率更低。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在此对挖矿的由来的概念进行解释,以便后续步骤的理解:
简单的来说,指的是虚拟货币网络为奖励某个用户成功记录一个时间段内所有其它用户的交易记录所支付一定奖励金的过程,所有用户都可以去试图记录这些交易记录,但同一时段内只会奖给一个用户,之所以要给该用户奖励金,是因为要使所有用户都承认你拥有成功记录这些交易记录的资格,虚拟货币网络下发了找寻符合一些特殊要求的特解的任务,找寻该特解的过程通常只能依靠用户设备的计算性能不断去尝试随机生成的解是否符合对特解的要求,因此用户设备需要一次次去生成随机数并看此次生成的随机数是否符合虚拟货币网络对特解的要求,就好像在大海中找寻一滴特殊的海水、在矿山中找寻一块特殊的矿石,因此广大用户就将这一过程形象的称为挖矿,挖到的矿可以理解为那个特解,也可以理解为找到特解后收到的奖励金。
实施例一
以下结合图1,图1为本申请实施例提供的一种检测虚拟货币挖矿程序的方法的流程图,其具体包括以下步骤:
S101:获取真实挖矿程序运行时存在的识别特征串,得到特征字符串集;
真实挖矿程序运行时会在运行设备的内存中创建对应的挖矿进程,这些挖矿进程根据程序的设计会开始占用运行设备的资源执行挖矿操作,由于执行挖矿操作时需要使用特定的挖矿算法来生成随机数、需要作为组成矿池庞大计算力的一份子获取较为稳定的收益、需要将个人所得虚拟货币保存至自己的钱包中进行存储、需要记录和同步其它节点的交易记录等等,因此可根据挖矿程序会执行的操作采集得到相应的识别特征串,并在经过一段时间或采集到识别特征串达到一定数量之后,建立特征字符串集。需要说明的是,该识别特征串用于代表运行有虚拟货币挖矿程序,即当检测到存在任一识别特征串时,可认为被测主机中一定运行有虚拟货币挖矿程序。
具体的,能够表征运行有虚拟货币挖矿程序的识别特征有很多种,包括上面描述的矿池域名、调用的挖矿算法的函数名、进行信息传输时使用的通信协议、存储用户个人所得虚拟货币的钱包的地址等等,除这些单独存在就能够表征运行有虚拟货币挖矿程序的识别特征外,还存在有一些根据运行挖矿程序时对运行设备造成的影响存在的辅助判别特征。
例如,CPU占用率、GPU占用率、内存占用率、占用带宽数、网页访问延迟等等,因为寻求特解的过程十分耗费计算资源,会占用大量CPU资源、 GPU资源和内存资源,在进行信息记录和同步时也会长时占用一定数量的带宽,而网页访问延迟则是设备使用者的一个直观感受,因为大多数资源被挖矿程序占用,导致用户的正常操作反而只能使用很少的资源去完成。这些辅助资源通常需要结合上述提及的几种识别特征一并使用,无法仅根据这些参数得到准确的判断。
进一步的,考虑到自行收集一定数量的识别特征的难度、耗费成本和时间,除自行从真实挖矿程序中收集外,也可以直接从权威的、具有公信力的来源处获取,并加入特征字符串集以提高检测成功率。
S102:获取被测主机内存中的所有字符串,得到内存字符串集;
本步骤旨在获取运行在被测主机中内存的所有字符串,以得到内存字符串集。运行在内存中的数据说明生成这部分数据的进程已经运行在内存中,创建该进程的程序已经启动并正在运行,因此只需拿S101中获得的特征字符串集中包含的字符串去匹配本步骤获得的内存字符串集中包含的字符串即可,若存在相同的字符串则可以说明被测主机中运行有挖矿程序。
S103:判断内存字符串集与特征字符串集中是否存在相同的字符串;
在S101和S102的基础上,本步骤旨在判断均包含多个字符串的内存字符串集与特征字符串集中是否存在相同的部分,即判断两集合是否存在重叠的部分,换句话说,可以看两集合是否存在交集,存在交集则说明存在相同的字符串。
具体的,在S101中给出了可能构成该特征字符串集的多种可能,以提及的四种特征为例:矿池域名、挖矿算法、通信协议、钱包地址位数,这四种分别可单独形成由各种矿池域名组成的矿池域名集、由各挖矿算法组成的挖矿算法集、由传输信息时使用的各通信协议组成的通信协议集以及由不同币种分别对应的钱包地址的长度组成的地址位数集,仅基于这四种不同类型的识别特征集,存在多种形成特征字符串集的方式。
例如,可以从这四种识别特征集中续选出至少一种来形成该特征字符串集,当仅用一种识别特征集时,存在4种备选方式;当使用其中两种时,存在 6种备选方式;当使用其中三种时,存在2种备选方式;当四种全用时,仅存在1种选择方式。在此基础上,当由不少于两种识别特征集组成该特征字符串集时,可以选择简单的将两种识别特征集中各自包含的识别特征字符串进行合并,即使用组成的混合大集合与内存字符串集去判断是否存在相同的字符串,此种方式随包含多种识别特征集,但最终形成了一个混合大集合,抹除了原有按种类的不同进行分类的界限,需要一一与内存字符串进行匹配;当然,也可以选择以保留各种识别特征小集合的方式组成该特征字符串集,即该特征字符串集中又可以拆分为两种、三种或四种识别特征集,此种方式的便利性在于在与内存字符串集判断是否存在相同的字符串时,依然可以以各种类识别特征集为小单元按顺序依次进行匹配,即存在先使用第一种识别特征集去与内存字符串集判断是否存在相同的字符串,若仅第一种识别特征集就找到了相同的字符串,在得到希望的判断结果后,是否还是用其它种类的识别特征集再进行判断就可以根据实际情况灵活选择。
S104:判定被测主机中运行有虚拟货币挖矿程序;
本步骤建立在S103的判断结果为内存字符串集与特征字符串集中存在相同的字符串的基础上,因此可根据S102中的判断分析内容判定被测主机中运行有虚拟货币挖矿程序,即被测主机已经处于被虚拟货币挖矿的状态下。
S105:判定被测主机中未运行有虚拟货币挖矿程序。
本步骤建立在S103的判断结果为内存字符串集与特征字符串集中不存在相同的字符串的基础上,因此可根据S102中的判断分析内容判定被测主机中未运行有虚拟货币挖矿程序,即未发现相同的字符串。
进一步的,在发现被测主机中运行有虚拟货币挖矿程序后,还可以根据要求向相应的管理人员或按其它预设路径发送警报信息,以提醒被测主机的用户及时去除挖矿程序,以保证被测主机的安全、稳定运行。更进一步的,为便于用户根据对应的挖矿进程快速确定对应的挖矿程序,还可以结合经匹配得到的相同字符串所处内存字符串集中的位置定位相应的挖矿进程名,并返回包含挖矿进程名的警告信息。
同时,为保证检测质量,还可以不断的向各类识别特征集中添加新发现的识别特征。
基于上述技术方案,本申请实施例提供的一种检测虚拟货币挖矿程序的方法,首先从真实挖矿程序中采集得到存在的各种挖矿识别特征,接着获取当前运行在被测主机内存中的内存字符串,最终通过比较内存字符串中是否包含任一挖矿识别特征来相应做出是否运行有挖矿程序的结论。该方法利用挖矿程序运行时一定会出现在内存中的特点,结合从真实挖矿进程中采集得到的多种识别特征对内存字符串进行全方位检测,使得检测无法被轻易绕过,检测成功率更高、误判率更低。
实施例二
以下结合图2,图2为本申请实施例提供的另一种检测虚拟货币挖矿程序的方法的流程图,具体步骤如下:
S201:从挖矿进程中采集与矿池通信时使用的矿池域名,得到矿池域名集;
在挖矿过程中,同时耗费计算力去寻求特解的节点会有很多,意图获取价值高昂的虚拟货币奖励金,但只会有一个节点被承认,其它节点则白白浪费的付出的计算力,再小的收益也获取不到,十分不稳定。因此出现了由多个挖矿矿机组成的矿池,通过计算力组合的方式组建一个拥有庞大计算力的矿池,因为越强大的计算力代表其寻求特解的能力就越强,获取收益约多、越稳定,而组成矿池的每个矿机则根据其为矿池贡献的计算力的多少进行收益分成,此方式使得很多小节点的计算力被充分利用,小节点也能够享受自己付出计算力所带来的收益,因此此种方式一经推出,很快成为了主流。因此,挖矿程序运行后就会视图加入某个矿池,作为组成矿池的一个节点来获取与自己付出的计算力成正比的收益。大多情况下每个矿池都有自己的域名以供用户建立与自己的通信连接。
常见的矿池域名如下:nanopool.org、minergate.com、以及crypto-pool.fr 是几个通用矿池的域名,moneropool.com、xmrpool.net、xmrig.com、 mine.ppxxmr.com则是门罗币的几个不同矿池。
S202:从挖矿进程中采集用户个人的钱包地址,并统计各钱包地址的长度,得到地址位数集;
各虚拟货币网络根据种类的不同大多都会为加入自己网络的用户生成专属的个人钱包,每个用户的个人钱包用户存储其拥有的虚拟货币数量和交易记录,为区别于其它种类的虚拟货币,每种虚拟货币的个人钱包地址都不相同,是因为都使用了不同的加密编码方式基于用户的个人信息来生成,就好像登陆某网站时使用的账号密码(现今账号密码在后台实际匹配时为保护用户隐私早已不直接使用明文),其加密编码后得到的字符串通常由字母和数字组成且毫无规律,因此很难基于字符串内容本身推导出其是否属于挖矿程序,而经研究发现,使用加密编码虽导致其产生的字符串内容本身无规律,但使用不同的加密编码方式往往会使得到的无规律字符串在长度上存在某些规律,即同种虚拟货币下对应的个人钱包地址位数固定。例如,比特币的个人钱包地址位数均为34个字符,门罗币的则均为95个字符。
例如,A虚拟货币网络使用T1加密编码方式加密了所有用户在加入A虚拟货币网络时填写的位数必须为10的个人信息,最终得到了位数均为35但均不相同的个人钱包地址;B虚拟货币网络使用T2加密编码方式加密了所有用户加入B虚拟货币网络时填写的位数必须为10的个人信息,最终得到了位数均为53 但不相同的个人钱包地址。因此,虽然字符串均为规律可循,但可根据大量前期采集获得这一位数特征。当然,之所以会出现这种情况,也是因为出于统一的原则,不同种类的虚拟货币网络可以不限制填写的个人信息的位数,但一定拥有位数上限,实际操作中,由于各虚拟货币网络中对个人信息位数填写上限的设定、加密编码方式、最终个人钱包地址处理方式均由创建者设定,实际情况下极少出现在不同虚拟货币网络中共通的情况,因此在无法基于字符串内容特征识别的情况下,基于个人钱包地址的位数特征进行识别也具有很高的实际操作可行性。
S203:从挖矿进程中采集挖矿算法的函数名,得到挖矿算法集;
本步骤从寻找特解时所调用挖矿算法的函数名入手,得到包括各挖矿算法函数名的挖矿算法集,常见调用的挖矿算法包括:cryptonight、cryptonight-lite 等。
S204:从挖矿进程中采集传输信息时使用的通信协议,得到通信协议集;
本步骤从与虚拟货币网络建立通信以进行信息的传输入手,得到包括各种通信协议的通信协议集,常见的挖矿通信协议有:stratum、getwork、 getblocktemplate等。
进一步的,考虑到被测主机正常时也需要与外部建立通信,因此为排除正常通信协议造成的干扰,还可以:从采集到的通信协议中删去正常程序传输信息所使用的通信协议,得到独有通信协议,以基于各独有通信协议得到协议特征集。其中,正常程序为位于程序白名单中的程序,即用户可手动将信任程序添加至白名单来排除正常通信协议可能造成的判断干扰。
需要说明的是,S201、S202、S203以及S204之间并不存在执行上的先后顺序,为并列的方案,此处只是为了方便表述将其按照步骤的顺序进行设置,在实际情况允许的情况下,完全可以采用并行的方式同时获取,也可以在硬件资源不足的情况下依次获取,此处并不做具体限定。
S205:选取矿池域名集、地址位数集、挖矿算法集以及通信协议集中的至少一种,汇总得到特征字符串集;
S206:判断内存字符串集与特征字符串集中是否存在相同的字符串;
当特征字符串集由矿池域名集和地址位数集汇总得到时,一种包括但不限于的判断方式具体为:
判断内存字符串集与矿池域名集中是否存在相同的字符串;
若内存字符串集与矿池域名集中不存在相同的字符串,则判断内存字符串集与地址位数集中是否存在相同的字符串。
即首先判断内存字符串集中是否存在与矿池域名集中包含的任一矿池域名相同的字符串,并在判断结果为不存在的基础上,接着判断内存字符串集中是否存在与地址位数特征集中包含的任一币种个人钱包地址位数相同的字符串。当由更多中识别特征集组成该特征字符串集时,也可以采用类似的方式依次进行判断。
S207:判定被测主机中运行有虚拟货币挖矿程序;
S208:判定被测主机中未运行有虚拟货币挖矿程序;
S209:确定相同的字符串在内存字符串集中的位置,并根据位置确定相应的挖矿进程名;
S210:通过预设路径上报虚拟货币挖矿警报信息;其中,虚拟货币挖矿警告信息中包括挖矿进程名;
本实施通过S209和S210提供了一种当存在相同的字符串的基础上确定相应挖矿进程名的方式,可快速定位相应的挖矿进程,并通过上报包含进程名的方式方便用户快速去除相应的挖矿程序。
S211:按周期将新采集到的识别特征串更新进特征字符串集。
本实施例在实施例一的基础上,S201至S205是针对S101给出的一种使用四种特征字符串形成特征字符串集的具体实现方式,S209和S210是建立在 S208的基础上给出的一种方便用户定位并去除虚拟货币挖矿程序的具体实现方式,S211则是考虑到多变的实际情况,给出一种不断补充新特征字符串至相应种类特征字符串集以保证检测效率的具体实现方式,这三部分均可以单独基于独立权利要求一对应的实施例一形成相应的具体实施例,也可以根据实际情景中所有可能存在的特殊要求将这三部分与实施例一的方案进行灵活组合,以得到不同的具体实施例,本实施例仅作为同时采用这三种具体实现方案并按照执行顺序依次排列的一个优选实施例存在。
因为情况复杂,无法一一列举进行阐述,本领域技术人员应能意识到根据本申请提供的基本方法原理结合实际情况可以存在很多的例子,在不付出足够的创造性劳动下,应均在本申请的保护范围内。
下面请参见图3,图3为本申请实施例提供的一种检测虚拟货币挖矿程序的系统的结构框图,该系统可以包括:
特征字符串集获得单元100,用于获取真实挖矿程序运行时存在的识别特征,得到特征字符串集;
内存字符串获取单元200,用于获取被测主机内存中的所有字符串,得到内存字符串集;
相同字符串判断单元300,用于判断内存字符串集与特征字符串集中是否存在相同的字符串;
挖矿程序判定单元400,用于当内存字符串集与特征字符串集中存在相同的字符串时,判定被测主机中运行有虚拟货币挖矿程序。
其中,特征字符串集获得单元100可以包括:
矿池域名集获得子单元,用于从挖矿进程中采集与矿池通信时使用的矿池域名,得到矿池域名集;
地址位数集获得子单元,用于从挖矿进程中采集用户个人的钱包地址,并统计各钱包地址的长度,得到地址位数集;
挖矿算法集获得子单元,用于从挖矿进程中采集挖矿算法的函数名,得到挖矿算法集;
通信协议集获得子单元,用于从挖矿进程中采集传输信息时使用的通信协议,得到通信协议集;
汇总子单元,用于选取矿池域名集、地址位数集、挖矿算法集以及通信协议集中的至少一种,汇总得到特征字符串集;
其中,挖矿进程为真实挖矿程序运行时创建得到。
其中,当特征字符串集由矿池域名集和地址位数集汇总得到时,相同字符串判断单元300可以包括:
矿池域名集判断子单元,用于判断内存字符串集与矿池域名集中是否存在相同的字符串;
地址位数集判断子单元,用于当内存字符串集与矿池域名集中不存在相同的字符串时,内存字符串集与地址位数集中是否存在相同的字符串。
进一步的,该系统还可以包括:
独有通信协议获得子单元,用于从采集到的所有通信协议中删去正常程序传输信息所使用的通信协议,得到独有通信协议,以基于各独有通信协议得到协议特征集;其中,正常程序为位于程序白名单中的程序;
定位及进程名确定单元,用于确定相同的字符串在内存字符串集中的位置,并根据位置确定相应的挖矿进程名;
警报信息上报单元,用于通过预设路径上报虚拟货币挖矿警报信息;其中,虚拟货币挖矿警报信息中包括挖矿进程名。
定期更新单元,用于按周期将新采集到的识别特征串更新进特征字符串集。
基于上述实施例,本申请还提供了一种检测虚拟货币挖矿程序的装置,该装置可以包括存储器和处理器,其中,该存储器中存有计算机程序,该处理器调用该存储器中的计算机程序时,可以实现上述实施例所提供的步骤。当然,该装置还可以包括各种必要的网络接口、电源以及其它零部件等。
本申请还提供了一种计算机可读存储介质,其上存有计算机程序,该计算机程序被执行终端或处理器执行时可以实现上述实施例所提供的步骤。该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random AccessMemory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。

Claims (14)

1.一种检测虚拟货币挖矿程序的方法,其特征在于,包括:
获取真实挖矿程序运行时存在的识别特征,得到特征字符串集;
获取被测主机内存中的所有字符串,得到内存字符串集;
判断所述内存字符串集与所述特征字符串集中是否存在相同的字符串;
若存在,则判定所述被测主机中运行有虚拟货币挖矿程序。
2.根据权利要求1所述的方法,其特征在于,获取真实挖矿程序运行时存在的识别特征,得到特征字符串集,包括:
从挖矿进程中采集与矿池通信时使用的矿池域名,得到矿池域名集;
从所述挖矿进程中采集用户个人的钱包地址,并统计各所述钱包地址的长度,得到地址位数集;
从所述挖矿进程中采集挖矿算法的函数名,得到挖矿算法集;
从所述挖矿进程中采集传输信息时使用的通信协议,得到通信协议集;
选取所述矿池域名集、所述地址位数集、所述挖矿算法集以及所述通信协议集中的至少一种,汇总得到所述特征字符串集;
其中,所述挖矿进程为所述真实挖矿程序运行时创建得到。
3.根据权利要求2所述的方法,其特征在于,当所述特征字符串集由所述矿池域名集和所述地址位数集汇总得到时,判断所述内存字符串集与所述特征字符串集中是否存在相同的字符串,包括:
判断所述内存字符串集与所述矿池域名集中是否存在相同的字符串;
若所述内存字符串集与所述矿池域名集中不存在相同的字符串,则判断所述内存字符串集与所述地址位数集中是否存在相同的字符串。
4.根据权利要求2所述的方法,其特征在于,在从所述挖矿进程中采集传输信息时使用的通信协议之后、得到协议特征集之前,还包括:
从采集到的所有通信协议中删去正常程序传输信息所使用的通信协议,得到独有通信协议,以基于各所述独有通信协议得到所述协议特征集;其中,所述正常程序为位于程序白名单中的程序。
5.根据权利要求1至4任一项所述的方法,其特征在于,在判定所述被测主机中运行有虚拟货币挖矿程序之后,还包括:
确定相同的字符串在所述内存字符串集中的位置,并根据所述位置确定相应的挖矿进程名;
通过预设路径上报虚拟货币挖矿警报信息;其中,所述虚拟货币挖矿警告信息中包括所述挖矿进程名。
6.根据权利要求5所述的方法,其特征在于,还包括:
按周期将新采集到的识别特征串更新进所述特征字符串集。
7.一种检测虚拟货币挖矿程序的系统,其特征在于,包括:
特征字符串集获得单元,用于获取真实挖矿程序运行时存在的识别特征,得到特征字符串集;
内存字符串获取单元,用于获取被测主机内存中的所有字符串,得到内存字符串集;
相同字符串判断单元,用于判断所述内存字符串集与所述特征字符串集中是否存在相同的字符串;
挖矿程序判定单元,用于当所述内存字符串集与所述特征字符串集中存在相同的字符串时,判定所述被测主机中运行有虚拟货币挖矿程序。
8.根据权利要求7所述的系统,其特征在于,所述特征字符串集获得单元包括:
矿池域名集获得子单元,用于从挖矿进程中采集与矿池通信时使用的矿池域名,得到矿池域名集;
地址位数集获得子单元,用于从所述挖矿进程中采集用户个人的钱包地址,并统计各所述钱包地址的长度,得到地址位数集;
挖矿算法集获得子单元,用于从所述挖矿进程中采集挖矿算法的函数名,得到挖矿算法集;
通信协议集获得子单元,用于从所述挖矿进程中采集传输信息时使用的通信协议,得到通信协议集;
汇总子单元,用于选取所述矿池域名集、所述地址位数集、所述挖矿算法集以及所述通信协议集中的至少一种,汇总得到所述特征字符串集;
其中,所述挖矿进程为所述真实挖矿程序运行时创建得到。
9.根据权利要求8所述的系统,其特征在于,当所述特征字符串集由所述矿池域名集和所述地址位数集汇总得到时,所述相同字符串判断单元包括:
矿池域名集判断子单元,用于判断所述内存字符串集与所述矿池域名集中是否存在相同的字符串;
地址位数集判断子单元,用于当所述内存字符串集与所述矿池域名集中不存在相同的字符串时,所述内存字符串集与所述地址位数集中是否存在相同的字符串。
10.根据权利要求8所述的系统,其特征在于,还包括:
独有通信协议获得子单元,用于从采集到的所有通信协议中删去正常程序传输信息所使用的通信协议,得到独有通信协议,以基于各所述独有通信协议得到所述协议特征集;其中,所述正常程序为位于程序白名单中的程序。
11.根据权利要求7至10任一项所述的系统,其特征在于,还包括:
定位及进程名确定单元,用于确定相同的字符串在所述内存字符串集中的位置,并根据所述位置确定相应的挖矿进程名;
警报信息上报单元,用于通过预设路径上报虚拟货币挖矿警报信息;其中,所述虚拟货币挖矿警告信息中包括所述挖矿进程名。
12.根据权利要求11所述的系统,其特征在于,还包括:
定期更新单元,用于按周期将新采集到的识别特征串更新进所述特征字符串集。
13.一种检测虚拟货币挖矿程序的装置,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至6任一项所述的检测虚拟货币挖矿程序的方法的步骤。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的检测虚拟货币挖矿程序的方法的步骤。
CN201810622086.XA 2018-06-15 2018-06-15 检测虚拟货币挖矿程序的方法、系统、装置及存储介质 Pending CN108829829A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810622086.XA CN108829829A (zh) 2018-06-15 2018-06-15 检测虚拟货币挖矿程序的方法、系统、装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810622086.XA CN108829829A (zh) 2018-06-15 2018-06-15 检测虚拟货币挖矿程序的方法、系统、装置及存储介质

Publications (1)

Publication Number Publication Date
CN108829829A true CN108829829A (zh) 2018-11-16

Family

ID=64142403

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810622086.XA Pending CN108829829A (zh) 2018-06-15 2018-06-15 检测虚拟货币挖矿程序的方法、系统、装置及存储介质

Country Status (1)

Country Link
CN (1) CN108829829A (zh)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110619217A (zh) * 2019-09-18 2019-12-27 杭州安恒信息技术股份有限公司 恶意挖矿程序主动防御的方法及装置
CN110933060A (zh) * 2019-11-22 2020-03-27 上海交通大学 一种基于流量分析的挖矿木马检测系统
CN111212039A (zh) * 2019-12-23 2020-05-29 杭州安恒信息技术股份有限公司 基于dns流量的主机挖矿行为检测方法
CN111428239A (zh) * 2020-03-18 2020-07-17 西安电子科技大学 一种恶意挖矿软件的检测方法
CN111600850A (zh) * 2020-04-26 2020-08-28 武汉思普崚技术有限公司 一种检测挖矿虚拟货币的方法、设备及存储介质
CN111797393A (zh) * 2020-06-23 2020-10-20 哈尔滨安天科技集团股份有限公司 基于gpu恶意挖矿行为的检测方法与装置
CN113014575A (zh) * 2021-02-23 2021-06-22 清华大学 基于时间序列追踪的挖矿流量检测方法和装置
CN113177791A (zh) * 2021-04-23 2021-07-27 杭州安恒信息技术股份有限公司 一种恶意挖矿行为识别方法、装置、设备及存储介质
CN113868088A (zh) * 2021-09-29 2021-12-31 杭州默安科技有限公司 挖矿行为的检测方法、系统及计算机可读存储介质
US11316880B2 (en) 2019-09-16 2022-04-26 Avast Software, S.R.O. Cryptocurrency mining detection using network traffic
CN114513331A (zh) * 2022-01-06 2022-05-17 杭州薮猫科技有限公司 基于应用层通信协议的挖矿木马检测方法、装置及设备
CN114707975A (zh) * 2022-06-06 2022-07-05 佳瑛科技有限公司 一种具有历史处理信息的数据处理方法及系统
WO2023077993A1 (zh) * 2021-11-02 2023-05-11 中兴通讯股份有限公司 加密币挖矿行为识别方法、加密币探测装置及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101636758A (zh) * 2007-03-14 2010-01-27 比特瓦雷特股份有限公司 广告网站连接程序、存储介质、信息处理装置以及服务器装置
CN103294949A (zh) * 2012-02-29 2013-09-11 阿里巴巴集团控股有限公司 一种检测木马程序的方法及装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101636758A (zh) * 2007-03-14 2010-01-27 比特瓦雷特股份有限公司 广告网站连接程序、存储介质、信息处理装置以及服务器装置
CN103294949A (zh) * 2012-02-29 2013-09-11 阿里巴巴集团控股有限公司 一种检测木马程序的方法及装置

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11316880B2 (en) 2019-09-16 2022-04-26 Avast Software, S.R.O. Cryptocurrency mining detection using network traffic
CN110619217A (zh) * 2019-09-18 2019-12-27 杭州安恒信息技术股份有限公司 恶意挖矿程序主动防御的方法及装置
CN110933060B (zh) * 2019-11-22 2021-10-22 上海交通大学 一种基于流量分析的挖矿木马检测系统
CN110933060A (zh) * 2019-11-22 2020-03-27 上海交通大学 一种基于流量分析的挖矿木马检测系统
CN111212039A (zh) * 2019-12-23 2020-05-29 杭州安恒信息技术股份有限公司 基于dns流量的主机挖矿行为检测方法
CN111428239A (zh) * 2020-03-18 2020-07-17 西安电子科技大学 一种恶意挖矿软件的检测方法
CN111600850A (zh) * 2020-04-26 2020-08-28 武汉思普崚技术有限公司 一种检测挖矿虚拟货币的方法、设备及存储介质
CN111797393A (zh) * 2020-06-23 2020-10-20 哈尔滨安天科技集团股份有限公司 基于gpu恶意挖矿行为的检测方法与装置
CN113014575A (zh) * 2021-02-23 2021-06-22 清华大学 基于时间序列追踪的挖矿流量检测方法和装置
CN113177791A (zh) * 2021-04-23 2021-07-27 杭州安恒信息技术股份有限公司 一种恶意挖矿行为识别方法、装置、设备及存储介质
WO2022222270A1 (zh) * 2021-04-23 2022-10-27 杭州安恒信息技术股份有限公司 一种恶意挖矿行为识别方法、装置、设备及存储介质
CN113868088A (zh) * 2021-09-29 2021-12-31 杭州默安科技有限公司 挖矿行为的检测方法、系统及计算机可读存储介质
WO2023077993A1 (zh) * 2021-11-02 2023-05-11 中兴通讯股份有限公司 加密币挖矿行为识别方法、加密币探测装置及存储介质
CN114513331A (zh) * 2022-01-06 2022-05-17 杭州薮猫科技有限公司 基于应用层通信协议的挖矿木马检测方法、装置及设备
CN114707975A (zh) * 2022-06-06 2022-07-05 佳瑛科技有限公司 一种具有历史处理信息的数据处理方法及系统

Similar Documents

Publication Publication Date Title
CN108829829A (zh) 检测虚拟货币挖矿程序的方法、系统、装置及存储介质
Blondel et al. A survey of results on mobile phone datasets analysis
CN109598509B (zh) 风险团伙的识别方法和装置
CN107360156A (zh) 一种大数据环境下基于区块链的p2p网络云端存储方法
CN108717630A (zh) 一种出块方法及其实现系统
CN106453061B (zh) 一种识别网络诈骗行为的方法及系统
Becker et al. Fraud detection in telecommunications: History and lessons learned
CN106815530A (zh) 数据存证方法、数据校验方法及装置
CN106549974A (zh) 预测社交网络账户是否恶意的设备、方法及系统
CN109087079A (zh) 数字货币交易信息分析方法
Da Rocha et al. Identifying bank frauds using CRISP-DM and decision trees
CN107181745A (zh) 恶意消息识别方法、装置、设备和计算机存储介质
CN109996193A (zh) 基于智信平台的短信发送方法、装置、系统和设备
CA2439435A1 (en) System and method for depicting on-line transactions
CN110119428A (zh) 一种区块链信息管理方法、装置、设备及存储介质
CN107493576A (zh) 用于确定无线接入点的安全信息的方法与设备
CN110445801A (zh) 一种物联网的态势感知方法和系统
CN108596683A (zh) 一种潜在客户信息获取方法及装置
CN109600362A (zh) 基于识别模型的僵尸主机识别方法、识别设备及介质
CN109102418A (zh) 基于用户关系的社交网络垃圾账号识别方法
CN108764902A (zh) 用于存储数据的方法、节点和区块链系统
WO2023093638A1 (zh) 异常数据识别方法、装置、设备和存储介质
Yildiz et al. Detecting social cliques for automated privacy control in online social networks
CN106203164A (zh) 基于可信计算和云计算的信息安全大数据资源管理系统
CN109213801A (zh) 基于关联关系的数据挖掘方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20181116