CN110866249A - 一种动态检测恶意代码的方法、装置及电子设备 - Google Patents

一种动态检测恶意代码的方法、装置及电子设备 Download PDF

Info

Publication number
CN110866249A
CN110866249A CN201811507032.5A CN201811507032A CN110866249A CN 110866249 A CN110866249 A CN 110866249A CN 201811507032 A CN201811507032 A CN 201811507032A CN 110866249 A CN110866249 A CN 110866249A
Authority
CN
China
Prior art keywords
api
data
data set
topological graph
matrix
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
CN201811507032.5A
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.)
Beijing Ahtech Network Safe Technology Ltd
Original Assignee
Beijing Ahtech Network Safe Technology 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 Beijing Ahtech Network Safe Technology Ltd filed Critical Beijing Ahtech Network Safe Technology Ltd
Priority to CN201811507032.5A priority Critical patent/CN110866249A/zh
Publication of CN110866249A publication Critical patent/CN110866249A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/23Clustering techniques

Abstract

本发明的实施例公开一种动态检测恶意代码的方法、装置及电子设备,涉及网络安全防护技术领域,能够解决现有技术中终端的黑白名单和恶意代码特征库维护艰难的问题。所述方法包括:接收客户端上报的可疑文件;运行所述可疑文件,采集所述可疑文件运行时对预先设置的API数据集中的API的调用数据;将所述可疑文件运行时对所述API数据集中的API的调用数据生成为待检测数据;判断所述待检测数据与预先设置的对比样本库中的样本数据之间的相似度是否高于预定的相似度阈值;若是,则确定所述可疑文件包含恶意代码。本发明能够实现终端和服务端的动态联动检测,减少特征库维护难度,适用于各种计算机安全防护场合。

Description

