CN110875917B - 一种检测挖矿病毒的方法、装置及存储介质 - Google Patents
一种检测挖矿病毒的方法、装置及存储介质 Download PDFInfo
- Publication number
- CN110875917B CN110875917B CN201811030020.8A CN201811030020A CN110875917B CN 110875917 B CN110875917 B CN 110875917B CN 201811030020 A CN201811030020 A CN 201811030020A CN 110875917 B CN110875917 B CN 110875917B
- Authority
- CN
- China
- Prior art keywords
- instructions
- threat
- processes
- determining
- processor
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Computer Networks & Wireless Communication (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明实施例提供了一种检测挖矿病毒的方法、装置及存储介质,用以解决现有的挖矿病毒检测方法具有延迟性,并且难以发现未知的挖矿病毒的问题。该方法包括:读取计算机的中央处理器的调试存储区中的指令以及图形处理器中的指令;确定从所述调试存储区中连续读取的M条指令均为运算指令,且从所述图形处理器中连续读取的N条指令均为运算指令;M、N均为大于1的自然数;确定所述M条指令的堆栈信息以及所述N条指令的堆栈信息所属的进程是威胁进程,所述威胁进程中存在挖矿病毒。
Description
技术领域
本发明涉及网络安全技术领域,尤其涉及一种检测挖矿病毒的方法、装置及存储介质。
背景技术
随着虚拟货币的不断升值,比特币变得越来越难挖,在利益的驱使下,一部分黑产制造者利用之前勒索病毒留下的漏洞,散播可以为自己挖虚拟货币的病毒。能够挖虚拟货币的病毒就是挖矿病毒,由于这些病毒能都带来巨额的经济收益,因此颇受黑产制造者的重视。其中,挖矿病毒中影响最大的是罗门币挖矿病毒,该病毒是利用永恒之蓝漏洞传播的挖矿程序,具有很强的传播能力,能够在短短数日内感染上万台用户电脑。
而如何防御已知或者未知的挖矿病毒已经成安全厂商关注的重点,目前几乎所有的安全厂商都通过黑名单进行相关网站及恶意程序的检测,但是这种采用MD5的检测方式有延迟性,很难发现未知的病毒。
综上所述,目前已有的挖矿病毒的检测方法具有延迟性,并且难以发现未知的挖矿病毒。
发明内容
本发明实施例提供了一种检测挖矿病毒的方法、装置及存储介质,用以解决现有的挖矿病毒检测方法具有延迟性,并且难以发现未知的挖矿病毒的问题。
基于上述问题,本发明实施例提供的一种检测挖矿病毒的方法,包括:
读取计算机的中央处理器的调试存储区中的指令以及图形处理器中的指今;
确定从所述调试存储区中连续读取的M条指令均为运算指令,且从所述图形处理器中连续读取的N条指令均为运算指令;M、N均为大于1的自然数;
确定所述M条指令的堆栈信息以及所述N条指令的堆栈信息所属的进程是威胁进程,所述威胁进程中存在挖矿病毒。
本发明实施例提供的一种检测挖矿病毒的装置,包括存储器和处理器,所述存储器用于存储多条指令,所述处理器用于加载所述存储器中存储的指令以执行:
读取计算机的中央处理器的调试存储区中的指令以及图形处理器中的指令;
确定从所述调试存储区中连续读取的M条指令均为运算指令,且从所述图形处理器中连续读取的N条指令均为运算指令;M、N均为大于1的自然数;
确定所述M条指令的堆栈信息以及所述N条指令的堆栈信息所属的进程是威胁进程,所述威胁进程中存在挖矿病毒。
本发明实施例提供的一种存储设备,其中存储有多条指令,所述指令适于由处理器加载并执行本发明实施例提供的一种检测挖矿病毒的方法的步骤。
本发明实施例的有益效果包括:
本发明实施例提供的一种检测挖矿病毒的方法、装置及存储介质,通过读取调试存储区(DS,Debug Store)中的指令以及图形处理器(GPU,Graphic Processing Unit)中的指令,并判断从DS中连续读取的M条指令是否为均为运算指令,以及从GPU中连续读取的N条指令是否均为运算指令(M、N均为大于1的自然数),当从DS中连续读取的M条指令均为运算指令且从GPU中连续读取的N条指令均为运算指令时,认为计算机的中央处理器(CPU,Central Processing Unit)和GPU正在进行大量运算,然后根据堆栈信息与进程的模块之间的对应关系确定出M条指令的堆栈信息对应的模块与N条指令信息对应的模块所属的进程,从而确定出进行大量运算的进程,该进程中可能存在挖矿病毒,因此该进程是一个威胁进程。本发明实施例提供的挖矿病毒检测方法通过分析CPU和GPU中运行的指令来检测挖矿病毒,无需进行病毒特征对比,因此不会有延迟性,也可以检测出一些未知的挖矿病毒。
附图说明
图1为本发明实施例提供的一种检测挖矿病毒的方法的流程图;
图2为本发明实施例提供的一种判断连续读取的M条指令是否均为运算指令的方法的流程图;
图3为本发明实施例提供的另一种检测挖矿病毒的方法的流程图;
图4为本发明实施例提供的一种检测挖矿病毒的装置的示意图。
具体实施方式
由于一般的挖矿病毒都会依托于浏览器,在用户不知情的情况下,偷偷利用CPU和GPU进行大量运算,甚至有的挖矿病毒为了避免被杀毒软件检测到,会在运算到一定峰值的时候,进行短暂的休眠。如果利用hook对系统进行监控,往往会有被绕过的方法,但是恶意程序无论选择什么样的绕过技巧,最后执行的指令都会交到CPU上,所以无论病毒如何隐藏都可以通过分析CPU运行的指令检测出来。另外,根据统计很少有浏览器会直接调用GPU进行大量运算,同时也很少有浏览器会需要调用大量的运算函数。
目前主流的计算的CPU中均有分支踪迹存储区(BTS,Branch Trace Store)和DS,其中,BTS是CPU用来存储分支信息的特定内存区,CPU可以通过DS对这些特定的内存区进行特定的管理,通过对DS中的指令的读取和分析便可以得知CPU的运行轨迹。而挖矿病毒不同于其他应用程序,它会调用CPU、GPU大量的资源进行运算,其调用的CPU指令也与正常API的调用不同,通过读取和分析DS中的指令可以获得CPU在各个时刻走向,从而判断出CPU是否正在进行大量的运算,再结合对GPU中的指令的分析,判断GPU是否也在进行着大量的运算,如果CPU和GPU都在进行着大量的运算,可以通过堆栈信息,得出请求这些指令的进程,以确定出占用大量系统资源的可疑进程。
本发明实施例提供的一种检测挖矿病毒的方法、装置及存储介质,通过CPU中的DS中的指令来判断CPU的动态走势,当发现CPU执行了大量运算指令以进行大量运算,并且GPU也执行了大量运算指令时,根据这些运算指令的堆栈信息确定出请求这些指令的进程。确定出的进程中可能由于存在挖矿病毒而导致需要进行大量运算,因此,确定出的进程是一个威胁进程。由于通过分析CPU和GPU中运行的指令来检测挖矿病毒,无需进行病毒特征对比,因此可以检测出一些未知的挖矿病毒。
下面结合说明书附图,对本发明实施例提供的一种检测挖矿病毒的方法、装置及存储介质的具体实施方式进行说明。
本发明实施例提供的一种检测挖矿病毒的方法,如图1所示,具体包括以下步骤:
S101、读取计算机的CPU的DS中的指令以及GPU中的指令;
S102、确定从DS中连续读取的M条指令均为运算指令,且从GPU中连续读取的N条指令均为运算指令;M、N均为大于1的自然数;
S103、确定所述M条指令的堆栈信息以及所述N条指令的堆栈信息所属的进程是威胁进程,所述威胁进程中存在挖矿病毒。
由于CPU的DS读取的权限是在Ring0层,所以需要安装驱动才可以读到DS中的指令,因此,在从DS中读取指令之前要先安装相应的驱动才能进行DS的读取。
从DS中读取的指令可能为运算指令,也可能为寻址指令、赋值指令或者其他指令,而判断从DS中连续读取的M条指令是否均为运算指令,可以采用图2所示方法来执行:
S201、从DS中读取一条指令;
S202、计数器初始值置为0;
S203、判断读取的指令是否为运算指令,若是,则执行S204;否则执行S205;
S204、判断计数器的值加1后是否不小于M,若是,则执行S206,否则,执行S207;
S205、计数器清0,执行S207;
S206、确定从DS中连续读取的k条指令均为运算指令,执行S207;其中,k为计数器的计数值;由于k不小于M了,因此,连续读取的M条指令的当然均为运算指令;
S207、从DS中读取下一条指令,然后执行S203。
判断从GPU中连续读取的N条指令是否均为运算指令也可以采用图2所示的方法进行判断,当然,也可以采用其他的方法来判断从DS中连续读取的M条指令是否均为运算指令,以及采用其他的方法来判断从GPU中连续读取的N条指令是否均为运算指令,所采用的判断方法并不限于本发明实施例提供的判断方法。
在根据指令的堆栈信息确定相应的进程时,可以利用Windows提供DbgHelp.dll下载相应的系统符号,当给出指令的内存地址后,就可以获取属于某个进程的模块的堆栈信息,从而可以由指令的堆栈信息确定相应的进程。
进一步地,为了提高检测的准确率,本发明实施例还提供一种挖矿病毒检测方法,如图3所示,在包含图1所示的方法流程的基础上还包括:
S301、判断所述威胁进程是否是计算机正常运行时所调用的进程,若是,执行S303,否则,执行S302;计算机正常运行时所调用的进程可能会被挖矿病毒进行了钩挂,导致这些进程成为常用宿主进程。
S302、发送第一告警信息;当威胁进程并不是计算机正常运行时所调用的进程时,它调用了大量的运算指令,原则上来讲可能存在问题,但也可能是正常的,例如,有些游戏进程也可能会调用大量的运算指令,因此可以发送第一告警信息,告警信息中可以对用户进行提示,由用户来确定是允许进程继续运行,还是结束这个威胁进程。
S303、暂停威胁进程;如果威胁进程是计算机正常运行时所调用的进程,那么有可能是恶意程序对正常进程进行了钩挂,因此需要暂停分析,查看钩挂到正常进程的程序是否含有数字签名,如果有数字签名,就可以认定该威胁进程是正常的进程,可以继续运行。
S304、确定该威胁进程没有数字签名,且是浏览器进程;由于浏览器进程很少会需要调用大量的运算函数,因此,结合没有数字签名的特征以及调用大量运算指令的特征,基本上就可以断定这个威胁进程中存在挖矿病毒了。
S305、结束该威胁进程并发送第二告警信息,其中,第二告警信息可以向用户提示发现挖矿病毒的信息。
在S103中,M条指令的堆栈信息所属的进程可能和N条指令的堆栈信息所属的进程是同一个进程,也可能不是同一个进程。但无论是不是同一个进程,都可以采用S301-S305的流程对确定出的一个或者多个威胁进程进行进一步的判断,从而提高挖矿病毒检测的准确率。如果确定出的是多个威胁进程,可以利用S301-S305分别对各个威胁进程进行进一步的判断。
基于同一发明构思,本发明实施例还提供了一种检测挖矿病毒的装置及存储介质,由于该装置和存储介质所解决问题的原理与前述检测挖矿病毒的方法相似,因此该装置和存储介质的实施可以参见前述方法的实施,重复之处不再赘述。
本发明实施例提供的一种检测挖矿病毒的装置,如图4所示,包括存储器41和处理器42,存储器41用于存储多条指令,处理器42用于加载存储器41中存储的指令以执行:
读取计算机的中央处理器的调试存储区中的指令以及图形处理器中的指令;
确定从所述调试存储区中连续读取的M条指令均为运算指令,且从所述图形处理器中连续读取的N条指令均为运算指令;M、N均为大于1的自然数;
确定所述M条指令的堆栈信息以及所述N条指令的堆栈信息所属的进程是威胁进程,所述威胁进程中存在挖矿病毒。
进一步地,处理器42还用于加载存储器41中存储的指令以执行:
在确定所述M条指令的堆栈信息以及所述N条指令的堆栈信息所属的进程是威胁进程后,判断所述威胁进程是否是计算机正常运行时所调用的进程;
若是,暂停所述威胁进程;
否则,发送第一告警信息。
进一步地,处理器42还用于加载存储器41中存储的指令以执行:
在暂停所述威胁进程之后,确定所述威胁进程没有数字签名,且是浏览器进程;
结束所述威胁进程且发送第二告警信息。
进一步地,处理器42还用于加载存储器41中存储的指令以执行:
确定从所述调试存储区中连续读取的M条指令不是均为运算指令或者从所述图形处理器中连续读取的N条指令不是均为运算指令,则继续从所述调试存储区中读取指令,并继续从所述图形处理器中读取指令。
本发明实施例提供的一种存储设备,其中存储有多条指令,所述指令适于由处理器加载并执行本发明实施例提供的一种检测挖矿病毒的方法的步骤。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明实施例可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (9)
1.一种检测挖矿病毒的方法,其特征在于,包括:
读取计算机的中央处理器的调试存储区中的指令以及图形处理器中的指令;
确定从所述调试存储区中连续读取的M条指令均为运算指令,且从所述图形处理器中连续读取的N条指令均为运算指令;M、N均为大于1的自然数;
确定所述M条指令的堆栈信息以及所述N条指令的堆栈信息所属的进程是威胁进程,所述威胁进程中存在挖矿病毒。
2.如权利要求1所述的方法,其特征在于,在确定所述M条指令的堆栈信息以及所述N条指令的堆栈信息所属的进程是威胁进程后,所述方法还包括:
判断所述威胁进程是否是计算机正常运行时所调用的进程;
若是,暂停所述威胁进程;
否则,发送第一告警信息。
3.如权利要求2所述的方法,其特征在于,在暂停所述威胁进程之后,所述方法还包括:
确定所述威胁进程没有数字签名,且是浏览器进程;
结束所述威胁进程且发送第二告警信息。
4.如权利要求1所述的方法,其特征在于,所述方法还包括:
确定从所述调试存储区中连续读取的M条指令不是均为运算指令或者从所述图形处理器中连续读取的N条指令不是均为运算指令,则继续从所述调试存储区中读取指令,并继续从所述图形处理器中读取指令。
5.一种检测挖矿病毒的装置,其特征在于,所述装置包括存储器和处理器,所述存储器用于存储多条指令,所述处理器用于加载所述存储器中存储的指令以执行:
读取计算机的中央处理器的调试存储区中的指令以及图形处理器中的指令;
确定从所述调试存储区中连续读取的M条指令均为运算指令,且从所述图形处理器中连续读取的N条指令均为运算指令;M、N均为大于1的自然数;
确定所述M条指令的堆栈信息以及所述N条指令的堆栈信息所属的进程是威胁进程,所述威胁进程中存在挖矿病毒。
6.如权利要求5所述的装置,其特征在于,所述处理器还用于加载所述存储器中存储的指令以执行:
在确定所述M条指令的堆栈信息以及所述N条指令的堆栈信息所属的进程是威胁进程后,判断所述威胁进程是否是计算机正常运行时所调用的进程;
若是,暂停所述威胁进程;
否则,发送第一告警信息。
7.如权利要求6所述的装置,其特征在于,所述处理器还用于加载所述存储器中存储的指令以执行:
在暂停所述威胁进程之后,确定所述威胁进程没有数字签名,且是浏览器进程;
结束所述威胁进程且发送第二告警信息。
8.如权利要求5所述的装置,其特征在于,所述处理器还用于加载所述存储器中存储的指令以执行:
确定从所述调试存储区中连续读取的M条指令不是均为运算指令或者从所述图形处理器中连续读取的N条指令不是均为运算指令,则继续从所述调试存储区中读取指令,并继续从所述图形处理器中读取指令。
9.一种存储设备,其特征在于,所述存储设备中存储有多条指令,所述指令适于由处理器加载并执行权利要求1-4任一所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811030020.8A CN110875917B (zh) | 2018-09-04 | 2018-09-04 | 一种检测挖矿病毒的方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811030020.8A CN110875917B (zh) | 2018-09-04 | 2018-09-04 | 一种检测挖矿病毒的方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110875917A CN110875917A (zh) | 2020-03-10 |
CN110875917B true CN110875917B (zh) | 2022-02-25 |
Family
ID=69716150
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811030020.8A Active CN110875917B (zh) | 2018-09-04 | 2018-09-04 | 一种检测挖矿病毒的方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110875917B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111797393B (zh) * | 2020-06-23 | 2023-05-23 | 安天科技集团股份有限公司 | 基于gpu恶意挖矿行为的检测方法与装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103246508A (zh) * | 2012-02-09 | 2013-08-14 | 国际商业机器公司 | 用于开发并行计算机的集合操作的方法和装置 |
CN104915249A (zh) * | 2015-05-21 | 2015-09-16 | 北京比特大陆科技有限公司 | 矿池中挖虚拟数字币的方法和装置 |
CN108427883A (zh) * | 2018-03-16 | 2018-08-21 | 北京奇虎科技有限公司 | 网页挖矿脚本的检测方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9973341B2 (en) * | 2015-01-23 | 2018-05-15 | Daniel Robert Ferrin | Method and apparatus for the limitation of the mining of blocks on a block chain |
-
2018
- 2018-09-04 CN CN201811030020.8A patent/CN110875917B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103246508A (zh) * | 2012-02-09 | 2013-08-14 | 国际商业机器公司 | 用于开发并行计算机的集合操作的方法和装置 |
CN104915249A (zh) * | 2015-05-21 | 2015-09-16 | 北京比特大陆科技有限公司 | 矿池中挖虚拟数字币的方法和装置 |
CN108427883A (zh) * | 2018-03-16 | 2018-08-21 | 北京奇虎科技有限公司 | 网页挖矿脚本的检测方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110875917A (zh) | 2020-03-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10951647B1 (en) | Behavioral scanning of mobile applications | |
US10599846B2 (en) | Segregating executable files exhibiting network activity | |
US10083294B2 (en) | Systems and methods for detecting return-oriented programming (ROP) exploits | |
CN106850582B (zh) | 一种基于指令监控的apt高级威胁检测方法 | |
US10242186B2 (en) | System and method for detecting malicious code in address space of a process | |
US10382468B2 (en) | Malware identification via secondary file analysis | |
JP6680437B2 (ja) | コンピューティングプロセス内の未知の脆弱性を検出するためのシステム及び方法 | |
US8499354B1 (en) | Preventing malware from abusing application data | |
KR101174751B1 (ko) | 커널 콜백 매커니즘을 이용한 악성코드 자동 분석 방법 | |
US9740864B2 (en) | System and method for emulation of files using multiple images of the emulator state | |
KR20090051956A (ko) | 악성 코드에 의해 삽입된 동적 연결 라이브러리 검출 장치 및 방법 | |
JP7144642B2 (ja) | フォレンジクスのための動作ベースのvmリソースキャプチャ | |
US10860716B2 (en) | Detecting malware concealed by delay loops of software programs | |
US11126721B2 (en) | Methods, systems and apparatus to detect polymorphic malware | |
US20200210591A1 (en) | System and method of forming a log when executing a file with vulnerabilities in a virtual machine | |
US10055579B2 (en) | System resources for sandboxing | |
US11562066B2 (en) | Memory tracking for malware detection | |
US9202053B1 (en) | MBR infection detection using emulation | |
Sihag et al. | Opcode n-gram based malware classification in android | |
CN110875917B (zh) | 一种检测挖矿病毒的方法、装置及存储介质 | |
CN114297630A (zh) | 恶意数据的检测方法、装置、存储介质及处理器 | |
WO2021144978A1 (ja) | 攻撃推定装置、攻撃推定方法及び攻撃推定プログラム | |
EP3674940B1 (en) | System and method of forming a log when executing a file with vulnerabilities in a virtual machine | |
US20230127205A1 (en) | Memory tracking for malware detection | |
CN109472133B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |