CN110417768B - 一种僵尸网络的跟踪方法及装置 - Google Patents

一种僵尸网络的跟踪方法及装置 Download PDF

Info

Publication number
CN110417768B
CN110417768B CN201910671979.8A CN201910671979A CN110417768B CN 110417768 B CN110417768 B CN 110417768B CN 201910671979 A CN201910671979 A CN 201910671979A CN 110417768 B CN110417768 B CN 110417768B
Authority
CN
China
Prior art keywords
program
malicious
code
instruction
memory
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
Application number
CN201910671979.8A
Other languages
English (en)
Other versions
CN110417768A (zh
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.)
Nsfocus Technologies Inc
Nsfocus Technologies Group Co Ltd
Original Assignee
Nsfocus Technologies Inc
Nsfocus Technologies Group 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 Nsfocus Technologies Inc, Nsfocus Technologies Group Co Ltd filed Critical Nsfocus Technologies Inc
Priority to CN201910671979.8A priority Critical patent/CN110417768B/zh
Publication of CN110417768A publication Critical patent/CN110417768A/zh
Application granted granted Critical
Publication of CN110417768B publication Critical patent/CN110417768B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/144Detection or countermeasures against botnets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/146Tracing the source of attacks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/168Implementing security features at a particular protocol layer above the transport layer

Abstract

本申请公开一种僵尸网络的跟踪方法及装置,属于网络安全技术领域,包括:预先对僵尸网络的恶意程序进行分析确定恶意程序的内存搜索特征,并将恶意程序部署到虚拟机中使虚拟机成为受控端,其中,内存搜索特征包括恶意程序的字符特征和执行特征,后续,受控端对自身运行的任一程序,若确定该程序的执行代码符合恶意程序的字符特征,则在该程序对应的内存中搜索符合恶意程序的执行特征的目标代码,若搜索到目标代码,则确定该程序为恶意程序,进而对搜索到的目标代码进行挂钩,钩取该程序在解密密文恶意指令后执行的明文恶意指令,解析明文恶意指令确定该程序在用户空间中执行的操作,保存该程序在用户空间中的操作信息,以对恶意程序进行跟踪。

Description