一种动态检测恶意代码的方法、装置及电子设备
技术领域
本发明涉及网络安全防护技术领域,尤其涉及一种动态检测恶意代码的方法、装置及电子设备。
背景技术
目前金融、政府、军队等特殊行业采用的防恶意文件代码的方法主要是通过黑白名单机制、对程序进行恶意行为特征匹配、或在终端通过探针等手段实时监控分析未知文件是否有敏感操作等技术进行防护。但是由于制造恶意代码的技术发展迅速,未知的恶意代码种类和数量增长速度过快,且会通过变异、衍生等手段产生新的恶意代码,造成黑白名单和恶意代码特征库维护艰难,规模越来越大,严重影响了对恶意代码的检测效率,尤其是在终端方面,难以支持大规模黑白名单库和特征库,依靠终端进行实时监控分析未知文件操作,则会浪费很多终端性能,且受终端环境限制,难以对长期潜伏的、变异的、复杂的恶意代码进行检测。
发明内容
有鉴于此,本发明实施例提供一种动态检测恶意代码的方法、装置及电子设备,通过服务端对终端实时上报的可疑文件进行恶意代码的动态检测,能够解决现有技术中终端的黑白名单和恶意代码特征库维护艰难的问题。
第一方面,本发明实施例提供一种动态检测恶意代码的方法,用于服务器,包括:
接收客户端上报的可疑文件;
运行所述可疑文件,采集所述可疑文件运行时对预先设置的API数据集中的API的调用数据;
将所述可疑文件运行时对所述API数据集中的API的调用数据生成为待检测数据;
判断所述待检测数据与预先设置的对比样本库中的样本数据之间的相似度是否高于预定的相似度阈值;
若所述待检测数据与所述对比样本库中的任一样本数据之间的相似度,高于预定的相似度阈值,则确定所述可疑文件包含恶意代码。
结合第一方面,在第一方面的第一种可实施方式中,所述将所述可疑文件运行时对所述API数据集中的API的调用数据生成为待检测数据,包括:
将所述可疑文件运行时调用的API,按照调用时间的先后进行排序,得到包括API的唯一标识和排序序号对应关系的第一排序结果;
所述第一排序结果中还记录有每个被调用API依赖的上一个API信息;
根据所述第一排序结果生成第一拓扑图;其中,按照排序序号,依次判断第一排序结果的每个API是否有依赖的上一个API,若没有,则将当前API置于第一拓扑图的第一层,若有,则在所述第一拓扑图中将当前API置于其依赖的上一个API的下一层;
根据生成的第一拓扑图,生成所述可疑文件对应的第一矩阵;其中,所述第一矩阵的行数等于所述API数据集包含的API数量,所述第一矩阵的每一行对应所述API数据集中的同一个API,当所述API数据集中的一个API在所述第一拓扑图的第j层中出现时,该API在所述第一矩阵中对应行的第j列元素为1,当所述API数据集中的一个API未在所述第一拓扑图的第j层中出现时,该API在所述第一矩阵中对应行的第j列元素为0;j=1,...,n,n为所述第一拓扑图的层数;
将所述第一矩阵的每一行作为一个n维向量,得到包含m个n维向量的待检测数据;其中,m为所述API数据集包含的API数量。
结合第一方面,在第一方面的第二种可实施方式中,在接收客户端上报的可疑文件之前,还包括:
采集若干个恶意代码运行时对所述API数据集中的API的调用数据;
将每个恶意代码运行时对所述API数据集中的API的调用数据生成为一个样本数据;
将所述若干个恶意代码对应的样本数据组成为样本数据集并存储;
对所述样本数据集进行聚类,得到对比样本库并存储。
结合第一方面的第二种可实施方式,在第一方面的第三种可实施方式中,所述将每个恶意代码运行时对所述API数据集中的API的调用数据生成为一个样本数据,包括:
将当前恶意代码运行时调用的API,按照调用时间的先后进行排序,得到包括API的唯一标识和排序序号对应关系的第二排序结果;
所述第二排序结果中还记录有每个被调用API依赖的上一个API信息;
根据所述第二排序结果生成第二拓扑图;其中,按照排序序号,依次判断第二排序结果的每个API是否有依赖的上一个API,若没有,则将当前API置于第二拓扑图的第一层,若有,则在所述第二拓扑图中将当前API置于其依赖的上一个API的下一层;
根据生成的第二拓扑图,生成当前恶意代码对应的第二矩阵;其中,所述第二矩阵的行数等于所述API数据集包含的API数量,所述第二矩阵的每一行对应所述API数据集中的同一个API,当所述API数据集中的一个API在所述第二拓扑图的第l层中出现时,该API在所述第二矩阵中对应行的第l列元素为1,当所述API数据集中的一个API未在所述第二拓扑图的第l层中出现时,该API在所述第二矩阵中对应行的第l列元素为0;l=1,...,q,q为所述第二拓扑图的层数;
将所述第二矩阵的每一行作为一个q维向量,得到包含m个q维向量的一个样本数据;其中,m为所述API数据集包含的API数量。
结合第一方面的第二种可实施方式,在第一方面的第四种可实施方式中,所述对所述样本数据集进行聚类,得到对比样本库并存储,包括:
设置聚类停止条件;
将所述样本数据集分为训练集和测试集;
根据所述聚类停止条件,对所述训练集进行凝聚层次聚类,生成若干聚类簇;
提取当前生成的每个聚类簇的中心点,构成对比数据集;
通过所述测试集优化所述对比数据集,最终得到对比样本库并存储。
结合第一方面的第四种可实施方式,在第一方面的第五种可实施方式中,所述通过所述测试集优化所述对比数据集,包括:
利用余弦相似性计算方法计算所述测试集与所述对比数据集中的数据的最高匹配相似度的平均值;
调节所述聚类停止条件寻找所述最高匹配相似度的平均值的最优值。
结合第一方面至第一方面的第五种可实施方式中的任一种可实施方式,在第一方面的第六种可实施方式中,所述判断所述待检测数据与预先设置的对比样本库中的样本数据之间的相似度是否高于预定的相似度阈值,包括:
将所述待检测数据与预先设置的对比样本库中的每个样本数据进行余弦相似度计算;
判断计算得到的相似度值是否高于预定相似度阈值。
第二方面,本发明实施例提供一种动态检测恶意代码的装置,用于服务器,包括:
接收模块,用于接收客户端上报的可疑文件;
运行模块,用于运行所述可疑文件,采集所述可疑文件运行时对预先设置的API数据集中的API的调用数据;
待检测数据生成模块,用于将所述可疑文件运行时对所述API数据集中的API的调用数据生成为待检测数据;
判断模块,用于判断所述待检测数据与预先设置的对比样本库中的样本数据之间的相似度是否高于预定的相似度阈值;
确定模块,用于在所述判断模块判断出所述待检测数据与所述对比样本库中的任一样本数据之间的相似度高于预定的相似度阈值时,确定所述可疑文件包含恶意代码。
结合第二方面,在第二方面的第一种可实施方式中,所述待检测数据生成模块,包括:
第一排序子模块,用于将所述可疑文件运行时调用的API,按照调用时间的先后进行排序,得到包括API的唯一标识和排序序号对应关系的第一排序结果;所述第一排序结果中还记录有每个被调用API依赖的上一个API信息;
第一拓扑图生成子模块,用于根据所述第一排序结果生成第一拓扑图;其中,按照排序序号,依次判断第一排序结果的每个API是否有依赖的上一个API,若没有,则将当前API置于第一拓扑图的第一层,若有,则在所述第一拓扑图中将当前API置于其依赖的上一个API的下一层;
第一矩阵生成子模块,用于根据生成的第一拓扑图,生成所述可疑文件对应的第一矩阵;其中,所述第一矩阵的行数等于所述API数据集包含的API数量,所述第一矩阵的每一行对应所述API数据集中的同一个API,当所述API数据集中的一个API在所述第一拓扑图的第j层中出现时,该API在所述第一矩阵中对应行的第j列元素为1,当所述API数据集中的一个API未在所述第一拓扑图的第j层中出现时,该API在所述第一矩阵中对应行的第j列元素为0;j=1,...,n,n为所述第一拓扑图的层数;
待检测数据生成子模块,用于将所述第一矩阵的每一行作为一个n维向量,得到包含m个n维向量的待检测数据;其中,m为所述API数据集包含的API数量。
结合第二方面,在第二方面的第二种可实施方式中,所述装置还包括:
采集模块,用于采集若干个恶意代码运行时对所述API数据集中的API的调用数据;
样本数据生成模块,用于将所述采集模块采集的每个恶意代码运行时对所述API数据集中的API的调用数据生成为一个样本数据;
存储模块,用于将所述若干个恶意代码对应的样本数据组成为样本数据集并存储;
聚类模块,用于对所述样本数据集进行聚类,得到对比样本库并存储在所述存储模块中。
结合第二方面的第二种可实施方式,在第二方面的第三种可实施方式中,所述样本数据生成模块,包括:
第二排序子模块,用于将当前恶意代码运行时调用的API,按照调用时间的先后进行排序,得到包括API的唯一标识和排序序号对应关系的第二排序结果;所述第二排序结果中还记录有每个被调用API依赖的上一个API信息;
第二拓扑图生成子模块,用于根据所述第二排序结果生成第二拓扑图;其中,按照排序序号,依次判断第二排序结果的每个API是否有依赖的上一个API,若没有,则将当前API置于第二拓扑图的第一层,若有,则在所述第二拓扑图中将当前API置于其依赖的上一个API的下一层;
第二矩阵生成子模块,用于根据生成的第二拓扑图,生成当前恶意代码对应的第二矩阵;其中,所述第二矩阵的行数等于所述API数据集包含的API数量,所述第二矩阵的每一行对应所述API数据集中的同一个API,当所述API数据集中的一个API在所述第二拓扑图的第l层中出现时,该API在所述第二矩阵中对应行的第l列元素为1,当所述API数据集中的一个API未在所述第二拓扑图的第l层中出现时,该API在所述第二矩阵中对应行的第l列元素为0;l=1,...,q,q为所述第二拓扑图的层数;
样本数据生成子模块,用于将所述第二矩阵的每一行作为一个q维向量,得到包含m个q维向量的一个样本数据;其中,m为所述API数据集包含的API数量。
结合第二方面的第二种可实施方式,在第二方面的第四种可实施方式中,所述聚类模块,包括:
条件设置子模块,用于设置聚类停止条件;
分类子模块,用于将所述样本数据集分为训练集和测试集;
聚类子模块,用于根据所述聚类停止条件,对所述训练集进行凝聚层次聚类,生成若干聚类簇;
对比数据集生成子模块,用于提取当前生成的每个聚类簇的中心点,构成对比数据集;
优化子模块,用于通过所述测试集优化所述对比数据集,最终得到对比样本库并存储到所述存储模块中。
结合第二方面的第四种可实施方式,在第二方面的第五种可实施方式中,所述优化子模块,包括:
均值计算单元,用于利用余弦相似性计算方法计算所述测试集与所述对比数据集中的数据的最高匹配相似度的平均值;
调节单元,用于调节所述聚类停止条件寻找所述最高匹配相似度的平均值的最优值。
结合第二方面至第二方面的第五种可实施方式中的任一种可实施方式,在第二方面的第六种可实施方式中,所述判断模块,包括:
相似度计算子模块,用于将所述待检测数据与预先设置的对比样本库中的每个样本数据进行余弦相似度计算;
判断子模块,用于判断计算得到的相似度值是否高于预定相似度阈值。
第三方面,本发明实施例提供一种电子设备,所述电子设备包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述电子设备的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一实施方式所述的动态检测恶意代码的方法。
本发明实施例提供的动态检测恶意代码的方法、装置及电子设备,通过终端上报可疑的未知文件,由服务端通过可疑文件运行时对系统重要API的调用数据进行分析,不仅具有更好的检测效果,提高了对未知恶意代码的检测能力,实现终端和服务端的动态联动检测,完善了安全检测体系,而且能够减少终端存储恶意代码特征库的负担,减少了后期维护的难度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明动态检测恶意代码的方法实施例一的流程示意图;
图2为图1中步骤103的流程示意图;
图3为根据表3中的数据生成的第一拓扑图示意图;
图4为根据图3所示第一拓扑图生成的第一矩阵示意图;
图5为本发明动态检测恶意代码的方法实施例二的流程示意图;
图6为步骤502的一种实施方法流程图;
图7为步骤504的一种实施方法流程图;
图8为本发明实施例提供的一种动态检测恶意代码装置的结构示意图;
图9为图8中待检测数据生成模块13的结构示意图;
图10为本发明实施例提供的另一种动态检测恶意代码装置的结构示意图;
图11为图10中样本数据生成模块17的结构示意图;
图12为图10中聚类模块19的结构示意图;
图13为图12中优化子模块195的结构示意图;
图14为本发明实施例提供的另一种动态检测恶意代码装置的结构示意图;
图15为本发明电子设备一个实施例的结构示意图。
具体实施方式
本发明技术方案首先要采集许多已知恶意代码运行时对系统重要API的调用数据,然后根据进程调用系统重要API的调用批次生成样本数据集,利用样本数据集进行训练,进行聚类,得到若干个代表恶意代码的对比样本库,代替恶意代码特征库与客户端上传的可疑文件调用系统重要API的行为模式进行特征匹配,判断该可疑文件是否包含恶意代码。下面结合附图对本发明实施例进行详细描述。
应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
图1为本发明动态检测恶意代码的方法实施例一的流程示意图。参看图1,本实施例提供的动态检测恶意代码的方法,包括如下步骤:
步骤101、接收客户端上报的可疑文件。
本实施例中,当客户端发现可疑文件运行时,客户端将可疑文件上报到服务器。
步骤102、运行所述可疑文件,采集所述可疑文件运行时对预先设置的API数据集中的API的调用数据;
本实施例中,预先将被调用后会对系统产生较为重大的影响的API,或恶意软件常调用的系统API定义为系统重要API,将这些系统重要API组成为API数据集。例如:预先确定出系统重要API共有100个,则设置API数据集如下表1所示,表1中,用数字来唯一标识系统重要API,当然,也可以采用其他方式标识API。
表1 API数据集示意表
API名称 唯一标识
API1 1
API2 2
…… ……
API100 100
服务器在收到客户端发来的可疑文件后,将可疑文件放置到检测环境进行运行,采集该可疑文件运行时调用的系统重要API数据,例如:采集该可疑文件运行时调用的系统重要API名称(或唯一标识),调用各API的时间(时序关系),被调用的API之间的依赖关系(例如如果API1的调用会对API2的调用产生影响,则定义为API2依赖于API1)。例如:可疑文件A运行时调用了表1所示的API数据集中的API1、API5、API47、API68、API69,本步骤采集的调用数据至少包括下表2中的数据:
表2调用数据示意表
Figure BDA0001900254650000091
Figure BDA0001900254650000101
步骤103、将所述可疑文件运行时对所述API数据集中的API的调用数据生成为待检测数据。
本实施例中,根据第一预定生成规则,将可疑文件运行时对所述API数据集中的API的调用数据生成为待检测数据。例如,待检测数据可以为所述可疑文件运行时调用的系统重要API数据链,或者为本次调用的API数据链的特征值。
步骤104、判断所述待检测数据与预先设置的对比样本库中的样本数据之间的相似度是否高于预定的相似度阈值;若是,则执行步骤105。
本实施例中,若所述待检测数据与所述对比样本库中的任一样本数据之间的相似度,高于预定的相似度阈值,则执行步骤105,否则,判断其不具有恶意代码,可通知客户端将所述可疑文件放行。
步骤105、确定所述可疑文件包含恶意代码。
本实施例,通过终端上报可疑的未知文件,由服务端通过可疑文件运行时对系统重要API的调用数据进行分析,不仅具有更好的检测效果,提高了对未知恶意代码的检测能力,实现终端和服务端的动态联动检测,完善了安全检测体系,而且能够减少终端存储恶意代码特征库的负担,减少了后期对特征库维护的难度。
图2为图1中步骤103的流程示意图。参看图2,本实施例提供的将所述可疑文件运行时对所述API数据集中的API的调用数据生成为待检测数据的方法,包括:
步骤201、将所述可疑文件运行时调用的API,按照调用时间的先后进行排序,得到包括API的唯一标识和排序序号对应关系的第一排序结果;
其中,第一排序结果中还记录有每个被调用API依赖的上一个API信息。
例如:若可疑文件A运行时调用了表1所示的API数据集中的API1、API5、API47、API68、API69、API97,步骤102采集可疑文件A运行时对预先设置的API数据集中的API的调用数据如上表2所示,则此步骤根据调用时间从前往后排序,得到第一排序结果如下表3所示:
表3排序结果示意表
排序序号 API唯一标识 依赖的API排序序号 依赖的上一个API标识
1
68 1
97 1
47 97
5
69 5
47
步骤202、根据所述第一排序结果生成第一拓扑图;
此步骤中,生成第一拓扑图的规则为:按照排序序号,依次判断第一排序结果的每个API是否有依赖的上一个API,若没有,则将当前API置于第一拓扑图的第一层,若有,则在所述第一拓扑图中将当前API置于其依赖的上一个API的下一层。
例如,对于表3中的数据,根据此规则,API1首先被设置于第一拓扑图的第1层;随后判断排序序号为②的API68所处层数,由于排序序号为②的API68依赖于排序序号为①的API1,因此将API68设置于第一拓扑图中排序序号为①的API1的下一层即第2层;随后判断排序序号为③的API97所处层数,类似于API68,API97被设置于第一拓扑图的第2层;随后判断下一个被调用的排序序号为④的API47所处层数,由于排序序号为④的API47依赖于API97,因此将这个排序序号为④的API47设置于其依赖的API97的下一层即第3层;随后判断排序序号为⑤的API5所处层数,由于API5没有和其他任一被调用的API有相互依赖关系,因此将API5设置于第一拓扑图的第1层;之后的排序序号为⑥的API69,排序序号为⑦的API47根据上述规则可确定出分别为第一拓扑图的第2层和第1层,最终得到图3所示的第一拓扑图,图3的第一拓扑图中,每一层包含的方框数字为API的唯一标识。
步骤203、根据生成的第一拓扑图,生成所述可疑文件对应的第一矩阵;
其中,第一矩阵的生成规则为:第一矩阵的行数等于所述API数据集包含的API数量,第一矩阵的每一行对应API数据集中的同一个API,当API数据集中的一个API在第一拓扑图的第j层中出现时,该API在第一矩阵中对应行的第j列元素为1,当API数据集中的一个API未在第一拓扑图的第j层中出现时,该API在第一矩阵中对应行的第j列元素为0;j=1,...,n,n为第一拓扑图的层数。例如:对于表1所示的API数据集和图3所示的第一拓扑图,生成图4所示的100*3的第一矩阵,该第一矩阵的行表示所述API数据集中系统重要API的标识,列表示第一拓补图的层数,若该第一矩阵内的元素用ai,j表示,i=1,...,m,m为API数据集包含的API数量,则第一列的a1,1=1,a5,1=1,a47,1=1,第二列的a68,2=1,a69,2=1,a97,2=1,第三列的a47,3=1,该第一矩阵的其他元素全部为0。
步骤204、将第一矩阵的每一行作为一个n维向量,得到包含m个n维向量的待检测数据。
例如:对于图4所示的第一矩阵,可以得到100个3维行向量作为待检测数据。
图5为本发明动态检测恶意代码的方法实施例二的流程示意图。参看图5,本实施例提供的动态检测恶意代码的方法,包括如下步骤501-509:
步骤501、采集若干个恶意代码运行时对所述API数据集中的API的调用数据;
本实施例中,步骤501中采集任一恶意代码运行时对所述API数据集中的API的调用数据的方法类似于上述步骤102,此处不再赘述。此步骤中采用类似步骤102的方法采集海量已知的恶意代码运行时对所述API数据集中的API的调用数据。
步骤502、将每个恶意代码运行时对所述API数据集中的API的调用数据生成为一个样本数据;
优选地,样本数据的生成方法类似于步骤201-204所述的待检测数据生成方法,图6所示为步骤502的一种实施方法流程图,可以包括以下步骤601-604:
步骤601、将当前恶意代码运行时调用的API,按照调用时间的先后进行排序,得到包括API的唯一标识和排序序号对应关系的第二排序结果;所述第二排序结果中还记录有每个被调用API依赖的上一个API信息;
本实施例中,步骤601的实施方法类似于上述步骤201,此处不再赘述。
步骤602、根据所述第二排序结果生成第二拓扑图;
其中,按照排序序号,依次判断第二排序结果的每个API是否有依赖的上一个API,若没有,则将当前API置于第二拓扑图的第一层,若有,则在所述第二拓扑图中将当前API置于其依赖的上一个API的下一层;
本实施例中,步骤602的实施方法类似于上述步骤202,此处不再赘述。
步骤603、根据生成的第二拓扑图,生成当前恶意代码对应的第二矩阵;
其中,所述第二矩阵的行数等于所述API数据集包含的API数量,所述第二矩阵的每一行对应所述API数据集中的同一个API,当所述API数据集中的一个API在所述第二拓扑图的第l层中出现时,该API在所述第二矩阵中对应行的第l列元素为1,当所述API数据集中的一个API未在所述第二拓扑图的第l层中出现时,该API在所述第二矩阵中对应行的第l列元素为0;l=1,...,q,q为所述第二拓扑图的层数;
本实施例中,步骤603的实施方法类似于上述步骤203,此处不再赘述。
步骤604、将所述第二矩阵的每一行作为一个q维向量,得到包含m个q维向量的一个样本数据。其中,m为所述API数据集包含的API数量。
本实施例中,步骤604的实施方法类似于上述步骤201,此处不再赘述。
本发明实施例中,采用拓扑图构建的方式生成文件调用系统重要API的数据,数据不仅记录了被调用的系统API信息还有时序信息和依赖信息,丰富了以往样本包含的数据种类。通过聚类的方式找到不同样本之间的共性,减少样本库的规模。再对比样本时比较的不再是文件的静态分析信息,而是动态分析信息,将文件运行的动态信息进行样本化、向量化,为以后的使用带来方便。
步骤503、将所述若干个恶意代码对应的样本数据组成为样本数据集并存储。
例如,步骤501中采集了10000个恶意代码运行时对所述API数据集中的API的调用数据,则步骤502中也会生成10000条样本数据,在此步骤中组成为包括10000条样本数据的样本数据集并存储。
步骤504、对所述样本数据集进行聚类,得到对比样本库并存储。
本实施例中,可以采用现有的任一聚类方法对所述样本数据集进行聚类,以得到对比样本库。
在一可选实施例中,如图7所示,步骤504可以包括如下步骤701-705:
步骤701、设置聚类停止条件;
优选地,设置聚类停止条件为:最终得到的聚类簇个数大于等于q的最大值,每一种q值至少对应一个聚类簇,即最终得到的聚类簇个数大于等于所述对比样本库中向量的最大维度值。例如,步骤501中获取了3个恶意代码运行时对所述API数据集中的API的调用数据,则执行步骤502后会得到分别对应3个恶意代码的3组样本数据,若第一组样本数据中的向量为3维向量,第二组样本数据中的向量为5维向量,第三组样本数据中的向量为6维向量,则设置聚类停止条件为:最终得到的聚类簇个数大于等于6,一共有3个聚类簇。
步骤702、将所述样本数据集分为训练集和测试集。
此步骤可根据现有聚类方法将所述样本数据集分为训练集和测试集。
步骤703、根据所述聚类停止条件,对所述训练集进行凝聚层次聚类(HAC),生成若干聚类簇。
步骤704、提取当前生成的每个聚类簇的中心点,构成对比数据集。
步骤705、通过所述测试集优化所述对比数据集,最终得到对比样本库并存储。
在一可选实施例中,步骤705可以利用余弦相似性计算方法计算所述测试集与所述对比数据集中的数据的最高匹配相似度的平均值,最后通过调节聚类停止条件寻找所述最高匹配相似度的平均值的最优值,找到最优值时的对比数据集就是最终的对比样本库。
步骤505、接收客户端上报的可疑文件。
本实施例中,步骤505的实施方法类似于上述步骤101,此处不再赘述。
步骤506、运行所述可疑文件,采集所述可疑文件运行时对预先设置的API数据集中的API的调用数据。
本实施例中,步骤506的实施方法类似于上述步骤102,此处不再赘述。
步骤507、将所述可疑文件运行时对所述API数据集中的API的调用数据生成为待检测数据。
本实施例中,步骤507的实施方法类似于上述步骤201-204,此处不再赘述。
步骤508、判断所述待检测数据与预先设置的对比样本库中的样本数据之间的相似度是否高于预定的相似度阈值。
优选地,此步骤可以将所述待检测数据与预先设置的对比样本库中的每个样本数据进行余弦相似度计算,判断计算得到的相似度值是否高于预定相似度阈值,一旦检测到所述待检测数据与所述对比样本库中的任一样本数据之间的相似度高于预定的相似度阈值,则执行步骤509。
步骤509、若所述待检测数据与所述对比样本库中的任一样本数据之间的相似度,高于预定的相似度阈值,则确定所述可疑文件包含恶意代码。
本实施例中,步骤509的实施方法类似于上述步骤105,此处不再赘述。
本实施例二,一方面能够实现终端和服务端的动态联动检测,完善安全检测体系,减少终端存储特征库的负担,另一方面通过可疑文件运行时对系统重要API的调用数据进行分析,具有更好的检测效果;再一方面,对已知的若干恶意代码在运行时调用系统重要API的数据进行聚类,利用聚类生成的对比样本代替恶意代码特征库,与客户端上传的可疑文件调用系统重要API的行为模式进行特征匹配,以判断该可疑文件是否有恶意代码,相对于现有技术,通过聚类方法减少了需要对比的样本,对比样本库相比于恶意代码特征库和黑白名单库具有更小的规模,提高了检测速度和效率,在面对海量的变种恶意代码时,避免了维护规模越来越大的黑白名单库和恶意代码特征库这一难题。
在一可选实施例中,本发明提供的动态监测恶意代码的方法中,在确定所述可疑文件包含恶意代码之后,还可包括:将所述待检测数据存储到所述样本数据集中的步骤。以丰富样本数据集,等待更新时间到达时不断更新对比样本库。
在另一可选实施例中,本发明提供的动态监测恶意代码的方法还可包括:在预定更新周期到达时,对所述样本数据集重新进行聚类,根据聚类结果更新所述比对样本库。
在另一可选实施例中,本发明提供的动态监测恶意代码的方法中,在确定所述可疑文件包含恶意代码之后,还可包括:向客户端反馈所述可疑文件包含的恶意代码信息,以便客户端即使产生报警。进一步优选地,在向客户端反馈所述可疑文件包含的恶意代码信息时,还可根据预先存储的恶意代码和处理策略之间的对应关系,向客户端下发所述可疑文件包含的恶意代码对应的处理策略。能够为多客户端集中提供恶意代码的处理方案,解决现有技术中不同终端对恶意代码处理能力不一的情况,方便恶意代码应对资源的统一管理。
下面采用一个具体的实施例,对图1~图7中任一个所示方法实施例的技术方案进行详细说明。
当客户端检测到某个未知文件运行时有敏感操作,客户端将该未知文件传输到服务端,服务端将该未知文件放置到检测环境中运行,采集该未知文件调用系统重要API的数据并最终构建成拓扑图并生成待检测数据,与聚类对比样本库中的样本进行匹配,当匹配到该未知文件对应的待检测数据与某个样本具有高度的相似性,就说明该未知文件很可能包含与匹配到的对比样本相似的恶意代码,此时对客户端的该未知文件进行报警,由服务端将处理策略下发到终端。同时在服务端存储该未知文件样本,以备下一次更新聚类对比样本时使用。
对应于本发明实施例提供的动态检测恶意代码的方法,本发明实施例还提供一种动态检测恶意代码的装置,以下进行详细说明。
图8为本发明实施例提供的一种动态检测恶意代码装置的结构示意图。如图3中所示,该装置包括:接收模块11、运行模块12、待检测数据生成模块13、判断模块14和确定模块15,其中:
接收模块11,用于接收客户端上报的可疑文件;
运行模块12,用于运行所述可疑文件,采集所述可疑文件运行时对预先设置的API数据集中的API的调用数据;
待检测数据生成模块13,用于将所述可疑文件运行时对所述API数据集中的API的调用数据生成为待检测数据;
判断模块14,用于判断所述待检测数据与预先设置的对比样本库中的样本数据之间的相似度是否高于预定的相似度阈值;
确定模块15,用于在判断模块14判断出所述待检测数据与所述对比样本库中的任一样本数据之间的相似度高于预定的相似度阈值时,确定所述可疑文件包含恶意代码。
本实施例的装置,可以用于执行图1所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图9为图8中待检测数据生成模块13的结构示意图,如图9中所示,待检测数据生成模块13可以包括:
第一排序子模块131,用于将所述可疑文件运行时调用的API,按照调用时间的先后进行排序,得到包括API的唯一标识和排序序号对应关系的第一排序结果;所述第一排序结果中还记录有每个被调用API依赖的上一个API信息;
第一拓扑图生成子模块132,用于根据所述第一排序结果生成第一拓扑图;其中,按照排序序号,依次判断第一排序结果的每个API是否有依赖的上一个API,若没有,则将当前API置于第一拓扑图的第一层,若有,则在所述第一拓扑图中将当前API置于其依赖的上一个API的下一层;
第一矩阵生成子模块133,用于根据生成的第一拓扑图,生成所述可疑文件对应的第一矩阵;其中,所述第一矩阵的行数等于所述API数据集包含的API数量,所述第一矩阵的每一行对应所述API数据集中的同一个API,当所述API数据集中的一个API在所述第一拓扑图的第j层中出现时,该API在所述第一矩阵中对应行的第j列元素为1,当所述API数据集中的一个API未在所述第一拓扑图的第j层中出现时,该API在所述第一矩阵中对应行的第j列元素为0;j=1,...,n,n为所述第一拓扑图的层数;
待检测数据生成子模块134,用于将所述第一矩阵的每一行作为一个n维向量,得到包含m个n维向量的待检测数据;其中,m为所述API数据集包含的API数量。
本实施例的装置,可以用于执行图2所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图10为本发明实施例提供的另一种动态检测恶意代码装置的结构示意图。参看图10,本实施例的装置在图8所示装置结构的基础上,进一步地,还包括:采集模块16、样本数据生成模块17、存储模块18和聚类模块19,其中:
采集模块16,用于采集若干个恶意代码运行时对所述API数据集中的API的调用数据;
样本数据生成模块17,用于将采集模块16采集的每个恶意代码运行时对所述API数据集中的API的调用数据生成为一个样本数据;
存储模块18,用于将所述若干个恶意代码对应的样本数据组成为样本数据集并存储;
聚类模块19,用于对所述样本数据集进行聚类,得到对比样本库并存储在存储模块18中。
本实施例的装置,可以用于执行图5所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图11为图10中样本数据生成模块17的结构示意图,如图11中所示,样本数据生成模块17可以包括:
第二排序子模块171,用于将当前恶意代码运行时调用的API,按照调用时间的先后进行排序,得到包括API的唯一标识和排序序号对应关系的第二排序结果;所述第二排序结果中还记录有每个被调用API依赖的上一个API信息;
第二拓扑图生成子模块172,用于根据所述第二排序结果生成第二拓扑图;其中,按照排序序号,依次判断第二排序结果的每个API是否有依赖的上一个API,若没有,则将当前API置于第二拓扑图的第一层,若有,则在所述第二拓扑图中将当前API置于其依赖的上一个API的下一层;
第二矩阵生成子模块173,用于根据生成的第二拓扑图,生成当前恶意代码对应的第二矩阵;其中,所述第二矩阵的行数等于所述API数据集包含的API数量,所述第二矩阵的每一行对应所述API数据集中的同一个API,当所述API数据集中的一个API在所述第二拓扑图的第l层中出现时,该API在所述第二矩阵中对应行的第l列元素为1,当所述API数据集中的一个API未在所述第二拓扑图的第l层中出现时,该API在所述第二矩阵中对应行的第l列元素为0;l=1,...,q,q为所述第二拓扑图的层数;
样本数据生成子模块174,用于将所述第二矩阵的每一行作为一个q维向量,得到包含m个q维向量的一个样本数据,m为所述API数据集包含的API数量。
本实施例的装置,可以用于执行图6所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图12为图10中聚类模块19的结构示意图,如图12中所示,聚类模块19可以包括:
条件设置子模块191,用于设置聚类停止条件;
分类子模块192,用于将存储模块18存储的样本数据集分为训练集和测试集;
聚类子模块193,用于根据所述聚类停止条件,对所述训练集进行凝聚层次聚类,生成若干聚类簇;
对比数据集生成子模块194,用于提取当前聚类子模块193生成的每个聚类簇的中心点,构成对比数据集;
优化子模块195,用于通过所述测试集优化所述对比数据集,最终得到对比样本库并存储到存储模块18中。
本实施例的装置,可以用于执行图7所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图13为图12中优化子模块195的结构示意图,如图13中所示,优化子模块195可以包括:
均值计算单元1951,用于利用余弦相似性计算方法计算所述测试集与所述对比数据集中的数据的最高匹配相似度的平均值;
调节单元1952,用于调节所述聚类停止条件寻找所述最高匹配相似度的平均值的最优值。
图14为本发明实施例提供的另一种动态检测恶意代码装置的结构示意图。参看图14,本实施例的装置在图8所示装置结构的基础上,进一步地,判断模块14,可以包括:
相似度计算子模块141,用于将所述待检测数据与预先设置的对比样本库中的每个样本数据进行余弦相似度计算;
判断子模块142,用于判断计算得到的相似度值是否高于预定相似度阈值。
本发明实施例还提供一种电子设备。图15为本发明电子设备一个实施例的结构示意图,可以实现本发明图1或图5所示实施例的流程,如图15所示,上述电子设备可以包括:壳体21、处理器22、存储器23、电路板24和电源电路25,其中,电路板24安置在壳体21围成的空间内部,处理器22和存储器23设置在电路板24上;电源电路25,用于为上述电子设备的各个电路或器件供电;存储器23用于存储可执行程序代码;处理器22通过读取存储器23中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一实施例所述的动态检测恶意代码的方法。
该电子设备以多种形式存在,包括但不限于:
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低端手机等。
(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。
(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放模块(例如iPod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
(5)其他具有数据交互功能的电子设备。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
为了描述的方便,描述以上装置是以功能分为各种单元/模块分别描述。当然,在实施本发明时可以把各单元/模块的功能在同一个或多个软件和/或硬件中实现。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所述,仅为本发明的具体实施方式,但本发明的防护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的防护范围之内。因此,本发明的防护范围应以权利要求的防护范围为准。

Claims (15)

1.一种动态检测恶意代码的方法,其特征在于,用于服务器,包括:
接收客户端上报的可疑文件;
运行所述可疑文件,采集所述可疑文件运行时对预先设置的API数据集中的API的调用数据;
将所述可疑文件运行时对所述API数据集中的API的调用数据生成为待检测数据;
判断所述待检测数据与预先设置的对比样本库中的样本数据之间的相似度是否高于预定的相似度阈值;
若所述待检测数据与所述对比样本库中的任一样本数据之间的相似度,高于预定的相似度阈值,则确定所述可疑文件包含恶意代码。
2.根据权利要求1所述的动态检测恶意代码的方法,其特征在于,所述将所述可疑文件运行时对所述API数据集中的API的调用数据生成为待检测数据,包括:
将所述可疑文件运行时调用的API,按照调用时间的先后进行排序,得到包括API的唯一标识和排序序号对应关系的第一排序结果;所述第一排序结果中还记录有每个被调用API依赖的上一个API信息;
根据所述第一排序结果生成第一拓扑图;其中,按照排序序号,依次判断第一排序结果的每个API是否有依赖的上一个API,若没有,则将当前API置于第一拓扑图的第一层,若有,则在所述第一拓扑图中将当前API置于其依赖的上一个API的下一层;
根据生成的第一拓扑图,生成所述可疑文件对应的第一矩阵;其中,所述第一矩阵的行数等于所述API数据集包含的API数量,所述第一矩阵的每一行对应所述API数据集中的同一个API,当所述API数据集中的一个API在所述第一拓扑图的第j层中出现时,该API在所述第一矩阵中对应行的第j列元素为1,当所述API数据集中的一个API未在所述第一拓扑图的第j层中出现时,该API在所述第一矩阵中对应行的第j列元素为0;j=1,...,n,n为所述第一拓扑图的层数;
将所述第一矩阵的每一行作为一个n维向量,得到包含m个n维向量的待检测数据;其中,m为所述API数据集包含的API数量。
3.根据权利要求1所述的动态检测恶意代码的方法,其特征在于,在接收客户端上报的可疑文件之前,还包括:
采集若干个恶意代码运行时对所述API数据集中的API的调用数据;
将每个恶意代码运行时对所述API数据集中的API的调用数据生成为一个样本数据;
将所述若干个恶意代码对应的样本数据组成为样本数据集并存储;
对所述样本数据集进行聚类,得到对比样本库并存储。
4.根据权利要求3所述的动态检测恶意代码的方法,其特征在于,所述将每个恶意代码运行时对所述API数据集中的API的调用数据生成为一个样本数据,包括:
将当前恶意代码运行时调用的API,按照调用时间的先后进行排序,得到包括API的唯一标识和排序序号对应关系的第二排序结果;所述第二排序结果中还记录有每个被调用API依赖的上一个API信息;
根据所述第二排序结果生成第二拓扑图;其中,按照排序序号,依次判断第二排序结果的每个API是否有依赖的上一个API,若没有,则将当前API置于第二拓扑图的第一层,若有,则在所述第二拓扑图中将当前API置于其依赖的上一个API的下一层;
根据生成的第二拓扑图,生成当前恶意代码对应的第二矩阵;其中,所述第二矩阵的行数等于所述API数据集包含的API数量,所述第二矩阵的每一行对应所述API数据集中的同一个API,当所述API数据集中的一个API在所述第二拓扑图的第l层中出现时,该API在所述第二矩阵中对应行的第l列元素为1,当所述API数据集中的一个API未在所述第二拓扑图的第l层中出现时,该API在所述第二矩阵中对应行的第l列元素为0;l=1,...,q,q为所述第二拓扑图的层数;
将所述第二矩阵的每一行作为一个q维向量,得到包含m个q维向量的一个样本数据;其中,m为所述API数据集包含的API数量。
5.根据权利要求3所述的动态检测恶意代码的方法,其特征在于,所述对所述样本数据集进行聚类,得到对比样本库并存储,包括:
设置聚类停止条件;
将所述样本数据集分为训练集和测试集;
根据所述聚类停止条件,对所述训练集进行凝聚层次聚类,生成若干聚类簇;
提取当前生成的每个聚类簇的中心点,构成对比数据集;
通过所述测试集优化所述对比数据集,最终得到对比样本库并存储。
6.根据权利要求5所述的动态检测恶意代码的方法,其特征在于,所述通过所述测试集优化所述对比数据集,包括:
利用余弦相似性计算方法计算所述测试集与所述对比数据集中的数据的最高匹配相似度的平均值;
调节所述聚类停止条件寻找所述最高匹配相似度的平均值的最优值。
7.根据权利要求1-6任一项所述的动态检测恶意代码的方法,其特征在于,所述判断所述待检测数据与预先设置的对比样本库中的样本数据之间的相似度是否高于预定的相似度阈值,包括:
将所述待检测数据与预先设置的对比样本库中的每个样本数据进行余弦相似度计算;
判断计算得到的相似度值是否高于预定相似度阈值。
8.一种动态检测恶意代码的装置,其特征在于,用于服务器,包括:
接收模块,用于接收客户端上报的可疑文件;
运行模块,用于运行所述可疑文件,采集所述可疑文件运行时对预先设置的API数据集中的API的调用数据;
待检测数据生成模块,用于将所述可疑文件运行时对所述API数据集中的API的调用数据生成为待检测数据;
判断模块,用于判断所述待检测数据与预先设置的对比样本库中的样本数据之间的相似度是否高于预定的相似度阈值;
确定模块,用于在所述判断模块判断出所述待检测数据与所述对比样本库中的任一样本数据之间的相似度高于预定的相似度阈值时,确定所述可疑文件包含恶意代码。
9.根据权利要求8所述的动态检测恶意代码的装置,其特征在于,所述待检测数据生成模块,包括:
第一排序子模块,用于将所述可疑文件运行时调用的API,按照调用时间的先后进行排序,得到包括API的唯一标识和排序序号对应关系的第一排序结果;所述第一排序结果中还记录有每个被调用API依赖的上一个API信息;
第一拓扑图生成子模块,用于根据所述第一排序结果生成第一拓扑图;其中,按照排序序号,依次判断第一排序结果的每个API是否有依赖的上一个API,若没有,则将当前API置于第一拓扑图的第一层,若有,则在所述第一拓扑图中将当前API置于其依赖的上一个API的下一层;
第一矩阵生成子模块,用于根据生成的第一拓扑图,生成所述可疑文件对应的第一矩阵;其中,所述第一矩阵的行数等于所述API数据集包含的API数量,所述第一矩阵的每一行对应所述API数据集中的同一个API,当所述API数据集中的一个API在所述第一拓扑图的第j层中出现时,该API在所述第一矩阵中对应行的第j列元素为1,当所述API数据集中的一个API未在所述第一拓扑图的第j层中出现时,该API在所述第一矩阵中对应行的第j列元素为0;j=1,...,n,n为所述第一拓扑图的层数;
待检测数据生成子模块,用于将所述第一矩阵的每一行作为一个n维向量,得到包含m个n维向量的待检测数据;其中,m为所述API数据集包含的API数量。
10.根据权利要求8所述的动态检测恶意代码的装置,其特征在于,所述装置还包括:
采集模块,用于采集若干个恶意代码运行时对所述API数据集中的API的调用数据;
样本数据生成模块,用于将所述采集模块采集的每个恶意代码运行时对所述API数据集中的API的调用数据生成为一个样本数据;
存储模块,用于将所述若干个恶意代码对应的样本数据组成为样本数据集并存储;
聚类模块,用于对所述样本数据集进行聚类,得到对比样本库并存储在所述存储模块中。
11.根据权利要求10所述的动态检测恶意代码的装置,其特征在于,所述样本数据生成模块,包括:
第二排序子模块,用于将当前恶意代码运行时调用的API,按照调用时间的先后进行排序,得到包括API的唯一标识和排序序号对应关系的第二排序结果;所述第二排序结果中还记录有每个被调用API依赖的上一个API信息;
第二拓扑图生成子模块,用于根据所述第二排序结果生成第二拓扑图;其中,按照排序序号,依次判断第二排序结果的每个API是否有依赖的上一个API,若没有,则将当前API置于第二拓扑图的第一层,若有,则在所述第二拓扑图中将当前API置于其依赖的上一个API的下一层;
第二矩阵生成子模块,用于根据生成的第二拓扑图,生成当前恶意代码对应的第二矩阵;其中,所述第二矩阵的行数等于所述API数据集包含的API数量,所述第二矩阵的每一行对应所述API数据集中的同一个API,当所述API数据集中的一个API在所述第二拓扑图的第l层中出现时,该API在所述第二矩阵中对应行的第l列元素为1,当所述API数据集中的一个API未在所述第二拓扑图的第l层中出现时,该API在所述第二矩阵中对应行的第l列元素为0;l=1,...,q,q为所述第二拓扑图的层数;
样本数据生成子模块,用于将所述第二矩阵的每一行作为一个q维向量,得到包含m个q维向量的一个样本数据;其中,m为所述API数据集包含的API数量。
12.根据权利要求10所述的动态检测恶意代码的装置,其特征在于,所述聚类模块,包括:
条件设置子模块,用于设置聚类停止条件;
分类子模块,用于将所述样本数据集分为训练集和测试集;
聚类子模块,用于根据所述聚类停止条件,对所述训练集进行凝聚层次聚类,生成若干聚类簇;
对比数据集生成子模块,用于提取当前生成的每个聚类簇的中心点,构成对比数据集;
优化子模块,用于通过所述测试集优化所述对比数据集,最终得到对比样本库并存储到所述存储模块中。
13.根据权利要求12所述的动态检测恶意代码的装置,其特征在于,所述优化子模块,包括:
均值计算单元,用于利用余弦相似性计算方法计算所述测试集与所述对比数据集中的数据的最高匹配相似度的平均值;
调节单元,用于调节所述聚类停止条件寻找所述最高匹配相似度的平均值的最优值。
14.根据权利要求8-13任一项所述的动态检测恶意代码的装置,其特征在于,所述判断模块,包括:
相似度计算子模块,用于将所述待检测数据与预先设置的对比样本库中的每个样本数据进行余弦相似度计算;
判断子模块,用于判断计算得到的相似度值是否高于预定相似度阈值。
15.一种电子设备,其特征在于,所述电子设备包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述电子设备的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一权利要求1-7所述的动态检测恶意代码的方法。
CN201811507032.5A 2018-12-11 2018-12-11 一种动态检测恶意代码的方法、装置及电子设备 Pending CN110866249A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811507032.5A CN110866249A (zh) 2018-12-11 2018-12-11 一种动态检测恶意代码的方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811507032.5A CN110866249A (zh) 2018-12-11 2018-12-11 一种动态检测恶意代码的方法、装置及电子设备

Publications (1)

Publication Number Publication Date
CN110866249A true CN110866249A (zh) 2020-03-06

Family

ID=69651676

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811507032.5A Pending CN110866249A (zh) 2018-12-11 2018-12-11 一种动态检测恶意代码的方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN110866249A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112468515A (zh) * 2020-12-15 2021-03-09 北京京航计算通讯研究所 基于多源信息分析的网络攻击监测方法
CN113343219A (zh) * 2021-05-31 2021-09-03 烟台中科网络技术研究所 一种自动高效的高风险移动应用程序检测方法
CN116896478A (zh) * 2023-08-29 2023-10-17 江南信安(北京)科技有限公司 一种用于对僵尸主机进行检测的方法及系统
CN116956296A (zh) * 2023-09-20 2023-10-27 北京安天网络安全技术有限公司 一种文件的动态检测方法、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103685251A (zh) * 2013-12-04 2014-03-26 电子科技大学 一种面向移动互联网的Android恶意软件检测平台
CN105975856A (zh) * 2015-09-25 2016-09-28 武汉安天信息技术有限责任公司 一种移动终端病毒动态检测方法及系统
CN107562618A (zh) * 2017-08-07 2018-01-09 北京奇安信科技有限公司 一种shellcode的检测方法和装置
CN108932430A (zh) * 2018-07-02 2018-12-04 北京大学 一种基于软件基因技术的恶意软件检测方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103685251A (zh) * 2013-12-04 2014-03-26 电子科技大学 一种面向移动互联网的Android恶意软件检测平台
CN105975856A (zh) * 2015-09-25 2016-09-28 武汉安天信息技术有限责任公司 一种移动终端病毒动态检测方法及系统
CN107562618A (zh) * 2017-08-07 2018-01-09 北京奇安信科技有限公司 一种shellcode的检测方法和装置
CN108932430A (zh) * 2018-07-02 2018-12-04 北京大学 一种基于软件基因技术的恶意软件检测方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112468515A (zh) * 2020-12-15 2021-03-09 北京京航计算通讯研究所 基于多源信息分析的网络攻击监测方法
CN113343219A (zh) * 2021-05-31 2021-09-03 烟台中科网络技术研究所 一种自动高效的高风险移动应用程序检测方法
CN113343219B (zh) * 2021-05-31 2023-03-07 烟台中科网络技术研究所 一种自动高效的高风险移动应用程序检测方法
CN116896478A (zh) * 2023-08-29 2023-10-17 江南信安(北京)科技有限公司 一种用于对僵尸主机进行检测的方法及系统
CN116896478B (zh) * 2023-08-29 2024-04-02 江南信安(北京)科技有限公司 一种用于对僵尸主机进行检测的方法及系统
CN116956296A (zh) * 2023-09-20 2023-10-27 北京安天网络安全技术有限公司 一种文件的动态检测方法、电子设备及存储介质
CN116956296B (zh) * 2023-09-20 2023-12-01 北京安天网络安全技术有限公司 一种文件的动态检测方法、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN110866249A (zh) 一种动态检测恶意代码的方法、装置及电子设备
CN112494952A (zh) 目标游戏用户的检测方法、装置及设备
US20160314484A1 (en) Method and system for mining churn factor causing user churn for network application
CN110166344B (zh) 一种身份标识识别方法、装置以及相关设备
CN112087487B (zh) 模型训练任务的调度方法、装置、电子设备及存储介质
CN111701247B (zh) 用于确定统一账号的方法和设备
CN111090807A (zh) 一种基于知识图谱的用户识别方法及装置
CN108304432A (zh) 信息推送处理方法、信息推送处理装置及存储介质
CN115830649A (zh) 一种网络资产指纹特征的识别方法、装置及电子设备
CN114489561A (zh) 音频音量智能调节方法、装置、电子设备及存储介质
CN115174250A (zh) 网络资产安全评估方法、装置、电子设备及存储介质
CN113254918B (zh) 信息处理方法、电子设备和计算机可读存储介质
CN114268839A (zh) 视频发布账户筛选方法、装置、电子设备及存储介质
CN114490923A (zh) 相似文本匹配模型的训练方法、装置、设备及存储介质
CN111310072B (zh) 关键词提取方法、装置和计算机可读存储介质
CN116707859A (zh) 特征规则提取方法和装置、网络入侵检测方法和装置
CN108804917B (zh) 一种文件检测方法、装置、电子设备及存储介质
CN114610758A (zh) 基于数据仓库的数据处理方法、装置、可读介质及设备
CN113254919A (zh) 异常设备识别方法、电子设备和计算机可读存储介质
CN114338102A (zh) 安全检测方法、装置、电子设备及存储介质
CN114024912A (zh) 一种基于改造chameleon算法的网络流量应用识别分析方法及系统
CN113901261A (zh) 异常对象集群的定位方法和装置、电子设备和存储介质
CN110874310B (zh) 一种终端行为监测方法、装置、电子设备及存储介质
CN111346372A (zh) 一种基于数据备份的游戏登录加载方法、装置及服务器
CN110704744A (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: 20200306