CN113761531A - 一种基于分布式api特征分析的恶意软件检测***及方法 - Google Patents
一种基于分布式api特征分析的恶意软件检测***及方法 Download PDFInfo
- Publication number
- CN113761531A CN113761531A CN202110951731.4A CN202110951731A CN113761531A CN 113761531 A CN113761531 A CN 113761531A CN 202110951731 A CN202110951731 A CN 202110951731A CN 113761531 A CN113761531 A CN 113761531A
- Authority
- CN
- China
- Prior art keywords
- software
- sandbox
- malicious
- detection
- api
- 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.)
- Withdrawn
Links
- 238000004458 analytical method Methods 0.000 title claims abstract description 52
- 238000000034 method Methods 0.000 title claims abstract description 40
- 244000035744 Hura crepitans Species 0.000 claims abstract description 96
- 230000003068 static effect Effects 0.000 claims abstract description 58
- 230000006399 behavior Effects 0.000 claims abstract description 46
- 230000006870 function Effects 0.000 claims abstract description 31
- 230000036541 health Effects 0.000 claims abstract description 16
- 230000008901 benefit Effects 0.000 claims abstract description 11
- 238000013528 artificial neural network Methods 0.000 claims abstract description 10
- 238000013527 convolutional neural network Methods 0.000 claims abstract description 10
- 125000004122 cyclic group Chemical group 0.000 claims abstract description 10
- 238000001514 detection method Methods 0.000 claims description 88
- 238000012544 monitoring process Methods 0.000 claims description 26
- 230000008569 process Effects 0.000 claims description 25
- 238000012549 training Methods 0.000 claims description 18
- 238000000605 extraction Methods 0.000 claims description 13
- 230000007246 mechanism Effects 0.000 claims description 12
- 230000009193 crawling Effects 0.000 claims description 11
- 239000013598 vector Substances 0.000 claims description 11
- 238000005516 engineering process Methods 0.000 claims description 9
- 230000004927 fusion Effects 0.000 claims description 6
- 238000007405 data analysis Methods 0.000 claims description 5
- 238000013507 mapping Methods 0.000 claims description 4
- 238000005457 optimization Methods 0.000 claims description 4
- 238000013468 resource allocation Methods 0.000 claims description 4
- 230000003862 health status Effects 0.000 claims 1
- 230000007547 defect Effects 0.000 abstract description 7
- 230000009471 action Effects 0.000 description 7
- 230000003111 delayed effect Effects 0.000 description 3
- 238000009434 installation Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000013145 classification model Methods 0.000 description 2
- 230000006378 damage Effects 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 230000008676 import Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000011002 quantification Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- 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/562—Static detection
- G06F21/563—Static detection by source code analysis
-
- 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/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Virology (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提出一种基于分布式API特征分析的恶意软件检测***及方法,打破传统基于静态、单机式恶意软件检测***和方法的缺陷,解决传统恶意软件检测***无法检测加壳恶意软件和单机沙箱运行效率低下的弊端,其基本思想是:将分布式沙箱和动态API特征分析优点相结合,搭建一个具有负载均衡与健康状态管理的分布式沙箱***以高效获取多个软件样本的API执行序列;然后从提取的API执行序列提取动静态特征;最后将提取的动静态特征输入到不同感受野的卷积神经网络学习恶意函数执行的序列特征,使用循环神经网络学习恶意函数执行的时序行为模式。本发明可以动态地检测恶意的函数执行方式和行为模式,能够有效检测经加壳、混淆后的恶意程序。
Description
技术领域
本发明涉及网络安全领域,尤其涉及一种基于分布式API(应用程序接口,Application Programming Interface)特征分析的恶意软件检测***及方法。
背景技术
恶意软件是旨在损害计算机,服务器或计算机网络的软件。恶意软件在植入或以某种方式侵入目标计算机后会对其造成不同程度的破坏。恶意软件是未明确提示用户或未经用户许可的情况下,在计算机上安装运行,表现为强制安装、浏览器劫持、数据窃取、恶意搜集用户敏感信息、恶意捆绑软件等恶意行为。恶意软件是黑客们实施网络犯罪的工具,攻击者通过欺骗手段诱导用户下载并运行恶意软件,从而获取用户主机的控制权或者窃取隐私信息。近年来,黑客工具的开源化导致攻击门槛逐渐降低,人们可以轻易地从网络上获取到入侵工具的源码。因此,恶意软件制造者以很小的时间成本、技术成本、经济成本就可以生成新的恶意软件对个人、社会及国家造成重大经济和安全损失,因此高效地检测恶意软件对于保护网络安全、人民财产及国家稳定具有重要意义。
为了降低恶意软件对网络环境及用户影响,众多的恶意软件检测方法及专利已经被提出。
申请号为CN201610996935.9的发明专利公开了一种用于恶意软件检测的样本类别判定方法,该发明公开了一种样本类别判定方法,包括下列步骤:1)收集样本程序集,分别组成样本库;将所述样本库中的程序集提交至虚拟沙箱环境运行,后生成相应的样本分析报告;2)解析所述样本分析报告,提取特有特征组合信息,生成特征向量集;将所述特征向量集输入分类器进行训练,得到最佳模型;3)将待测程序输入所述最佳模型,得到所述待测程序是恶意程序或正常程序的判别结果。该发明提高了恶意软件检测的效率和准确率,避免了动态检测技术中繁杂的操作和较大的能耗,在保证准确率的基础上大幅提高了检测的速度。该发明只能检测常规的恶意软件样本,并不能有效检测精心伪装的恶意软件。
申请号为CN201810299726.8的发明专利公开了一种恶意软件检测方法及***,该方法包括:1)基于待测软件的安装包确定待测软件申请的权限对应功能;2)基于所述待测软件的安装包在测试环境中安装并运行所述待测软件,实时监测所述待测软件在运行过程中实现的动作及具有的特征;3)如果监测到所述待测软件实现对应功能时获取了预设隐私信息、且具有可达到始终运行目的和/或被迫终止后自动恢复运行目的的非功能特征,则初步确定所述待测软件为恶意软件。由此,在判断待测软件是否获取预设隐私信息的同时,还监测待测软件是否具有可达到始终运行目的和/或被迫终止后自动恢复运行目的的非功能特征,从而通过上述两项判断,大大增加了恶意软件检测的准确性。该发明不能动态检测恶意软件的内部函数调用关系,致使仅仅依赖静态特征很难检测利用动态攻击策略的恶意软件。
目前,恶意软件检测方法根据是否执行恶意软件大致分为静态分析方法和动态分析方法两种。其中,静态分析方法不需要实际运行待测软件样本,而是通过解析工具从软件样本本身提取信息,例如提取函数调用名、文件结构信息、导入表、字符串、控制流等数据,依据提取的特征判断一个软件样本是否是恶意的。静态分析方法方便快捷,但难以检测到变形、多态、加壳、混淆转换后的恶意软件。动态分析方法是在沙箱或虚拟机环境中记录软件样本的实际运行流程,在此过程中监控应用程序的运行时特征,分析记录日志发现其中的恶意行为,此类方法的检测效果更好,但是检测时需要在沙箱中模拟程序的真实运行状态,其检测速率不能保证流式快速响应。总而言之,当前现存的恶意软件检测方法存在以下主要弊端:
(1)传统的恶意软件检测方法高度依赖专家知识,无法检测日益变化的加壳、混淆、变种等恶意软件。传统检测方法多是基于签名机制实现对恶意样本或特征标记,例如利用软件样本的哈希值去匹配恶意签名库中是否包含该软件,或用软件的字节、字符串等信息进行规则匹配。签名规则由安全专家根据已知恶意软件家族的显著特征手动设定,此类方法无法对特征签名库进行实时地更新和扩充,具有明显的滞后性,只有当某个软件已经被安全工作者发现为恶意、并且被加入签名特征库后才能被检测出来。此外,恶意特征签名库会随着新样本的出现而持续增大,导致查询、匹配开销逐渐增加。
(2)缺乏高质量的动态行为训练样本。动态分析方法需要高质量的软件运行样本,其获取过程需要将软件样本提交到沙箱中运行数分钟甚至数十分钟,获取动态行为数据的时间和资源成本高。且当前流行的机器学习及深度学习模型的训练过程对数据的质量和数量都有较高要求,但目前缺少大规模、完备的动态训练数据集。此外,现有公开数据集中的数据大多都是发布者进行数据预处理后的结果,只能基于已有信息进行分析,无法获取数据对应原始文件的更多相关信息,且部分数据集仅标注了恶意与良性两种类型,无法对恶意软件具体类型进行更加细致的划分。
(3)单一的动态行为检测方法具有局限性。某些软件放入沙箱运行后,会通过延迟运行手段隐蔽自己,并不会产生足量的行为数据,也有一些软件需要某个条件触发后才执行后续的恶意行为,在大规模运行样本的过程中无法对每个软件的运行条件进行具体查询,因此仅依靠动态行为进行检测可能会有所遗漏,特别是经过加壳、变种、混淆的恶意软件可以轻易地逃避这类单一的恶意软件检测***。
本发明综合考虑了众多恶意软件检测算法的优点与不足,提出了一种基于分布式API特征分析的恶意软件检测***及方法。
发明内容
本发明的目的在于克服上述已有技术的缺点,本发明提出一种基于分布式API特征分析的恶意软件检测***及方法,打破传统基于静态、单机式恶意软件检测***和方法的缺陷,解决传统恶意软件检测***无法检测加壳恶意软件和单机沙箱运行效率低下的弊端,其基本思想是:将分布式沙箱和动态API特征分析优点相结合,搭建一个具有负载均衡与健康状态管理的分布式沙箱***以高效获取多个软件样本的API执行序列;然后从提取的API执行序列提取动静态特征;最后将提取的动静态特征输入到不同感受野的卷积神经网络学习恶意函数执行的序列特征,使用循环神经网络学习恶意函数执行的时序行为模式。本发明可以动态地检测恶意的函数执行方式和行为模式,能够有效检测经加壳、混淆后的恶意程序。
为实现上述发明目的,本发明所提供的技术方案是:
一种基于分布式API特征分析的恶意软件检测***,其特征在于,包括:样本下载模块、任务下发模块、沙箱***状态监控模块、沙箱***任务调度模块、特征提取模块及检测报告生成模块。所述样本下载模块,利用当前公开、常见的数据爬取技术从公开知名的软件分析服务网站爬取大量带有具体类型标签的恶意软件样本,并从公开的软件下载仓库获取良性软件样本;所述任务下发模块,负责将采集的软件样本根据自定义的负载均衡策略下发到适当的沙箱节点,获取软件样本的执行过程;所述沙箱***状态监控模块,实时监控每个沙箱节点的运行状态,当沙箱节点的状态不良时会向中心端发送告警信息;所述沙箱***任务调度模块,负责依据负载均衡及资源利用最优化策略将软件样本执行任务下发到性能最优、效率最高的沙箱节点;所述特征提取模块,负责从沙箱运行报告中提取每个软件样本的函数调用、文件操作、进程执行、网络请求等行为特征;所述检测报告生成模块,负责训练一个自动化、集成恶意软件检测模型实现恶意软件检测,并生成对应检测报告。
进一步地根据所述的基于分布式API特征分析的恶意软件检测***,所述样本下载模块,一方面利用当前公开、常见的数据爬取技术从公开知名的软件分析服务网站爬取大量带有具体类型标签的恶意软件样本;另一方面编写自动化爬虫从公开的软件下载仓库获取良性软件。从中抽取等比例的恶意软件与良性软件作为训练样本,输入分布式沙箱,分别获取不同样本的API执行序列。
进一步地根据所述的基于分布式API特征分析的恶意软件检测***,所述任务下发模块根据分布式沙箱的负载均衡状态对待测样本进行下发。任务下发模块会批量下发采集的软件样本,负责接收用户上传的软件样本,在任务数据库中新增一条记录,通过调度模块为样本选择一个最优的沙箱节点,等到API行为执行记录后,定时跟踪监测任务的状态对任务数据库进行更新,直到最终软件样本的行为数据输入监测模型,得到最终的检测结果与检测报告。
进一步地根据所述的基于分布式API特征分析的恶意软件检测***,所述沙箱***状态监控模块实时监控每个沙箱节点的运行健康状态,从数据库中收集数据,进行信息整合,以HTTP(超文本传输协议,Hyper Text Transfer Protocol)接口形式将数据传递给前端界面进行展示,同时也作为调度模块进行决策的参考。沙箱***状态监控模块具负责任务状态统计、节点历史负载量统计、节点当前任务状态统计、节点硬件状态统计(如磁盘、内存等)、样本检测结果等,它确保每次调用接口时会获取***当前的最新状态。沙箱***状态监控模块分别从任务和节点两个维度进行监控,监控状态会作为后续任务调度算法的输入,有利于量化不同节点当前时刻的性能差异,对节点负载进行实时调整。同时,监控模块配置了自动报警功能,当节点硬件资源某项使用率指标过高时,会自动向管理员邮箱发送报警信息。
进一步地根据所述的基于分布式API特征分析的恶意软件检测***,沙箱***任务调度模块利用个性化负载均衡策略调度不同沙箱节点的任务编排。所述沙箱***任务调度模块利用经典的客户端/服务器架构实时监控沙箱集群的工作健康状态。具体地,当服务端处于管理员任务模式时,服务端会根据每个沙箱节点的承载能力及资源利用情况,按照优化策略批量下发软件样本到对应的沙箱节点,提高每台沙箱节点的利用率,保证整个沙箱集群的稳定性和高效性;当服务端处于普通用户任务工作模式时,用户通过客户端提交过来的任务会加入等待队列,服务端会以轮询的方式从队列头部获取先提交过来的任务,安排当前为空闲状态的虚拟机来执行该任务。
进一步地根据所述的基于分布式API特征分析的恶意软件检测***,所述特征提取模块实现对沙箱运行中样本执行序列特征进行提取。具体地,对于下发到沙箱集群中的每一个软件样本,在沙箱中执行三分钟,记录每个软件样本在执行过程中涉及的函数调用、文件操作、进程执行、网络请求等行为,并将其存入相应的数据库备份,同时进行数据解析以及动静态特征提取,并将其映射为可计算的数值向量。所述动静态数值向量是本发明所提出恶意软件检测模型的输入。
进一步地根据所述的基于分布式API特征分析的恶意软件检测***,所述检测报告生成模块利用堆叠模型组合多种高效的分类模型实现对恶意软件的高效检测。具体地,首先设计了基于动静特征的融合检测模型,利用分析工具从样本中提取字符串、引用的动态链接库、汇编序列等静态信息,利用沙箱运行软件提取动态API函数调用序列,利用卷积神经网络学习静态恶意软件特征,利用循环神经网络学习动态的恶意API时序行为模式,最终利用注意力机制和堆叠算法对多个基础模型进行融合,从而可以实现对加壳、变种、混淆等恶意软件的有效检测。同时,自动化生成详尽的检测报告,向用户提供友好的可视化检测结果。
一种基于分布式API特征分析的恶意软件检测方法,其特征在于,包括以下步骤:
步骤(1)、软件样本采集,利用当前公开、常见的数据爬取技术从公开知名的软件分析服务网站爬取大量带有具体类型标签的恶意软件样本,然后编写自动化爬虫从公开的软件下载仓库获取良性软件,将搜集的恶意与良性软件样本等比例混合,构建训练样本数据集;
步骤(2)、软件样本提交,将搜集的恶意与良性软件样本提交到分布式沙箱集群,依据负载均衡及最优化资源分配策略,将软件样本下发到适当的沙箱节点,每个软件样本的运行报告会保存到相应的数据库进行备份,并实时监控每个沙箱的运行状态和健康情况,实时向中心服务器回传软件样本的运行情况、沙箱节点的运行健康状态;
步骤(3)、构建恶意软件动静态特征,基于步骤(2)所述的软件运行报告,记录每个软件样本在执行过程中涉及的函数调用、文件操作、进程执行、网络请求、网络流量等行为,并将其存入相应的数据库备份,同时进行数据解析以及动静态特征提取,并将其表示映射为可计算的数值向量;
步骤(4)、恶意软件基础检测模型训练,首先设计了基于动静特征的融合检测模型,利用分析工具从样本中提取字符串、引用的动态链接库、汇编序列等静态信息,利用沙箱运行软件提取动态API函数调用序列,利用卷积神经网络学习静态恶意软件特征,利用循环神经网络学习动态的恶意API时序行为模式,分别得到基于动静态特征的基础检测模型;
步骤(5)、恶意软件检测,基于步骤(4)所述的恶意软件基础检测模型,利用堆叠算法和自注意力机制学习每个基础检测模型的权重,训练一个集成多个检测模型优点的恶意软件检测模型,实现对未知软件的检测,特别是解决对加壳、混淆的恶意软件的检测。
本发明的有益效果:
1)、本发明打破传统基于签名机制和静态特征的恶意软件检测方法,设计并实现了基于分布式API特征分析的恶意软件检测方法。通过部署分布式、自调度、自监测的沙箱集群,高效获取了大量恶意软件样本和良性软件样本的API执行序列,为学习恶意软件的执行模式提供数据支撑。
2)、本发明提出的方法可以有效解决基于签名机制和静态特征检测方法不能检测加壳、变种、混淆等形式的恶意软件,本发明充分利用恶意软件API调用序列揭示不同家族恶意软件的攻击模式,可以有效检测经加壳、变种、混淆等手段生成的恶意软件。
3)、本发明同步利用动静态特征来刻画恶意软件特征,可以有效捕获恶意软件的静态统计特征和时序行为特征,且真实的分布式沙箱集群可以有效捕获延迟执行的恶意软件行为特征,确保本发明设计的检测模型能够学习到真实的恶意软件执行行为特征,从而提高了恶意软件检测的准确性和高效性。
4)、经原型***使用实践证明,本发明能有效检测出精心伪装的恶意软件,特别是经加壳、变种及混淆的恶意软件,且本发明所述方案实现在现有网络中容易布置、操作简单、安全可靠,具有显著的经济社会效益和广阔的市场推广应用前景。
附图说明
图1是本发明所述一种基于分布式API特征分析的恶意软件检测***及方法的总体结构框图;
具体实施方式
以下结合附图对本发明的技术方案进行详细的描述,以使本领域技术人员能够更加清楚的理解本发明的方案,但并不因此限制本发明的保护范围。
目前,恶意软件检测方法根据是否执行恶意软件大致分为静态分析方法和动态分析方法两种。其中,静态分析方法不需要实际运行待测软件样本,而是通过解析工具从软件样本提取信息,例如提取函数调用名、文件结构信息、导入表、字符串、控制流等数据,依据提取的特征判断一个软件样本是否是恶意的。静态分析方法方便快捷,但难以检测到变形、多态、加壳、混淆转换后的恶意软件。动态分析方法是在沙箱或虚拟机环境中记录软件样本的实际运行流程,在此过程中监控样本程序的运行时序特征,分析日志信息发现其中的恶意行为,此类方法的检测效果更好,但是需要在沙箱中模拟程序的真实运行状态,其检测速率不能保证流式快速响应。本发明综合考虑了众多恶意软件检测算法的优点与不足,提出了基于分布式API特征分析的恶意软件检测***及方法。
首先说明本发明的技术创新原理,其基本思想如下:将分布式沙箱和动态API特征分析优点相结合,搭建一个具有负载均衡与健康状态管理的分布式沙箱***以高效获取多个软件样本的API执行序列;然后从提取的API执行序列提取动静态特征;最后将提取的动静态特征输入到不同感受野的卷积神经网络学习恶意函数执行的序列特征,使用循环神经网络学习恶意函数执行的时序行为模式。本发明可以动态地检测恶意的函数执行方式和行为模式,能够有效检测经加壳、混淆后的恶意程序。
本发明所述的基于分布式API特征分析的恶意软件检测***,如图1所示。1)利用当前公开、常见的数据爬取技术从公开知名的软件分析服务网站爬取大量带有具体类型标签的恶意软件样本,然后编写自动化爬虫从公开的软件下载仓库获取良性软件,将搜集的恶意与良性软件样本等比例混合,构建训练样本数据集;2)将采集的恶意与良性软件样本提交到分布式沙箱集群,依据负载均衡及最优化资源分配策略,将软件样本下发到适当的沙箱节点,每个软件样本的运行报告会保存到相应的数据库进行备份,并实时监控每个沙箱的运行状态和健康情况,实时向中心服务器回传软件样本的运行情况、沙箱节点的运行健康状态;3)构建恶意软件动静态特征,基于步骤2)所述的软件运行报告,记录每个软件样本在执行过程中涉及的函数调用、文件操作、进程执行、网络请求、网络流量等行为,并将其存入相应的数据库备份,同时进行数据解析以及动静态特征提取,并将其映射为可计算的数值向量;4)恶意软件基础检测模型训练,首先设计了基于动静特征的融合检测模型,利用分析工具从样本中提取字符串、引用的动态链接库、汇编序列等静态信息,利用沙箱运行软件提取动态API函数调用序列,利用卷积神经网络学习静态恶意软件特征,利用循环神经网络学习动态的恶意API时序行为模式,分别得到基于动静态特征的基础检测模型;5)恶意软件检测,基于步骤4)所述的恶意软件基础检测模型,利用堆叠算法和自注意力机制学习每个基础检测模型的权重,训练一个集成多个检测模型优点的恶意软件检测模型,实现对未知软件的检测,特别是解决对加壳、混淆的恶意软件的检测。
本发明打破传统基于签名机制和静态特征的恶意软件检测方法,设计并实现了基于分布式API特征分析的恶意软件检测方法。通过部署分布式、自调度、自监测的沙箱集群,高效获取了大量恶意软件样本和良性软件样本的API执行序列,为学习恶意软件的执行模式提供数据支撑。本发明提出的方法可以有效解决基于签名机制和静态特征检测方法不能检测加壳、变种、混淆等形式的恶意软件,本发明充分利用恶意软件API调用序列揭示不同家族恶意软件的攻击模式,可以有效检测经加壳、变种、混淆等手段生成的恶意软件。本发明同步利用动静态特征来刻画恶意软件特征,可以有效捕获恶意软件的静态统计特征和时序行为特征,且真实的分布式沙箱集群可以有效捕获延迟执行的恶意软件行为特征,确保本发明设计的检测模型能够学习到真实的恶意软件执行行为特征,从而提高了恶意软件检测的准确性和高效性。经原型***使用实践证明,本发明能有效检测出精心伪装的恶意软件,特别是经加壳、变种及混淆的恶意软件,且本发明所述方案实现在现有网络中容易布置、操作简单、安全可靠,具有显著的经济社会效益和广阔的市场推广应用前景。
下面结合附图具体描述本发明所述基于分布式API特征分析的恶意软件检测***及方法的结构原理和工作过程,优选的包括如下实施方式。
优选实施方式
如图1所示,作为一种优选实施方式,本发明所述的一种基于分布式API特征分析的恶意软件检测***包括:样本下载模块、任务下发模块、沙箱***状态监控模块、沙箱***任务调度模块、特征提取模块及检测报告生成模块。
所述样本下载模块,一方面利用当前公开、常见的数据爬取技术从公开知名的软件分析服务网站爬取大量带有具体类型标签的恶意软件样本;另一方面编写自动化爬虫从公开的软件下载仓库获取良性软件。从中抽取等比例的恶意软件与良性软件作为训练样本,输入分布式沙箱,分别获取不同样本的API执行序列。
所述任务下发模块根据分布式沙箱的负载均衡状态对待测样本进行下发。任务下发模块会批量下发采集的软件样本,负责接收用户上传的软件样本,在任务数据库中新增一条记录,通过调度模块为样本选择一个最优的沙箱节点,等到API行为执行记录后,定时跟踪监测任务的状态对任务数据库进行更新,直到最终软件样本的行为数据输入监测模型,得到最终的检测结果与检测报告。
所述沙箱***状态监控模块实时监控每个沙箱节点的运行健康状态,从数据库中收集数据,进行信息整合,以HTTP接口形式将数据传递给前端界面进行展示,同时也作为调度模块进行决策的参考。沙箱***状态监控模块负责任务状态统计、节点历史负载量统计、节点当前任务状态统计、节点硬件状态统计(如磁盘、内存等)、样本检测结果等,它确保每次调用接口时会获取***当前的最新状态。沙箱***状态监控模块分别从任务和节点两个维度进行监控,监控状态会作为后续任务调度算法的输入,有利于量化不同节点当前时刻的性能差异,对节点负载进行实时调整。同时,监控模块配置了自动报警功能,当节点硬件资源某项使用率指标过高时,会自动向管理员邮箱发送报警信息。
所述沙箱***任务调度模块利用经典的客户端/服务器架构实时监控沙箱集群的工作健康状态。具体地,当服务端处于管理员任务模式时,服务端会根据每个沙箱节点的承载能力及资源利用情况,按照优化策略批量下发软件样本到对应的沙箱节点,提高每台沙箱节点的利用率,保证整个沙箱集群的稳定性和高效性;当服务端处于普通用户任务工作模式时,用户通过客户端提交过来的任务会加入等待队列,服务端会以轮询的方式从队列头部获取先提交过来的任务,安排当前为空闲状态的虚拟机来执行该任务。
所述特征提取模块实现对沙箱运行中样本执行序列特征进行提取。具体地,对于下发到沙箱集群中的每一个软件样本,在沙箱中执行三分钟,记录每个软件样本在执行过程中涉及的函数调用、文件操作、进程执行、网络请求等行为,并将其存入相应的数据库备份,同时进行数据解析以及动静态特征提取,并将其映射为可计算的数值向量。所述动静态数值向量是本发明所提出恶意软件检测模型的输入。
所述检测报告生成模块利用堆叠模型组合多种高效的分类模型实现对恶意软件的高效检测。具体地,首先设计了基于动静特征的融合检测模型,利用分析工具从样本中提取字符串、引用的动态链接库、汇编序列等静态信息,利用沙箱运行软件提取动态API函数调用序列,利用卷积神经网络学习静态恶意软件特征,利用循环神经网络学习动态的恶意API时序行为模式,最终利用注意力机制和堆叠算法对多个基础模型进行融合,从而可以实现对加壳、变种、混淆等恶意软件的有效检测。同时,自动化生成详尽的检测报告,向用户提供友好的可视化检测结果。
本发明进一步的提出一种基于分布式API特征分析的恶意软件检测方法,包括以下步骤:
步骤(1)软件样本采集,利用当前公开、常见的数据爬取技术从公开知名的软件分析服务网站爬取大量带有具体类型标签的恶意软件样本,然后编写自动化爬虫从公开的软件下载仓库获取良性软件,将搜集的恶意与良性软件样本等比例混合,构建训练样本数据集;
步骤(2)、软件样本提交,将采集的恶意与良性软件样本提交到分布式沙箱集群,依据负载均衡及最优化资源分配策略,将软件样本下发到适当的沙箱节点,每个软件样本的运行报告会保存到相应的数据库进行备份,并实时监控每个沙箱的运行状态和健康情况,实时向中心服务器回传软件样本的运行情况、沙箱节点的运行健康状态;
步骤(3)、构建恶意软件动静态特征,基于步骤(2)所述的软件运行报告,记录每个软件样本在执行过程中涉及的函数调用、文件操作、进程执行、网络请求等行为,并将其存入相应的数据库备份,同时进行数据解析以及动静态特征提取,并将其映射为可计算的数值向量;
步骤(4)、恶意软件基础检测模型训练,首先设计了基于动静特征的融合检测模型,利用分析工具从样本中提取字符串、引用的动态链接库、汇编序列等静态信息,利用沙箱运行软件提取动态API函数调用序列,利用卷积神经网络学习静态恶意软件特征,利用循环神经网络学习动态的恶意API时序行为模式,分别得到基于动静态特征的基础检测模型;
步骤(5)、恶意软件检测,基于步骤(4)所述的恶意软件基础检测模型,利用堆叠算法和自注意力机制学习每个基础检测模型的权重,训练一个集成多个检测模型优点的恶意软件检测模型,实现对未知软件的检测,特别是解决对加壳、混淆的恶意软件的检测。
以上仅是对本发明的优选实施方式进行了描述,并不将本发明的技术方案限制于此,本领域技术人员在本发明的主要技术构思的基础上所作的任何公知变形都属于本发明所要保护的技术范畴,本发明具体的保护范围以权利要求书的记载为准。
Claims (8)
1.一种基于分布式API(应用程序接口,Application Programming interface)特征分析的恶意软件检测***,其特征在于,包括:样本下载模块、任务下发模块、沙箱***状态监控模块、沙箱***任务调度模块、特征提取模块及检测报告生成模块。
2.根据权利要求1所述的基于分布式API特征分析的恶意软件检测***,其特征在于,所述样本下载模块,利用当前公开、常见的数据爬取技术从公开知名的软件分析服务网站爬取大量带有具体类型标签的恶意软件样本;并从公开的软件下载仓库获取良性软件。
3.根据权利要求1所述的基于分布式API特征分析的恶意软件检测***,其特征在于,所述任务下发模块根据分布式沙箱的负载均衡状态将待测样本分配到一个最优的沙箱节点,并定时监测当前任务的执行状态,直到该样本的API被执行完毕。
4.根据权利要求1所述的基于分布式API特征分析的恶意软件检测***,其特征在于,所述沙箱***状态监控模块实时监控每个沙箱节点的运行健康状态,负责任务状态统计、节点历史负载量统计、节点当前任务状态统计、节点硬件状态统计(包括磁盘、CPU、内存等)、样本检测结果等,同时配置了自动报警功能,当节点硬件资源某项使用率指标过高时,会自动告警。
5.根据权利要求1所述的基于分布式API特征分析的恶意软件检测***,其特征在于,所述沙箱***任务调度模块利用个性化负载均衡策略调度不同沙箱节点的任务编排,利用客户端/服务器架构实时监控沙箱集群的工作健康状态,根据每个沙箱节点的承载能力及资源利用情况,按照优化策略批量调度软件样本到对应的沙箱节点,提高每台沙箱节点的利用率,保证整个沙箱集群的稳定性和高效性。
6.根据权利要求1所述的基于分布式API特征分析的恶意软件检测***,其特征在于,所述特征提取模块实现对待测样本API执行序列特征进行提取。提取包括但不限于软件样本在执行过程中涉及的函数调用、文件操作、进程执行、网络请求等行为,并将其映射为可计算的数值向量。
7.根据权利要求1所述的基于分布式API特征分析的恶意软件检测***,其特征在于,所述检测报告生成模块利用卷积神经网络学习恶意软件的静态特征,利用基于注意力机制的循环神经网络学习恶意软件的动态时序行为模式,最终利用堆叠算法融合多个基础模型,并生成检测报告,记录恶意执行序列和最终的检测结果。
8.一种基于分布式API特征分析的恶意软件检测方法,其特征在于,包括以下步骤:
步骤(1)、软件样本采集,利用当前公开、常见的数据爬取技术从公开知名的软件分析服务网站爬取大量带有具体类型标签的恶意软件样本,然后编写自动化爬虫从公开的软件下载仓库获取良性软件,将搜集的恶意与良性软件样本等比例混合,构建训练样本数据集;
步骤(2)、软件样本提交,将搜集的恶意与良性软件样本提交到分布式沙箱集群,依据负载均衡及最优化资源分配策略,将软件样本下发到适当的沙箱节点,每个软件样本的运行报告会保存到相应的数据库进行备份,并实时监控每个沙箱的运行状态和健康情况,实时向中心服务器回传软件样本的运行情况、沙箱节点的运行健康状态;
步骤(3)、构建恶意软件动静态特征,基于步骤(2)所述的软件运行报告,记录每个软件样本在执行过程中涉及的函数调用、文件操作、进程执行、网络请求等行为,并将其存入相应的数据库备份,同时进行数据解析以及动静态特征提取,并将其映射为可计算的数值向量;
步骤(4)、恶意软件基础检测模型训练,首先设计了基于动静特征的融合检测模型,利用分析工具从样本中提取字符串、引用的动态链接库、汇编序列等静态信息,利用沙箱运行软件提取动态API函数调用序列,利用卷积神经网络学习静态恶意软件特征,利用循环神经网络学习动态的恶意API时序行为模式,分别得到基于动静态特征的基础检测模型;
步骤(5)、恶意软件检测,基于步骤(4)所述的恶意软件基础检测模型,利用堆叠算法和自注意力机制学习每个基础检测模型的权重,训练一个集成多个检测模型优点的恶意软件检测模型,实现对未知软件的检测,特别是解决对加壳、混淆的恶意软件的检测。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110951731.4A CN113761531A (zh) | 2021-08-13 | 2021-08-13 | 一种基于分布式api特征分析的恶意软件检测***及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110951731.4A CN113761531A (zh) | 2021-08-13 | 2021-08-13 | 一种基于分布式api特征分析的恶意软件检测***及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113761531A true CN113761531A (zh) | 2021-12-07 |
Family
ID=78790425
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110951731.4A Withdrawn CN113761531A (zh) | 2021-08-13 | 2021-08-13 | 一种基于分布式api特征分析的恶意软件检测***及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113761531A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115563614A (zh) * | 2022-10-27 | 2023-01-03 | 任文欣 | 一种应用于人工智能的软件异常行为文件溯源方法 |
CN116028277A (zh) * | 2023-03-27 | 2023-04-28 | 广州智算信息技术有限公司 | 一种基于cdc模式的数据库备份方法和*** |
CN116226854A (zh) * | 2023-05-06 | 2023-06-06 | 江西萤火虫微电子科技有限公司 | 恶意软件检测方法、***、可读存储介质及计算机 |
CN117574371A (zh) * | 2023-11-28 | 2024-02-20 | 中华人民共和国新疆出入境边防检查总站(新疆维吾尔自治区公安厅边境管理总队) | 面向边缘计算平台熵敏感调用特征的恶意代码检测*** |
CN117891749A (zh) * | 2024-03-18 | 2024-04-16 | 卓望数码技术(深圳)有限公司 | Api应用安全监测方法、装置、设备及存储介质 |
-
2021
- 2021-08-13 CN CN202110951731.4A patent/CN113761531A/zh not_active Withdrawn
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115563614A (zh) * | 2022-10-27 | 2023-01-03 | 任文欣 | 一种应用于人工智能的软件异常行为文件溯源方法 |
CN115563614B (zh) * | 2022-10-27 | 2023-08-04 | 艾德领客(上海)数字技术有限公司 | 一种应用于人工智能的软件异常行为文件溯源方法 |
CN116028277A (zh) * | 2023-03-27 | 2023-04-28 | 广州智算信息技术有限公司 | 一种基于cdc模式的数据库备份方法和*** |
CN116226854A (zh) * | 2023-05-06 | 2023-06-06 | 江西萤火虫微电子科技有限公司 | 恶意软件检测方法、***、可读存储介质及计算机 |
CN117574371A (zh) * | 2023-11-28 | 2024-02-20 | 中华人民共和国新疆出入境边防检查总站(新疆维吾尔自治区公安厅边境管理总队) | 面向边缘计算平台熵敏感调用特征的恶意代码检测*** |
CN117891749A (zh) * | 2024-03-18 | 2024-04-16 | 卓望数码技术(深圳)有限公司 | Api应用安全监测方法、装置、设备及存储介质 |
CN117891749B (zh) * | 2024-03-18 | 2024-06-04 | 卓望数码技术(深圳)有限公司 | Api应用安全监测方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113761531A (zh) | 一种基于分布式api特征分析的恶意软件检测***及方法 | |
JP7319370B2 (ja) | 挙動による脅威検出のためのシステムおよび方法 | |
Arshad et al. | SAMADroid: a novel 3-level hybrid malware detection model for android operating system | |
CN105100032B (zh) | 一种防止资源盗取的方法及装置 | |
CN109361643B (zh) | 一种恶意样本的深度溯源方法 | |
CN105187392B (zh) | 基于网络接入点的移动终端恶意软件检测方法及其*** | |
CN111460446B (zh) | 基于模型的恶意文件检测方法及装置 | |
CN107003976A (zh) | 基于可准许活动规则确定可准许活动 | |
JP7389806B2 (ja) | 挙動による脅威検出のためのシステムおよび方法 | |
CN112507330B (zh) | 一种基于分布式沙箱的恶意软件检测*** | |
CN111090864A (zh) | 渗透测试框架***、渗透测试平台及渗透测试方法 | |
CN107426148A (zh) | 一种基于运行环境特征识别的反爬虫方法及*** | |
CN109561112A (zh) | 一种人工智能实时检测安全攻击*** | |
CN109948335A (zh) | 用于检测计算机***中的恶意活动的***和方法 | |
Kannan et al. | A novel cloud intrusion detection system using feature selection and classification | |
Manthena et al. | Analyzing and explaining black-box models for online malware detection | |
Eldos et al. | On the KDD'99 Dataset: Statistical Analysis for Feature Selection | |
Jin et al. | A Study on the Application of Distributed System Technology‐Guided Machine Learning in Malware Detection | |
Wassermann et al. | BIGMOMAL: Big data analytics for mobile malware detection | |
CN116756738A (zh) | 一种基于分布式api调用关系的恶意代码检测***及方法 | |
Castellanos et al. | Q-floid: Android malware detection with quantitative data flow graphs | |
JP2018132787A (ja) | ログ分析支援装置およびログ分析支援方法 | |
Liang et al. | Semantics-based anomaly detection of processes in linux containers | |
Long et al. | Detecting android malware based on dynamic feature sequence and attention mechanism | |
Xu | [Retracted] Dynamic Analysis of Network Protocol Hiding Behavior Based on Perceptual Mining |
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 | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20211207 |