一种僵尸网络的跟踪方法及装置
技术领域
本申请涉及网络安全技术领域,尤其涉及一种僵尸网络的跟踪方法及装置。
背景技术
在僵尸网络中,不法分子通过恶意程序感染互联网上的大量主机,从而在主控端和多个受控端之间形成一对多的控制网络,由于僵尸网络的危害极大,所以对僵尸网络进行监测是防御僵尸网络攻击的重要手段。
目前监测僵尸网络的方式为安全研究员逆向分析恶意程序,根据分析结果仿写出模拟恶意程序通信行为、具备指令记录能力的跟踪程序,然后利用跟踪程序将某个主机伪装成受控端,打入僵尸网络内部来获得情报,然而,对主控端发送的密文恶意指令,安全研究员需人工识别控制者使用的加密算法并在跟踪程序中实现其加解密算法,费时费力、且成本高。
另外,僵尸网络可能会使用不同的加密算法来对不同的恶意指令进行加密,而即便是使用同一加密算法僵尸网络也可能会使用不同的密钥,因此,对僵尸网络无法使用统一的跟踪程序进行跟踪。
可见,现有技术中存在着将密文恶意指令解密为明文恶意指令的能力不足而导致的难以跟踪僵尸网络的问题。
发明内容
本申请实施例提供一种僵尸网络的跟踪方法及装置,用以解决现有技术中存在的将密文恶意指令解密为明文恶意指令的能力不足而导致的难以跟踪僵尸网络的问题。
第一方面,本申请实施例提供的一种僵尸网络的跟踪方法,预先对僵尸网络的恶意程序进行分析确定所述恶意程序的内存搜索特征,将所述恶意程序部署到虚拟机中,使所述虚拟机成为受控端,其中,所述内存搜索特征包括所述恶意程序的字符特征和执行特征,以及所述方法包括:
受控端对自身运行的任一程序,若确定该程序的执行代码符合所述字符特征,则在该程序对应的内存中搜索符合所述执行特征的目标代码,所述目标代码为预先确定的所述恶意程序在解密主控端发送的密文恶意指令后所运行的代码;
若搜索到所述目标代码,则确定该程序为恶意程序,对搜索到的所述目标代码进行挂钩,钩取该程序在解密密文恶意指令后执行的明文恶意指令,解析所述明文恶意指令确定该程序在用户空间中执行的操作;
保存该程序在用户空间中的操作信息。
本申请实施例中,预先对僵尸网络的恶意程序进行分析确定恶意程序的内存搜索特征,并将恶意程序部署到虚拟机中使虚拟机成为受控端,其中,内存搜索特征包括恶意程序的字符特征和执行特征,后续,受控端对自身运行的任一程序,若确定该程序的执行代码符合恶意程序的字符特征,则确定该程序为可疑程序,进而在该程序对应的内存中搜索符合恶意程序的执行特征的目标代码,若搜索到目标代码,则确定该程序为恶意程序,可对搜索到的目标代码进行挂钩,钩取该程序在解密密文恶意指令后执行的明文恶意指令,解析明文恶意指令确定该程序在用户空间中执行的操作,并保存该程序在用户空间中的操作信息,该方案中,由于目标代码为恶意程序在解密主控端发送的密文恶意指令后所运行的代码,所以对目标代码进行挂钩所钩取的已是恶意程序解密后的明文恶意指令,这样,只需先观测恶意程序的内存搜索特征,定位到目标代码即可轻松获取僵尸网络中恶意程序的明文恶意指令,不需要再识别密文恶意指令的加密算法,也无须再实现解密算法,对明文恶意指令的获取更简单,因此对僵尸网络的跟踪更加容易。
第二方面,本申请实施例提供的一种僵尸网络的跟踪装置,预先对僵尸网络的恶意程序进行分析确定所述恶意程序的内存搜索特征,将所述恶意程序部署到虚拟机中,使所述虚拟机成为受控端,其中,所述内存搜索特征包括所述恶意程序的字符特征和执行特征,以及所述装置包括:
搜索模块,用于对自身运行的任一程序,若确定该程序的执行代码符合所述字符特征,则在该程序对应的内存中搜索符合所述执行特征的目标代码,所述目标代码为预先确定的所述恶意程序在解密主控端发送的密文恶意指令后所运行的代码;
确定模块,用于若搜索到所述目标代码,则确定该程序为恶意程序,对搜索到的所述目标代码进行挂钩,钩取该程序在解密密文恶意指令后执行的明文恶意指令,解析所述明文恶意指令确定该程序在用户空间中执行的操作;
保存模块,用于保存该程序在用户空间中的操作信息。
第三方面,本申请实施例提供的一种电子设备,包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中:
存储器存储有可被至少一个处理器执行的指令,该指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述僵尸网络的跟踪方法。
第四方面,本申请实施例提供的一种计算机可读介质,存储有计算机可执行指令,所述计算机可执行指令用于执行上述僵尸网络的跟踪方法。
另外,第二方面至第四方面中任一种设计方式所带来的技术效果可参见第一方面中不同实现方式所带来的技术效果,此处不再赘述。
本申请的这些方面或其它方面在以下实施例的描述中会更加简明易懂。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例提供的一种僵尸网络的示意图;
图2为本申请实施例提供的一种僵尸网络的跟踪方法的流程图;
图3为本申请实施例提供的一种僵尸网络中某恶意程序的操作信息示意图;
图4为本申请实施例提供的一种僵尸网络的跟踪示意图;
图5为本申请实施例提供的又一种僵尸网络的跟踪方法的流程图;
图6为本申请实施例提供的一种明文指令信息的分析结果示意图;
图7为本申请实施例提供的一种用于实现僵尸网络的跟踪方法的电子设备的硬件结构示意图;
图8为本申请实施例提供的一种僵尸网络的跟踪装置的结构示意图。
具体实施方式
为了解决现有技术中存在的将密文恶意指令解密为明文恶意指令的能力不足而导致的难以跟踪僵尸网络的问题,本申请实施例提供了一种僵尸网络的跟踪方法及装置。
以下结合说明书附图对本申请的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本申请,并不用于限定本申请,并且在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
参见图1,图1示出了本申请实施例提供的一种僵尸网络的示意图,包括主控端和多个受控端,其中,由主控端生成恶意程序,并通过网络途径感染每个受控端,使受控端成为自己的傀儡机,利用受控端发起如分布式拒绝服务攻击,垃圾邮件等网络攻击。
为了应对以上网络攻击,本申请提供一种基于真实环境下运行的恶意程序的监控方法,与目前所使用的利用跟踪程序伪装受控端以模拟僵尸网络中受控端的方式不同,本申请中的恶意程序运行于真实执行环境,这样,恶意程序可与主控端进行真实的互动,较好地规避了某些恶意程序的复杂握手策略而导致的跟踪失败,并且,因为恶意程序运行在真实执行环境下,可以对恶意程序先观测再分析,在定位到恶意程序中的目标代码之后再跟踪僵尸网络,以便对控制端发送的恶意指令提供真实的回显,其中,真实执行环境包括但不限于物理机、虚拟化平台。
以真实执行环境为虚拟化平台为例,本申请在虚拟化环境下特别提供了用户态挂钩和内核态挂钩,其中,在内核态中钩取关键函数实现了对恶意程序本地行为的监控,在用户态中钩取关键指令实现了对密文恶意指令的明文还原,这样,可从握手、互动、指令分析三个阶段天然地减少了安全研究员的工作内容,提高了安全研究员对恶意程序的分析容错率。
具体地,本申请的技术方案包括,预先对僵尸网络的多种恶意程序进行分析,对恶意程序的内存空间通过字符特征与执行特征两个维度进行抽象,最终生成恶意程序的内存搜索特征,进一步地,将恶意程序部署至跟踪运行环境,使跟踪运行环境所在的虚拟机成为受控端。
后续,受控端可对自身运行的每个程序的特征进行分析,若确定该程序的执行代码符合僵尸网络中恶意程序的字符特征,则说明该程序是可疑程序,可进一步在该程序对应的内存中搜索符合恶意程序的执行特征的目标代码,若搜索到目标代码,则确定该程序为恶意程序,可对搜索到的目标代码执行特征挂钩,当目标代码被执行后从内存中钩取解密后的明文恶意指令,解析明文恶意指令确定该程序在用户空间中执行的操作,进而保存该程序在用户空间中的操作信息以跟踪该程序,其中,目标代码为预先确定的恶意程序在解密主控端发送的密文恶意指令后所运行的代码,由于在运行目标代码时恶意程序已经对密文恶意指令进行过解析,所以内存中已经存在解密后的明文恶意指令,这样,只需先观测恶意程序的内存搜索特征,定位到目标代码即可轻松获取僵尸网络中恶意程序的明文恶意指令,不需要再识别密文恶意指令的加密算法,也无须再实现解密算法,对明文恶意指令的获取更简单,因此,对僵尸网络的跟踪更加容易。
如图2所示,为本申请实施例提供的一种僵尸网络的跟踪方法的流程图,包括以下步骤:
S201:预先对僵尸网络中的恶意程序进行分析确定恶意程序的内存搜索特征,将恶意程序部署到虚拟机中,使虚拟机成为受控端,其中,恶意程序的内存搜索特征包括恶意程序的字符特征和执行特征。
实际应用中,僵尸网络中的恶意程序多种多样,预先分析各恶意程序的内存搜索特征便于及时发现恶意程序,将恶意程序部署到虚拟机中是为了使恶意程序运行在真实执行环境下,便于对恶意程序先观测再分析,在定位到恶意程序中的目标代码之后再跟踪僵尸网络,从而对控制端发送的恶意指令提供真实的回显。
S202:受控端对自身运行的任一程序,若确定该程序的执行代码符合恶意程序的字符特征,则在该程序对应的内存中搜索符合执行特征的目标代码,其中,目标代码为预先确定的恶意程序在解密主控端发送的密文恶意指令后所运行的代码。
一般地,受控端运行的程序大部分均为安全程序,只有少部分为恶意程序,识别恶意程序的依据主要为内存搜索特征。
以恶意程序ddriver为例,其字符特征包括互斥锁名称字符硬编码、杀软名称字符硬编码等,则其字符特征可以为:
Figure BDA0002142014430000061
Figure BDA0002142014430000071
一般地,恶意程序会想办法躲过杀毒软件的检测,所以恶意程序的执行代码会包含一些躲避杀毒软件的特点,这些特点就可以作为恶意程序的字符特征。
S203:若搜索到目标代码,则确定该程序为恶意程序,对搜索到的目标代码进行挂钩,钩取该程序在解密密文恶意指令后执行的明文恶意指令,解析明文恶意指令确定该程序在用户空间中执行的操作。
具体实施时,若该程序属于编译型语言,则目标代码为目标指令,此时,可直接对目标指令的地址进行挂钩,钩取该程序在解密密文恶意指令后执行的明文恶意指令;若该程序属于解释型语言,则目标代码为中间码,此时,可在中间码对应的内存地址上设置断点,利用断点对中间码进行挂钩。
S204:保存该程序在用户空间中的操作信息,以对该程序进行跟踪。
下面结合具体的实施例对上述过程进行说明。
假设僵尸网络中某恶意程序执行的操作信息如图3所示,分析图3可得到以下2个结论:
结论1:恶意程序中虚拟地址0040B77F调用了密文恶意指令的解密函数。
结论2:解密完成后的明文恶意指令位于[esp+200h+pbData],即[esp+0x60]。
根据结论1,当位于0040B77F的解密函数被执行后,恶意指令必定被解密,这意味着,当恶意程序运行至解密函数调用指令之后的指令时,明文恶意指令必定位于恶意程序的内存空间中。
以0040B77F之后的第一个指令为例,此时,钩取的指令是位于虚拟地址0040B784的add esp,18h。
钩取规则
Figure BDA0002142014430000072
Figure BDA0002142014430000081
当恶意程序执行到位于0040B784的指令add esp,18h时,进入钩子函数,钩子函数根据结论2将明文恶意指令从内存中提取出来。
钩子函数实现举例
...
pvoid plain_txt;//受控端提供的指针
//保护现场
ADD ESP,0x18//
MOV ESI,MOV EAX DWORD PTR[ESP+0x60]//根据结论2得知,明文恶意指令的首地址与栈顶相距0x60个字节,
MOV plain_txt,ESI//让指针指向明文恶意指令的首地址
//恢复现场
...
至此,获取明文恶意指令。
进一步地,解析明文恶意指令。
假设恶意程序下载恶意组件的指令格式为[恶意组件md5][分隔符‘|’][下载链接][分隔符‘$’]...
且有如下的恶意指令
bc26fd7a0b7fe005e116f5ff2227ea4d|http://dl.haqo.net/ins4.exez$c85d9fe9ea740ed7c12cb9999c5349a6|http://dl.haqo.net/xmrig-32_1.mlz
则,解析过程如下:
每个恶意下载指令由‘$’分隔,上述指令可分割为
1.bc26fd7a0b7fe005e116f5ff2227ea4d|http://dl.haqo.net/ins4.exez
2.c85d9fe9ea740ed7c12cb9999c5349a6|http://dl.haqo.net/xmrig-32_1.mlz
每个恶意链接由‘|’分隔,提取分隔符后的下载链接
3.http://dl.haqo.net/ins4.exez
4.http://dl.haqo.net/xmrig-32_1.mlz
至此,一次恶意组件的下载指令解析完成。
在具体实施时,目标代码可以选择该恶意程序在解密主控端发送的密文恶意指令后所执行的某个指令,如在解密主控端发送的密文恶意指令后所执行的第一个指令、第二个指令或第三个指令,只要存放这些指令的内存空间未被释放即可。
另外,考虑到恶意程序可能使用编译型语言编写,也有可能使用解释型语言编写,而解释型语言仅在代码执行时由中间码翻译为汇编指令,翻译后的指令位于解释器内部,这些指令执行的用途包括但不限于与主控端进行通信,因此不具备挂钩价值,而且,中间码由其专用的解释器解释为解释器中的函数+参数并执行,将中间码与解释后函数+参数一一对应极为困难,因此使用之前挂钩策略对于解释型语言并不适用,当尝试改变解释型语言的执行流程时,比较简单的做法是利用断点,即,在解密函数相关的中间码设置断点,当某个中间码被解释器解释时,该断点被触发并进入断点的处理函数。
因此,上述过程中,对每一程序,可先判断该程序是属于编译型语言还是属于解释型语言,若确定该程序属于编译型语言,则在该程序对应的内存中搜到的是目标指令,当搜索到目标指令时,可根据搜索到的目标指令的地址钩取解密后的明文恶意指令;若确定该程序属于解释型语言,则在该程序对应的内存中搜到的是中间码,当搜索到中间码时,可在中间码中对应的内存地址上设置断点,当解密程序运行到断点时即可钩取到该程序在执行中间码之后执行的明文恶意指令。
下面结合具体的实施例对上述过程进行说明。
比如,中间码‘0xF4 0x00’被解释器解释为‘MOVSX EAX,BYTE PTR[ESI],PUSHEAX,XOR EAX,EAX’,由于0xF4 0x00不是汇编指令,无法被挂钩,因此正确的做法是在0xF4上设置访问断点,当该解释器尝试访问该字节时,该断点被触发并进入断点处理函数,此时,根据断点提取的执行特征
是中间码{0xF4,0x00},
而不是指令特征
{
0xF4 0xBE 0x06//MOVSX EAX,BYTE PTR[ESI]
0x50//PUSH EAX
0x33 0xC0//XOR EAX,EAX
}
上述过程中,在该程序对应的内存中搜索目标代码之前,还可以判断该程序使用的是否为安全套接层(Secure Sockets Layer,SSL)协议,若否,则使用内存搜索特征中的执行特征在该程序对应的内存中搜索相应的目标代码;若是,还可进一步判断操作系统提供的SSL协议闭是否为SSL协议闭源库,若是SSL协议闭源库,则对该程序调用的SSL协议库函数进行挂钩,从库函数的参数/返回值获取明文恶意指令;若不是SSL协议闭源库、而是SSL协议开源库,则提取SSL开源库相关解密函数的执行特征,利用该执行特征钩取明文恶意指令。
后续,安全研究员可根据设定时间段内的跟踪结果提炼有价值的威胁情报。
下面结合具体的实施例对本申请的技术方案进行说明。
在检测到恶意程序时,先对恶意程序进行逆向工程,提取恶意程序中可用于识别恶意程序的字符串并编写内存搜索中的字符特征,同时,分析攻击数据流的走向,确定目标代码,确保当目标代码被执行时,恶意指令已被解密,在成功定位目标代码后,提取目标代码的上下文特征并编写内存搜索特征中的执行特征。此外,还提供一个明文流量解析规则,用于将已处于解密状态的恶意指令解释为统一的攻击日志,方便入库。
在具体实施时,可在环境中部署包括内核模块和驱动模块的虚拟机,其中,内核模块负责对恶意程序的文件读写、进程创建销毁等操作进行监控以其本地行为,同时,还可负责对网卡驱动流量等信息进行监控以记录其网络行为,此外,内核模块可将记录的恶意程序的所有本地行为和网络行为转发至物理机的本地日志处理模块进行入库;用户模块在恶意程序的内存中搜索符合执行特征的目标代码,根据搜索到的目标代码的地址钩取主控端发送的处于解密状态的恶意指令,将其转发至物理机,由物理机根据明文流量解析规则对恶意指令进行解密,以生成恶意程序的指令日志并入库,最后,由安全研究员根据本地日志与指令日志提炼出有价值的威胁情报。
参见图4,图4为本申请实施例提供的一种僵尸网络的跟踪示意图,假设有“特征A”和“特征B”两条内存搜索特征,以虚拟机A为例,虚拟机A可分析自身运行的每个程序的特征,若发现程序A的特征符合‘特征A’的字符特征,则可将程序A作为可疑程序,进而控制内核模块监控程序A的本地行为,并将监控到的本地行为信息存入本地行为数据库,并控制用户模块在程序A的内存中搜索符合“特征A”的目标代码,若搜索到搜索符合“特征A”的目标代码,则确定程序A作为恶意程序,进而对搜索到的目标代码进行挂钩,目标代码被执行后从内存中钩取明文恶意指令,将钩取的明文恶意指令发送给物理机,由物理机根据明文流量解析规则对恶意指令进行解析,并将解析得到的恶意指令存入恶意指令数据库,这样,实现了对恶意程序A的跟踪。跟踪恶意程序B的过程与此类似,在此不再赘述。
上述过程中,用户模块:由一系列系统服务描述符表(System ServicesDescriptor Table,SSDT)钩子组成,主要负责记录恶意程序的本地行为。具体地,内核态驱动从SSDT表中提取进程、网络驱动接口规范(Network Driver Interface Specification,NDIS)、TDI、文件、注册表、服务模块相关函数索引并将其挂钩,其中,进程钩子用于监控恶意程序执行过程中创建进程的行为;NDIS钩子用于截获恶意程序的流量;TDI钩子用于监视恶意程序与主控端建立连接的过程;文件钩子用于监控恶意程序的自释放、勒索等文件操作;注册表钩子用于记录恶意程序对注册表的查询、修改行为;服务钩子用于监控恶意程序在执行中所创建的服务。
用户模块:由主控、指令挂钩引擎、内存搜索引擎、中间码挂钩引擎组成,负责截获恶意程序的指令,与内核钩子不同,这些指令需要在恶意程序执行过程中动态地获取。
具体实施时,当受控端检测到恶意程序时,可按照图5所示的流程确定恶意程序在用户空间中的操作:
S501:受控端判断恶意程序是否使用SSL协议,若是,则进入S508;若否,则进入S502。
S502:主控读取内存搜索特征并传入内存搜索引擎。
S503:内存搜索引擎在内存空间搜索符合内存搜索特征中执行特征的目标代码。
S504:内存搜索引擎输出搜索到的目标代码的地址给主控,该地址即为挂钩地址。
S505:判断恶意程序是编译型语言还是解释型语言,若是编译型语言,则进入S506;若是解释型语言,则进入S507。
S506:将挂钩地址提供给指令挂钩引擎。
S507:将挂钩地址提供给中间码挂钩引擎。
S508:钩取明文恶意指令。
在具体实施时,如果是编译型语言,则指令挂钩引擎直接对挂钩地址进行挂钩,在位于该挂钩地址的指令被执行时钩取明文恶意指令;如果是解释型语言,内存搜索引擎还可扫描到用于解密密文恶意指令的解密程序的中间码,并通过主控提供给中间码挂钩引擎,中间码挂钩引擎在获取到中间码地址后,可在该地址设置断点,后续,当解密程序运行到断点位置时即触发中断,进而从中断处钩取明文恶意指令。
另外,对使用SSL协议的恶意程序,若操作系统提供所述协议闭源库,则挂钩库函数获得明文恶意指令,若开源社区提供所述协议开源库,则提取所述协议开源库相关解密函数的执行特征,利用提取的执行特征钩取明文恶意指令。
S509:解析明文恶意指令。
在本申请实施例中,恶意程序直接运行真实的主机环境,解决了跟踪程序难以对于鼠标控制,屏幕截取等远控类操作进行显现的问题,并且,对于一个尚未分析的恶意程序,采取“先观测,后分析”的策略,避免重要数据的遗漏,密文恶意指令的解密由运行于在真实执行环境下的恶意程序执行,直接钩取解密后的明文恶意指令,安全人员只需定位目标代码即可,无需再对加密算法种类进行识别,亦无需反编译其使用的加密算法,这样,对密文恶意指令的分析更容易,对远控类恶意程序的跟踪也更易实现。
另外,本申请实施例允许解释型恶意程序以调试模式运行,通过硬件中断实现了对运行中的恶意程序的接管,从而实现了对解释型恶意程序的钩取,还可提高恶意程序的跟踪覆盖面。
进一步地,假设保存的明文指令为:8521032L,datetime.datetime(2019,1,31,0,16,20),'DOOS.NITOL.SOP5R11.WV','58.218.*.*','58.218.*.*',8000L,0L,'ddosattacktype=tcp_flood,target=59.37.*.*;,targetport=20164,threads=200000000;',则其重要的字段如下:
攻击事件 攻击指令来源 攻击目标 攻击类型
2019.1.31 58.218.*.* 59.37.*.* TCP_FLOOD
根据这些信息可从被攻击目标、攻击原因、攻击者和攻击源等多维度提炼威胁情报最终形成对该类恶意程序家族的威胁情报。
比如,监控到该类恶意程序家族的指令大致可分为高威胁指令和低威胁指令两大类,其中,高威胁指令包括攻击指令、停止攻击指令和下载指令;低威胁指令包括心跳指令、信息采集指令和其它通信指令,且各类指令的占比如图6所示,总而言之,这些信息可对恶意指令给出统计学意义并解读。
参见图7所示,为本申请实施例提供的一种用于实现僵尸网络的跟踪方法的电子设备的结构示意图,该电子设备包括收发器701以及处理器702等物理器件,其中,处理器702可以是一个中央处理单元(central processing unit,CPU)、微处理器、专用集成电路、可编程逻辑电路、大规模集成电路、或者为数字处理单元等等。收发器701用于电子设备和其他设备进行数据收发。
该电子设备还可以包括存储器703用于存储处理器702执行的软件指令,当然还可以存储电子设备需要的一些其他数据,如电子设备的标识信息、电子设备的加密信息、用户数据等。存储器703可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储器703也可以是非易失性存储器(non-volatilememory),例如只读存储器(read-only memory,ROM),快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD)、或者存储器703是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器703可以是上述存储器的组合。
本申请实施例中不限定上述处理器702、存储器703以及收发器701之间的具体连接介质。本申请实施例在图7中仅以存储器703、处理器702以及收发器701之间通过总线704连接为例进行说明,总线在图7中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
处理器702可以是专用硬件或运行软件的处理器,当处理器702可以运行软件时,处理器702读取存储器703存储的软件指令,并在所述软件指令的驱动下,执行前述实施例中涉及的僵尸网络的跟踪方法。
当本申请实施例中提供的方法以软件或硬件或软硬件结合实现的时候,电子设备中可以包括多个功能模块,每个功能模块可以包括软件、硬件或其结合。具体的,参见图8所示,为本申请实施例提供的僵尸网络的跟踪装置的结构示意图,包括搜索模块801、确定模块802、保存模块803。
搜索模块801,用于对自身运行的任一程序,若确定该程序的执行代码符合所述字符特征,则在该程序对应的内存中搜索符合所述执行特征的目标代码,所述目标代码为预先确定的所述恶意程序在解密主控端发送的密文恶意指令后所运行的代码;
确定模块802,用于若搜索到所述目标代码,则确定该程序为恶意程序,对搜索到的所述目标代码进行挂钩,钩取该程序在解密密文恶意指令后执行的明文恶意指令,解析所述明文恶意指令确定该程序在用户空间中执行的操作;
保存模块803,用于保存该程序在用户空间中的操作信息。
在一种可能的实施方式下,若该程序属于编译型语言,则所述目标代码为目标指令;若该程序属于解释型语言,则所述目标代码为中间码。
在一种可能的实施方式下,若所述目标代码为中间码,所述确定模块802具体用于:
在所述中间码对应的内存地址上设置断点,利用所述断点对所述中间码进行挂钩。
在一种可能的实施方式下,所述确定模块802还用于:
在该程序对应的内存中搜索符合所述执行特征的目标代码之前,确定该程序使用的不是安全套接层SSL协议。
在一种可能的实施方式下,所述确定模块802还用于:
若确定该程序使用的是SSL协议,则所述确定模块还用于:
对该程序调用的SSL协议库函数进行挂钩,执行所述钩取该程序在解密密文恶意指令后执行的明文恶意指令的步骤。
本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,另外,在本申请各个实施例中的各功能模块可以集成在一个处理器中,也可以是单独物理存在,也可以两个或两个以上模块集成在一个模块中。各个模块相互之间的耦合可以是通过一些接口实现,这些接口通常是电性通信接口,但是也不排除可能是机械接口或其它的形式接口。因此,作为分离部件说明的模块可以是或者也可以不是物理上分开的,既可以位于一个地方,也可以分布到同一个或不同设备的不同位置上。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
本申请实施例还提供了一种计算机可读存储介质,存储为执行上述处理器所需执行的计算机可执行指令,其包含用于执行上述处理器所需执行的程序。
在一些可能的实施方式中,本申请提供的僵尸网络的跟踪方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在电子设备上运行时,所述程序代码用于使所述电子设备执行本说明书上述描述的根据本申请各种示例性实施方式的僵尸网络的跟踪方法中的步骤。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
本申请的实施方式的用于恶意程序跟踪的程序产品可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在计算设备上运行。然而,本申请的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本申请操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
应当注意,尽管在上文详细描述中提及了装置的若干单元或子单元,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。
此外,尽管在附图中以特定顺序描述了本申请方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、装置(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (12)

1.一种僵尸网络的跟踪方法,其特征在于,预先对僵尸网络的恶意程序进行分析确定所述恶意程序的内存搜索特征,将所述恶意程序部署到虚拟机中,使所述虚拟机成为受控端,其中,所述内存搜索特征包括所述恶意程序的字符特征和执行特征,以及所述方法包括:
受控端对自身运行的任一程序,若确定该程序的执行代码符合所述字符特征,则在该程序对应的内存中搜索符合所述执行特征的目标代码,所述目标代码为预先确定的所述恶意程序在解密主控端发送的密文恶意指令后所运行的代码,且所述目标代码是基于所述恶意程序的攻击数据流的走向确定的;
若搜索到所述目标代码,则确定该程序为恶意程序,对搜索到的所述目标代码进行挂钩,钩取该程序在解密密文恶意指令后执行的明文恶意指令,解析所述明文恶意指令确定该程序在用户空间中执行的操作;
保存该程序在用户空间中的操作信息。
2.如权利要求1所述的方法,其特征在于,若该程序属于编译型语言,则所述目标代码为目标指令;若该程序属于解释型语言,则所述目标代码为中间码。
3.如权利要求2所述的方法,其特征在于,若所述目标代码为中间码,则对搜索到的所述目标代码进行挂钩,包括:
在所述中间码对应的内存地址上设置断点,利用所述断点对所述中间码进行挂钩。
4.如权利要求1所述的方法,其特征在于,在该程序对应的内存中搜索符合所述执行特征的目标代码之前,还包括:
确定该程序使用的不是安全套接层SSL协议。
5.如权利要求4所述的方法,其特征在于,若确定该程序使用的是SSL协议,则还包括:
对该程序调用的SSL协议库函数进行挂钩,执行所述钩取该程序在解密密文恶意指令后执行的明文恶意指令的步骤。
6.一种僵尸网络的跟踪装置,其特征在于,预先对僵尸网络的恶意程序进行分析确定所述恶意程序的内存搜索特征,将所述恶意程序部署到虚拟机中,使所述虚拟机成为受控端,其中,所述内存搜索特征包括所述恶意程序的字符特征和执行特征,以及所述装置包括:
搜索模块,用于对自身运行的任一程序,若确定该程序的执行代码符合所述字符特征,则在该程序对应的内存中搜索符合所述执行特征的目标代码,所述目标代码为预先确定的所述恶意程序在解密主控端发送的密文恶意指令后所运行的代码,且所述目标代码是基于所述恶意程序的攻击数据流的走向确定的;
确定模块,用于若搜索到所述目标代码,则确定该程序为恶意程序,对搜索到的所述目标代码进行挂钩,钩取该程序在解密密文恶意指令后执行的明文恶意指令,解析所述明文恶意指令确定该程序在用户空间中执行的操作;
保存模块,用于保存该程序在用户空间中的操作信息。
7.如权利要求6所述的装置,其特征在于,若该程序属于编译型语言,则所述目标代码为目标指令;若该程序属于解释型语言,则所述目标代码为中间码。
8.如权利要求7所述的装置,其特征在于,若所述目标代码为中间码,所述确定模块具体用于:
在所述中间码对应的内存地址上设置断点,利用所述断点对所述中间码进行挂钩。
9.如权利要求6所述的装置,其特征在于,所述确定模块还用于:
在该程序对应的内存中搜索符合所述执行特征的目标代码之前,确定该程序使用的不是安全套接层SSL协议。
10.如权利要求9所述的装置,其特征在于,若确定该程序使用的是SSL协议,则所述确定模块还用于:
对该程序调用的SSL协议库函数进行挂钩,执行所述钩取该程序在解密密文恶意指令后执行的明文恶意指令的步骤。
11.一种电子设备,其特征在于,包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中:
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至5任一权利要求所述的方法。
12.一种计算机可读介质,存储有计算机可执行指令,其特征在于,所述计算机可执行指令用于执行如权利要求1至5任一权利要求所述的方法。
CN201910671979.8A 2019-07-24 2019-07-24 一种僵尸网络的跟踪方法及装置 Active CN110417768B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910671979.8A CN110417768B (zh) 2019-07-24 2019-07-24 一种僵尸网络的跟踪方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910671979.8A CN110417768B (zh) 2019-07-24 2019-07-24 一种僵尸网络的跟踪方法及装置

Publications (2)

Publication Number Publication Date
CN110417768A CN110417768A (zh) 2019-11-05
CN110417768B true CN110417768B (zh) 2021-10-08

Family

ID=68362887

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910671979.8A Active CN110417768B (zh) 2019-07-24 2019-07-24 一种僵尸网络的跟踪方法及装置

Country Status (1)

Country Link
CN (1) CN110417768B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111556045B (zh) * 2020-04-23 2022-02-15 亚信科技(成都)有限公司 一种恶意程序的检测方法和装置
CN112214653A (zh) * 2020-10-29 2021-01-12 Oppo广东移动通信有限公司 字符串识别方法、装置、存储介质及电子设备
CN112966270A (zh) * 2021-03-16 2021-06-15 武汉小安科技有限公司 应用程序的安全检测方法、装置、电子设备和存储介质
CN113569244B (zh) * 2021-09-18 2021-12-03 成都数默科技有限公司 一种基于处理器跟踪的内存恶意代码检测方法
CN114244599B (zh) * 2021-12-15 2023-11-24 杭州默安科技有限公司 一种干扰恶意程序的方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104766011A (zh) * 2015-03-26 2015-07-08 国家电网公司 基于主机特征的沙箱检测告警方法和系统
CN105208041A (zh) * 2015-10-15 2015-12-30 厦门大学 基于hook的云存储应用加密数据包破解方法
CN106909847A (zh) * 2017-02-17 2017-06-30 国家计算机网络与信息安全管理中心 一种恶意代码检测的方法、装置及系统
CN109474452A (zh) * 2017-12-25 2019-03-15 北京安天网络安全技术有限公司 自动识别b/s僵尸网络后台的方法、系统及存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104766011A (zh) * 2015-03-26 2015-07-08 国家电网公司 基于主机特征的沙箱检测告警方法和系统
CN105208041A (zh) * 2015-10-15 2015-12-30 厦门大学 基于hook的云存储应用加密数据包破解方法
CN106909847A (zh) * 2017-02-17 2017-06-30 国家计算机网络与信息安全管理中心 一种恶意代码检测的方法、装置及系统
CN109474452A (zh) * 2017-12-25 2019-03-15 北京安天网络安全技术有限公司 自动识别b/s僵尸网络后台的方法、系统及存储介质

Also Published As

Publication number Publication date
CN110417768A (zh) 2019-11-05

Similar Documents

Publication Publication Date Title
JP7046111B2 (ja) マルウェアのランタイム中の自動検出
CN110417768B (zh) 一种僵尸网络的跟踪方法及装置
Schrittwieser et al. Protecting software through obfuscation: Can it keep pace with progress in code analysis?
CN106687971B (zh) 用来减少软件的攻击面的自动代码锁定
RU2680736C1 (ru) Сервер и способ для определения вредоносных файлов в сетевом трафике
Caballero et al. Input generation via decomposition and re-stitching: Finding bugs in malware
Sood et al. Targeted cyber attacks: multi-staged attacks driven by exploits and malware
US10013555B2 (en) System and method for detecting harmful files executable on a virtual stack machine based on parameters of the files and the virtual stack machine
Shabtai et al. F-sign: Automatic, function-based signature generation for malware
Davies et al. Evaluation of live forensic techniques in ransomware attack mitigation
Da-Yu et al. Analyzing WannaCry ransomware considering the weapons and exploits
Alzahrani et al. An analysis of conti ransomware leaked source codes
WO2017012241A1 (zh) 文件的检测方法、装置、设备及非易失性计算机存储介质
US11909761B2 (en) Mitigating malware impact by utilizing sandbox insights
Čeponis et al. Towards a robust method of dataset generation of malicious activity for anomaly-based HIDS training and presentation of AWSCTD dataset
Soliman et al. Taxonomy of malware analysis in the IoT
Zeng et al. Resilient user-side android application repackaging and tampering detection using cryptographically obfuscated logic bombs
Masid et al. Application of the SAMA methodology to Ryuk malware
Yin et al. Automatic malware analysis: an emulator based approach
Harter et al. Testing detection of k-ary code obfuscated by metamorphic and polymorphic techniques
Pružinec et al. KUBO: a framework for automated efficacy testing of anti-virus behavioral detection with procedure-based malware emulation
RU2757330C1 (ru) Способ выявления несогласованного использования ресурсов вычислительного устройства пользователя
Hu et al. Perception Mining of Network Protocol’s Stealth Attack Behaviors
Pektaş Classification des logiciels malveillants basée sur le comportement à l'aide de l'apprentissage automatique en ligne
Namanya A Heuristic Featured Based Quantification Framework for Efficient Malware Detection. Measuring the Malicious intent of a file using anomaly probabilistic scoring and evidence combinational theory with fuzzy hashing for malware detection in Portable Executable files

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
CB02 Change of applicant information

Address after: 100089 Beijing city Haidian District Road No. 4 North wa Yitai three storey building

Applicant after: NSFOCUS Technologies Group Co.,Ltd.

Applicant after: NSFOCUS TECHNOLOGIES Inc.

Address before: 100089 Beijing city Haidian District Road No. 4 North wa Yitai three storey building

Applicant before: NSFOCUS INFORMATION TECHNOLOGY Co.,Ltd.

Applicant before: NSFOCUS TECHNOLOGIES Inc.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant