一种融合API调用与威胁情报IoC的恶意软件检测方法

文档序号:35980909发布日期:2023-11-10 00:51阅读:61来源:国知局
一种融合API调用与威胁情报IoC的恶意软件检测方法

本发明涉及深度学习与网络安全技术,具体涉及一种融合api调用与威胁情报ioc的恶意软件检测方法。


背景技术:

1、随着互联网技术的不断发展,恶意软件的种类也从早期的计算机病毒到现在的勒索软件、木马、蠕虫等,同时恶意软件的传播方式也在不断翻新。恶意软件在未明确提示用户或未经用户许可的情况下,通过非法手段获得用户信息,严重侵犯用户合法权益,甚至将为用户及他人带来巨大的经济或其他形式的利益损失。因此,如何保护计算机系统和数据不因偶然或恶意的原因而遭到破坏、更改或泄露,如何降低计病毒感染算机的机会等信息安全技术,是当今网络安全领域的研究重点。

2、失陷指标(indicatorofcompromise,ioc)作为网络威胁的行为特征描述,不仅包括特征码等静态信息,而且包含恶意软件在受害者电脑上采取的行为等动态特征(如修改注册表的键值、通信的服务器地址等)。这些信息揭示了攻击者所采用的攻击策略,不仅能够用来匹配现有的网络威胁,还可以用于发现变种或同类的网络攻击事件,是极其重要的网络威胁情报。

3、目前恶意软件检测方法按照是否需要运行软件分为静态分析检测和动态分析检测两种方式。静态检测方法是指在不运行软件的前提下,针对恶意软件的二进制程序样本分析,通过一系列手段提取特征进行检测,但恶意软件会利用代码混淆、数据隐藏等技术来躲避检测。而动态分析方法可以解决静态检测方法的局限性。动态检测方法通过在一个隔离的环境中运行恶意软件,通过获取软件运行过程中的行为特征,如api调用序列、网络流量等,利用相对稳定的行为特征来分析恶意软件的行为(api即applicationprograminterface)。恶意软件在动态执行时能够自动地脱壳、解密,运行实际的动作行为。相比静态特征提取,动态特征提取不易受到各种代码混淆方案的影响,能够发现具有相似恶意行为的已知恶意软件变种或未知恶意软件。

4、虽然基于api调用序列在恶意软件检测的准确率方面显示出了良好的性能,但现有的基于api序列的检测大多只使用了api的名称所构成的序列,忽略了api运行时所传递的参数等关键信息。现有研究表明api运行时所传递的参数对恶意软件的检测很有价值,将参数与api调用相结合,可以一定程度上提高软件检测的准确率。因此,利用api参数与ioc结合进行分析,以弥补现有恶意软件检测的不足。


技术实现思路

1、本发明的目的在于解决现有的基于api序列的检测忽略了api运行时所传递的参数等关键信息的问题。为了达到上述目的,本发明提供了一种融合api调用与威胁情报ioc的恶意软件检测方法,所述融合api调用与威胁情报ioc的恶意软件检测方法,包括:

2、爬取威胁情报,构建ioc数据库;

3、给定一个软件样本,采用沙箱对软件样本进行模拟运行,得到软件样本运行过程中的api调用序列,其中,api调用序列由多个api调用组成,api调用包括api名称和api参数列表,多个api调用的api名称构成api名称序列;

4、根据api名称序列得到每个api名称的表征向量eki,其中,eki表示第k个软件的第i个api调用的api名称的表征向量;

5、基于正则表达式对api参数列表中的每个api参数进行匹配,得到匹配结果,根据匹配结果在ioc数据库中查找,根据查找结果设置特征,得到单个api参数的表征向量;

6、根据一个api调用中所有的api参数的表征向量,得到api参数列表的表征向量fki,其中,fki表示第k个软件的第i个api调用的api参数列表的表征向量;

7、将表征向量eki和表征向量fki拼接得到单个api调用的表征向量xki,其中,xki表示第k个软件的第i个api调用的表征向量;

8、基于api调用的表征向量xki训练bilstm网络得到恶意软件检测模型;

9、利用训练好的恶意软件检测模型检测实时软件。

10、进一步的,所述爬取威胁情报,构建ioc数据库,包括:

11、爬取威胁情报,存入威胁情报数据库;

12、根据不同类型的ioc构造出相应的正则表达式;

13、扫描威胁情报数据库,基于构造好的正则表达式进行文本匹配,将匹配成功的字符串根据openioc的格式进行标准化,并存入ioc数据库。

14、进一步的,所述ioc包括ip地址、url、文件路径、文件名和域名五种类型。

15、进一步的,所述根据api名称序列得到每个api名称的表征向量eki,包括:采用word2vec算法对api名称序列进行学习,得到每个api名称的d维的表征向量eki。

16、进一步的,所述根据匹配结果在ioc数据库中查找,根据查找结果设置特征,得到单个api参数的表征向量,包括:

17、如果匹配结果为ip地址,则在ioc数据库中精确查找,找到则设置特征fkij1=1,反之设置fkij1=0,其中,fkij1表示第k个软件的第i个api调用的第j个api参数的匹配结果为ip地址的特征;

18、如果匹配结果包含url,则基于编辑距离算法在ioc数据库中根据pkij查找相似度最高的url类型的ioc,记为url_simkij,并设置特征fkij2=url_simkij,并且从url中提取域名,并判断匹配结果中是否包含域名,如果是,则根据匹配结果中包含的域名或url中提取的域名,在ioc数据库中精确查找,找到则设置特征fkij3=1,反之设置fkij3=0,如果否,则根据url中提取的域名在ioc数据库中精确查找,找到则设置特征fkij3=1,反之设置fkij3=0;

19、如果匹配结果为域名,则在ioc数据库中根据域名精确查找,找到则设置特征fkij3=1,反之设置fkij3=0,其中,fkij3表示第k个软件的第i个api调用的第j个api参数包含域名的特征;

20、如果匹配结果为文件路径,则基于编辑距离算法在ioc数据库中查找相似度最高的文件路径类型的ioc,记为file_simkij,并设置特征fkij4=file_simkij,其中,fkij4表示第k个软件的第i个api调用的第j个api参数的匹配结果为文件路径的特征;

21、如果匹配结果为文件名,则基于编辑距离算法在ioc数据库中查找相似度最高的文件名类型的ioc,记为filename_simkij,并设置特征fkij5=filename_simkij,其中,fkij5表示第k个软件的第i个api调用的第j个api参数的匹配结果为文件名的特征;

22、如果匹配结果为无匹配,则设置fkij1=fkij2=fkij3=fkij4=fkij5=0;

23、得到单个api参数的表征向量为<fkij1,fkij2,fkij3,fkij4,fkij5>。

24、进一步的,所述根据一个api调用中所有的api参数的表征向量,得到api参数列表的表征向量fki,包括:

25、取每种类型的特征中的最大值,得到api参数列表的表征向量,用公式表示如下:

26、

27、其中,m表示第i个api调用的api参数的个数。

28、本发明与现有技术相比,其显著优点为:1、将api参数引入到恶意软件的检测,与传统api序列相比,结合api参数的api序列拥有更丰富的信息。2、api参数数量众多,类型多样,ioc的引入可以简化api参数,使模型学习到对检测结果有用的api参数,提高检测的准确率。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1