一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

供应链攻击检测方法、装置以及相关设备与流程

2022-06-01 17:45:45 来源:中国专利 TAG:


1.本公开涉及计算机网络技术领域,尤其涉及一种供应链攻击检测方法及装置、电子设备和计算机可读存储介质。


背景技术:

2.供应链攻击,也称价值链攻击或第三方攻击,发生在有攻击者通过可访问企业系统和数据的外部渠道(如开源依赖库),潜入内部系统的时候。这一攻击方式,在过去几年里极大地改变了典型的企业攻击方式,因为能够接触到敏感数据的供应商和服务提供商的数量,要比以往任何时候都要多。供应链攻击带来了前所未有的高风险,由于新型攻击方式的出现,公众对威胁的认识不断提高,监管机构也加强了监管力度。同时,攻击者拥有比以往更多的资源和工具。在这一背景下企业安全将面临重重危机。
3.因此,一种针对供应链攻击的检测方法对于维护企业数据安全非常重要。
4.需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解。


技术实现要素:

5.本公开实施例提供一种供应链攻击检测方法及装置、电子设备和计算机可读存储介质,能够在目标安装包中确定恶意安装包,以实现对供应链攻击的检测。
6.本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
7.本公开实施例提出一种供应链攻击检测方法,该方法包括:获取目标安装包;根据目标行为场景下的目标静态特征对所述目标安装包进行扫描,从所述目标安装包中获取第一候选恶意代码;根据恶意代码基线特征在所述第一候选恶意代码中确定可疑代码,所述恶意代码基线特征为已知的恶意代码特征;从所述目标安装包中确定所述可疑代码所在的可疑安装包;向所述可疑安装包注入恶意代码检测钩子函数,并模拟运行所述可疑安装包;在所述可疑安装包的模拟运行过程中,通过所述恶意代码检测钩子函数从所述可疑安装包中获取第二候选恶意代码;根据所述恶意代码基线特征在所述第二候选恶意代码中确定第一恶意代码;确定所述第一恶意代码所在的第一恶意安装包。
8.公开实施例提出一种供应链攻击检测装置,所述供应链攻击检测装置包括:安装包获取模块、第一候选恶意代码确定模块、可疑代码确定模块、可疑安装包确定模块、模拟运行模块、第二候选恶意代码确定模块、第一恶意代码确定模块以及第一恶意安装包确定模块。
9.其中,所述安装包获取模块可以配置为获取目标安装包。所述第一候选恶意代码确定模块可以配置为根据目标行为场景下的目标静态特征对所述目标安装包进行扫描,从所述目标安装包中获取第一候选恶意代码。所述可疑代码确定模块可以配置为根据恶意代码基线特征在所述第一候选恶意代码中确定可疑代码,所述恶意代码基线特征为已知的恶
意代码特征。所述可疑安装包确定模块可以配置为从所述目标安装包中确定所述可疑代码所在的可疑安装包。所述模拟运行模块可以配置为向所述可疑安装包注入恶意代码检测钩子函数,并模拟运行所述可疑安装包。所述第二候选恶意代码确定模块可以配置为在所述可疑安装包的模拟运行过程中,通过所述恶意代码检测钩子函数从所述可疑安装包中获取第二候选恶意代码。所述第一恶意代码确定模块可以配置为根据所述恶意代码基线特征在所述第二候选恶意代码中确定第一恶意代码。所述第一恶意安装包确定模块可以配置为确定所述第一恶意代码所在的第一恶意安装包。
10.在一些实施例中,所述目标行为场景包括目标恶意操作的行为场景,所述目标静态特征包括恶意操作可疑特征;其中,所述第一候选恶意代码确定模块可以包括:安装包扫描子模块、恶意操作可疑代码确定子模块以及确定第一候选恶意代码确定子模块。
11.其中,所述安装包扫描子模块可以配置为对所述目标安装包进行扫描;所述恶意操作可疑代码确定子模块可以配置为在所述目标安装包中确定包括所述恶意操作可疑特征的代码,以作为恶意操作可疑代码;所述确定第一候选恶意代码确定子模块可以配置为根据所述恶意操作可疑代码确定所述第一候选恶意代码。
12.在一些实施例中,所述目标行为场景包括外连行为场景,所述目标静态特征包括目标外连特征;其中,所述第一候选恶意代码确定模块可以包括:第一扫描子模块、外连代码确定子模块以及候选恶意代码确定第一子模块。
13.其中,所述第一扫描子模块可以配置为对所述目标安装包进行扫描。所述外连代码确定子模块可以配置为在所述目标安装包中确定包括所述目标外连特征的代码,以作为外连代码。所述候选恶意代码确定第一子模块可以配置为根据所述外连代码确定所述第一候选恶意代码。
14.在一些实施例中,所述候选恶意代码确定第一子模块可以包括:目标场景参数获取单元以及第一候选恶意代码确定单元。
15.其中,所述目标场景参数获取单元可以配置为获取所述目标行为场景的目标场景参数。所述第一候选恶意代码确定单元可以配置为根据所述目标场景参数和所述外连代码确定所述第一候选恶意代码。
16.在一些实施例中,所述目标安装包可以包括目标文件;其中,所述第一候选恶意代码确定单元可以包括:第一值处理子单元、第二值处理子单元以及第三值处理子单元。
17.其中,所述第一值处理子单元可以配置为若所述目标场景参数为第一值,则将所述外连代码确定为所述第一候选恶意代码。所述第二值处理子单元可以配置为若所述目标场景参数为第二值,则将所述外连代码及其上、下所述目标场景参数行代码,作为所述第一候选恶意代码。所述第三值处理子单元可以配置为若所述目标场景代码为第三值,则根据所述外连代码所在的目标文件确定所述第一候选恶意代码。
18.在一些实施例中,所述目标行为场景包括混淆行为场景,所述目标静态特征包括目标混淆特征;其中,所述第一候选恶意代码确定模块可以包括:第二扫描子模块、混淆代码确定子模块以及候选恶意代码确定第二子模块。
19.其中,所述第二扫描子模块可以配置为对所述目标安装包进行扫描。所述混淆代码确定子模块可以配置为在所述目标安装包中确定包括所述目标混淆特征的代码,以作为混淆代码。所述候选恶意代码确定第二子模块可以配置为根据所述混淆代码确定所述第一
候选恶意代码。
20.在一些实施例中,所述目标行为场景包括系统命令执行场景,所述目标静态特征包括目标系统命令执行特征;其中,所述第一候选恶意代码确定模块可以包括:第三扫描子模块、系统命令执行代码确定子模块以及候选恶意代码确定第三子模块。
21.其中,所述第三扫描子模块可以配置为对所述目标安装包进行扫描。所述系统命令执行代码确定子模块可以配置为在所述目标安装包中确定包括所述目标系统命令执行特征的代码,以作为系统命令执行代码。所述候选恶意代码确定第三子模块可以配置为根据所述系统命令执行代码确定所述第一候选恶意代码。
22.在一些实施例中,所述系统命令执行代码确定子模块可以包括:目标语言确定单元、目标官方库确定单元、同类系统命令执行特征确定单元以及目标系统命令执行特征确定单元。
23.其中,所述目标语言确定单元可以配置为确定所述目标安装包的目标语言。所述目标官方库确定单元可以配置为链接所述目标语言的目标官方库。所述同类系统命令执行特征确定单元可以配置为根据所述目标官方库对所述目标系统命令执行特征进行补充。所述目标系统命令执行特征确定单元可以配置为根据补充后的所述目标系统命令执行特征,在所述目标安装包中确定所述目标系统命令执行特征的代码。
24.在一些实施例中,所述目标静态特征包括目标黑网址特征、目标黑ip特征、目标黑域名特征;其中,所述第一候选恶意代码确定模块可以包括:第四扫描子模块、黑地址代码确定子模块以及候选恶意代码确定第三子模块。
25.其中,所述第四扫描子模块可以配置为对所述目标安装包进行扫描。所述黑地址代码确定子模块可以配置为在所述目标安装包中确定包括所述目标黑网址特征、目标黑ip特征、目标黑域名特征的代码,以作为黑地址代码。所述候选恶意代码确定第三子模块可以配置为根据所述黑地址代码确定所述第一候选恶意代码。
26.在一些实施例中,所述第一候选恶意代码包括第一目标候选恶意代码和第二目标候选恶意代码,所述第一目标候选恶意代码和第二目标候选恶意代码与同一个目标静态特征对应;其中,所述第一候选恶意代码确定模块可以还包括:第一哈希值获取子模块、第二哈希值获取子模块、目标距离确定子模块、目标距离阈值获取子模块以及去重处理子模块。
27.其中,所述第一哈希值获取子模块可以配置为对所述第一目标候选恶意代码进行哈希编码处理,生成所述第一目标候选恶意代码的第一哈希值。所述第二哈希值获取子模块可以配置为对所述第二目标候选恶意代码进行哈希编码处理,生成所述第二目标候选恶意代码的第二哈希值。所述目标距离确定子模块可以配置为确定所述第一哈希值和所述第二哈希值之间的目标距离。所述目标距离阈值获取子模块可以配置为获取所述目标行为场景的目标场景参数并根据目标场景参数确定目标距离阈值。所述去重处理子模块可以配置为若所述第一哈希值和所述第二哈希值之间的目标距离小于所述目标距离阈值,则对所述第一目标候选恶意代码和第二目标候选恶意代码进行去重处理。
28.在一些实施例中,所述恶意代码检测钩子函数包括底层恶意代码检测钩子函数;其中,所述模拟运行模块可以包括:脚本沙盒运行子模块,所述第二候选恶意代码确定模块可以包括底层恶意代码检测子模块。
29.其中,所述脚本沙盒运转子模块可以配置为在目标脚本沙盒中模拟运行所述可疑
安装包,并向所述可疑安装包注入所述底层恶意代码检测钩子函数。所述底层恶意代码检测子模块可以配置为通过所述底层恶意代码检测钩子函数,在所述可疑安装包的模拟运行过程中根据所述目标静态特征确定所述可疑代码是否为所述第二候选恶意代码。在一些实施例中,所述可疑代码确定模块可以包括:第二安装包获取子模块和显示子模块。
30.其中,所述第二安装包获取子模块可以配置为根据所述恶意代码基线特征在所述第一候选恶意代码中确定第二恶意代码以及所述第二恶意代码所在的第二恶意安装包。所述显示子模块可以配置为响应于目标对象针对所述第二恶意安装包的安装请求,根据所述第二恶意代码以及所述第二恶意安装包显示目标告警工单,所述目标告警工单包括所述第二恶意代码以及所述第二恶意代码所在的行为场景代码段。
31.本公开实施例提出一种电子设备,该电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述任一项所述的供应链攻击检测方法。
32.本公开实施例提出一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如上述任一项所述的供应链攻击检测方法。
33.本公开实施例提出一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述供应链攻击检测方法。
34.本公开实施例提供的供应链攻击检测方法、装置及电子设备和计算机可读存储介质,一方面通过目标行为场景下的目标静态特征对目标安装包进行静态扫描,以从目标安装包中确定了可疑安装包;另一方面,通过恶意代码检测钩子函数对可疑安装包进行动态扫描以从可疑安装包中确定恶意安装包。上述方法通过静态扫描和动态扫描的结合,可以在目标安装包中准确地检测出恶意安装包,提高了检测效果的准确性,并且有效降低了检测结果的误报率。
35.应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。
附图说明
36.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。下面描述的附图仅仅是本公开的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
37.图1示出了应用于本公开实施例的供应链攻击方法或供应链攻击装置的示例性系统架构的示意图。
38.图2是根据一示例性实施例示出的一种应用于供应链攻击装置的计算机系统的结构示意图。
39.图3是根据一示例性实施例示出的一种供应链攻击检测方法的流程图。
40.图4是根据一示例性实施例示出的一种运行日志示意图。
41.图5是根据一示例性实施例示出的一种代码片段示意图。
42.图6是根据一示例性实施例示出的一种预警工单示意图。
43.图7是图3中步骤s2在一示例性实施例中的流程图。
44.图8是图7中步骤s212在一示例实施例中的流程图。
45.图9是图3中步骤s2在一示例性实施例中的流程图。
46.图10是图3中步骤s2在一示例性实施例中的流程图。
47.图11是图3中步骤s2在一示例性实施例中的流程图。
48.图12是图3中步骤s2在一示例性实施例中的流程图。
49.图13是图3中步骤s5和步骤s6在一示例性实施例中的流程图。
50.图14是根据一示例性实施例示出的一种供应链攻击检测的结构示意图。
51.图15是根据一示例性实施例示出的一种供应给攻击检测的应用场景示意图。
52.图16是根据一示例性实施例示出的一种供应链攻击检测装置的框图。
具体实施方式
53.现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本公开将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
54.本公开所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本公开的各方面。
55.附图仅为本公开的示意性图解,图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
56.附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和步骤,也不是必须按所描述的顺序执行。例如,有的步骤还可以分解,而有的步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
57.本说明书中,用语“一个”、“一”、“该”、“所述”和“至少一个”用以表示存在一个或多个要素/组成部分/等;用语“包含”、“包括”和“具有”用以表示开放式的包括在内的意思并且是指除了列出的要素/组成部分/等之外还可存在另外的要素/组成部分/等;用语“第一”、“第二”和“第三”等仅作为标记使用,不是对其对象的数量限制。
58.下面结合附图对本公开示例实施方式进行详细说明。
59.图1示出了可以应用于本公开实施例的供应链攻击检测方法或供应链攻击检测装置的示例性系统架构的示意图。
60.如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以
包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
61.用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。其中,终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机、台式计算机、可穿戴设备、虚拟现实设备、智能家居等等。
62.服务器105可以是提供各种服务的服务器,例如对用户利用终端设备101、102、103所进行操作的装置提供支持的后台管理服务器。后台管理服务器可以对接收到的请求等数据进行分析等处理,并将处理结果反馈给终端设备。
63.服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn、以及大数据和人工智能平台等基础云计算服务的云服务器等,本公开对此不做限制。
64.服务器105可例如获取目标安装包;服务器105可例如根据目标行为场景下的目标静态特征对所述目标安装包进行扫描,从所述目标安装包中获取第一候选恶意代码;服务器105可例如根据恶意代码基线特征在所述第一候选恶意代码中确定可疑代码,所述恶意代码基线特征为已知的恶意代码特征;服务器105可例如从所述目标安装包中确定所述可疑代码所在的可疑安装包;服务器105可例如向所述可疑安装包注入恶意代码检测钩子函数,并模拟运行所述可疑安装包;服务器105可例如在所述可疑安装包的模拟运行过程中,通过所述恶意代码检测钩子函数从所述可疑安装包中获取第二候选恶意代码;服务器105可例如根据所述恶意代码基线特征在所述第二候选恶意代码中确定第一恶意代码;服务器105可例如确定所述第一恶意代码所在的第一恶意安装包。
65.应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的,服务器105可以是一个实体的服务器,还可以为多个服务器组成,根据实际需要,可以具有任意数目的终端设备、网络和服务器。
66.下面参考图2,其示出了适于用来实现本技术实施例的终端设备的计算机系统200的结构示意图。图2示出的终端设备仅仅是一个示例,不应对本技术实施例的功能和使用范围带来任何限制。
67.如图2所示,计算机系统200包括中央处理单元(cpu)201,其可以根据存储在只读存储器(rom)202中的程序或者从储存部分208加载到随机访问存储器(ram)203中的程序而执行各种适当的动作和处理。在ram 203中,还存储有系统200操作所需的各种程序和数据。cpu 201、rom 202以及ram 203通过总线204彼此相连。输入/输出(i/o)接口205也连接至总线204。
68.以下部件连接至i/o接口205:包括键盘、鼠标等的输入部分206;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分207;包括硬盘等的储存部分208;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分209。通信部分209经由诸如因特网的网络执行通信处理。驱动器210也根据需要连接至i/o接口205。可拆卸介质211,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器210上,以便于从其上读出的计算机程序根据需要被安装入储存部分208。
69.特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机
软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分209从网络上被下载和安装,和/或从可拆卸介质211被安装。在该计算机程序被中央处理单元(cpu)201执行时,执行本技术的系统中限定的上述功能。
70.需要说明的是,本技术所示的计算机可读存储介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本技术中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本技术中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读存储介质,该计算机可读存储介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、rf等等,或者上述的任意合适的组合。
71.附图中的流程图和框图,图示了按照本技术各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
72.描述于本技术实施例中所涉及到的模块和/或子模块和/或单元和/或子单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块和/或子模块和/或单元和/或子单元也可以设置在处理器中,例如,可以描述为:一种处理器包括发送单元、获取单元、确定单元和第一处理单元。其中,这些模块和/或子模块和/或单元和/或子单元的名称在某种情况下并不构成对该模块和/或子模块和/或单元和/或子单元本身的限定。
73.作为另一方面,本技术还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备可实现功能包括:获取目标安装包;根据目标行为场景下的目标静态特征对所述目标安装包进行扫描,从所述目标安装包中获取第一候选恶意代码;根据恶意
代码基线特征在所述第一候选恶意代码中确定可疑代码,所述恶意代码基线特征为已知的恶意代码特征;从所述目标安装包中确定所述可疑代码所在的可疑安装包;向所述可疑安装包注入恶意代码检测钩子函数,并模拟运行所述可疑安装包;在所述可疑安装包的模拟运行过程中,通过所述恶意代码检测钩子函数从所述可疑安装包中获取第二候选恶意代码;根据所述恶意代码基线特征在所述第二候选恶意代码中确定第一恶意代码;从所述可疑安装包中确定所述第一恶意代码所在的第一恶意安装包。
74.图3是根据一示例性实施例示出的一种供应链攻击检测方法的流程图。本公开实施例所提供的方法可以由任意具备计算处理能力的电子设备来执行,例如该方法可以由上述图1实施例中的服务器或终端设备来执行,也可以由服务器和终端设备共同执行,在下面的实施例中,以服务器为执行主体为例进行举例说明,但本公开并不限定于此。
75.参照图3,本公开实施例提供的供应链攻击检测方法可以包括以下步骤。
76.在步骤s1中,获取目标安装包。
77.在一些实施例中,目标安装包可以是通过目标脚本语言编写的安装包,该目标脚本语言可以是python(一种跨平台的计算机程序设计语言)、javascript(是一种具有函数优先的轻量级,解释型或即时编译型的高级编程语言,js)、php(超文本预处理器,是一种通用开源脚本语言)等,本公开对此不做限制。
78.本公开实施例将会以python脚本语言编写的安装包为例进行说明,但本公开并不限于此。
79.可以理解的是,本实施例中的获取的目标安装包可以是一个也可以是多个,本公开对此不做限制。
80.在步骤s2中,根据目标行为场景下的目标静态特征对所述目标安装包进行扫描,从所述目标安装包中获取第一候选恶意代码。
81.在一些实施例中,目标行为场景可以是恶意安装包进行目标恶意操作时的行为场景,该目标恶意操作可以指的是恶意安装包通过外连、混淆、调用系统命令等行为实现的恶意攻击操作,还可以是通过脚本中的ioc(indicator of compromise,失陷标识)与外部进行通信以实现恶意攻击的操作。因此,该目标恶意操作的行为场景至少可以为包括外连行为场景、混淆行为场景、系统命令执行场景等,但本公开对此不做限制。
82.在一些实施例中,在外连行为场景下恶意安装包可以通过外连行为与外部进行连接以实现恶意操作;在混淆行为场景下恶意安装包可以通过混淆行为对安装包内的参数、代码等进行混淆包装以实现恶意操作,例如将字符串参数转换为16进制参数,将一个参数拆分为多个参数的合集(如将name拆分为na me)等行为;在系统命令执行场景下恶意安装包还可以通过系统命令执行行为调用系统命令以实现恶意操作,例如python语言中会通过“os.system”代码实现系统命令的调用;在ioc识别行为场景下,恶意安装包中还可以通过脚本中的ioc(indicator of compromise,失陷标识)与外部进行通信,例如通过安装包内的黑地址信息实现与外界的通信,以实现恶意操作。
83.在一些实施例中,目标静态特征可以指的是能够反映目标行为场景中的目标行为的静态特征。在目标恶意操作的行为场景下,目标静态特征可以指的是能够实现恶意操作的恶意操作可疑特征,该恶意操作可疑特征可以是在实现恶意操作过程中常见的编码特征或者是预先指定的编码特征。目标静态特征可以包括外连特征、混淆特征、系统命令执行特
征等高危特征,这些特征在实现恶意操作过程中比较常见。例如假设恶意安装包通过外连行为实现恶意操作,那么实现外连行为的目标外连特征就是目标静态特征;假设恶意安装包通过混淆行为实现恶意操作,那么实现混淆行为的目标混淆特征就是目标静态特征;假设恶意安装包通过系统调用行为实现恶意操作,那么实现系统调用行为的目标系统命令执行特征就可以是目标静态特征。例如在python语言中,执行“urllib2.request(一种请求函数)”可以实现与外部连接这一行为,因此“urllib2.request”这一特征可以是外连行为场景中的目标外连特征;再例如在python语言中,执行“urlencode(一种编码函数)”可以对参数进行编码以实现混淆这一行为,因此“urlencode”可以是混淆行为场景中的目标混淆特征;还例如在python语言中,执行“os.syetem(一种系统命令调用函数)”可以实现系统命令的调用这一行为,因此“os.syetem”可以是系统命令执行场景中的目标系统命令执行特征。
84.上述目标静态特征可以是通过对已知恶意安装包的恶意操作进行分析后获得的。例如,可以对恶意安装包在供应链攻击这一特殊攻击场景下进行真实模拟测试,以获得高危函数清单,该高危函数清单中可以是系统命令执行、外连、写文件行为所对应的高危函数也可以是编码函数(例如base64、urlencode等),该高危函数或者该高危函数所对应的代码片段(调用该高危函数的代码片段或者该高危函数调用的代码片段)等可以作为上述目标静态特征。
85.在一些实施例中,若目标行为场景为目标恶意操作的行为场景,目标静态特征包括恶意操作可疑特征,那么从所述目标安装包中获取第一候选恶意代码可以包括:对目标安装包进行静态扫描;在目标安装包中确定包括恶意操作可疑特征的代码,以作为恶意操作可疑代码;然后根据候选恶意操作可疑代码确定第一候选恶意代码,例如将包括恶意操作可疑代码的代码片段作为第一候选恶意代码等。
86.在步骤s3中,根据恶意代码基线特征在所述第一候选恶意代码中确定可疑代码,所述恶意代码基线特征为已知的恶意代码特征。
87.其中,恶意代码基线特征可以是通过对已知恶意安装包分析后获得的已知的恶意代码片段。
88.可以理解的是,上述第一候选恶意代码中可能包括恶意代码,也可能包括正常代码。为了对第一候选恶意代码是否为恶意代码进行判断,需要通过恶意代码基线特征和非恶意代码基线特征对第一候选恶意代码进行比对。在一些实施例中,可以通过该恶意代码基线特征与第一候选恶意代码进行比对,并将比对成功的第一候选恶意代码作为第二恶意代码。
89.在一些实施例中,如果第一候选恶意代码中存在第二恶意代码,则将该第二恶意代码所在的安装包作为第二恶意安装包。在一些实施例中,当目标对象发出针对该第二恶意安装包的安装请求时,可以根据第二恶意代码以及第二恶意安装包向目标对象显示如图4所示的目标告警工单,该目标告警工单不仅可以显示恶意安装包的包名、版本号、上传时间、上传信息等,还可以显示第二恶意代码所在的行为场景代码段。
90.其中,第二恶意代码所在的行为场景代码段,可以指的是第二恶意代码以及第二恶意代码上下cn行的代码段,cn为大于或者等于0的正整数。
91.在一些实施例中,可以预先根据已知的白样本确定多种非恶意代码基线特征,例如从白样本中确定已知的白代码作为该非恶意代码基线特征(一般来说该白代码可以是已
知,无恶意行为的代码)。
92.在一些实施例中,可以通过该非恶意代码基线特征与第一候选恶意代码进行比对,并将对比成功的代码作为非恶意代码。
93.在一些实施例中,可以将第一候选恶意代码中既不是恶意代码、也不是非恶意代码的代码片段作为可疑代码,以便对该可疑代码进行进一步的判断。
94.在步骤s4中,从所述目标安装包中确定所述可疑代码所在的可疑安装包。
95.在步骤s5中,向所述可疑安装包注入恶意代码检测钩子函数,并模拟运行所述可疑安装包。
96.在步骤s6中,在所述可疑安装包的模拟运行过程中,通过所述恶意代码检测钩子函数从所述可疑安装包中获取第二候选恶意代码。
97.在一些实施例中,可以根据脚本的基本镜像在脚本层预先定制目标脚本沙盒,并在该目标脚本沙盒中定制恶意代码检测钩子函数。该恶意代码检测钩子函数既可以包括代码层级的钩子函数,也可以包括底层api(application programming interface,应用程序接口)层级的钩子函数,本公开对此不做限制。
98.在一些实施例中,通过该恶意代码检测钩子函数可以在运行该可疑安装包至包括目标静态特征所在的代码行时,同时输出如图5所示的目标运行日志,该目标运行日志会标识处目标静态特征所在代码行(如图5所示,该目标运行日志标识处第35行和第32行存在目标静态特征)。那么根据该目标运行日志即可在可疑安装包中确定目标静态特征所在的代码,即第二候选恶意代码。
99.在一些实施例中,由于一些恶意特征仅仅通过静态扫描无法确定,例如经过包装、混淆后的16进制表达的恶意字符串等,但是该混淆后的恶意字符串在运行过程中必然会显露原型。因此,可以通过恶意代码检测钩子函数在可疑安装包运行过程中确定该可疑安装包中是否包括第二候选恶意代码。
100.通过脚本沙盒进行模拟运行可以包括以下过程:将可疑安装包的包名、版本号导入消息列队,由一个主控程序来取出目标参数,并将该目标参数分派给各个工作进程worker;调用目标脚本沙盒镜像docker的接口api、结合主控程序生成的目标参数,根据脚本沙盒镜像启动容器,模拟可疑安装包的安装过程。然后将安装过程中钩子hook点记录的日志文件进行裁剪提取出敏感功能代码片段,以作为第二候选恶意代码。通过上述过程自定义敏感行为hook点,可以有效解决恶意代码里存在的混淆、伪装等静态检测较难覆盖的问题。
101.在步骤s7中,根据所述恶意代码基线特征在所述第二候选恶意代码中确定第一恶意代码。
102.在一些实施例中,在确定第二候选恶意代码后,还可以继续通过恶意代码基线特征与第一候选恶意代码进行比对,并将对比成功的代码作为恶意代码(以下将称之为第一恶意代码)。
103.在步骤s8中,从所述可疑安装包中确定所述第一恶意代码所在的第一恶意安装包。
104.在一些实施例中,如果第二候选恶意代码中存在第一恶意代码,则将该第一恶意代码所在的安装包作为第一恶意安装包。在一些实施例中,当目标对象发出针对该第一恶
意安装包的安装请求,可以根据第一恶意代码以及第一恶意安装包向目标对象显示如图4所示的目标告警工单,其该目标告警工单中可以包括如图4所示的第一恶意代码所在的行为场景代码段。
105.其中,第一恶意代码所在的行为场景代码段,可以指的是第一恶意代码以及第一恶意代码上下cn行的代码段,cn为大于或者等于0的正整数。
106.本实施例提供的技术方案,一方面通过目标行为场景下的目标静态特征对目标安装包进行静态扫描,以从目标安装包中确定了可疑安装包;另一方面,通过恶意代码检测钩子函数对可疑安装包进行动态扫描从可疑安装包中确定恶意安装包。上述方法通过静态扫描和动态扫描的结合,可以在目标安装包中准确地检测出恶意安装包。
107.图7是图3中步骤s2在一示例性实施例中的流程图。
108.在一些实施例中,目标行为场景可以包括外连行为场景,目标静态特征可以包括目标外连特征。
109.在一些实施例中,目标外连特征可以指的是可以在目标安装包中实现外连行为(即与外部进行连接的行为)的代码,例如python语言中的“urllib2.request”。
110.参考图7,上述步骤s2可以包括以下过程。
111.在步骤s211中,对所述目标安装包进行扫描。
112.在步骤s212中,在所述目标安装包中确定包括所述目标外连特征的代码,以作为外连代码。
113.在步骤s213中,根据所述外连代码确定所述第一候选恶意代码。
114.在一些实施例中,可以获取目标行为场景的目标场景参数cn,并根据目标场景参数和外连代码确定第一候选恶意代码。
115.例如,可以设定若目标场景参数为第一值(例如设为0),则将外连代码本身确定为第一候选恶意代码;可以设定若目标场景参数为第二值(例如设为n,n为大于或者等于1的正整数),则将外连代码及外连代码的上、下n行代码作为第一候选恶意代码;可以设定若目标场景代码为第三值(例如设为-1),则可以将外连代码所在的目标文件中的所有代码确定为第一候选恶意代码。可以理解的是,目标安装包可以由多个目标文件组成,每个目标文件均由多行代码组成。需要说明的是,目标场景参数的不同,命中的代码片段内容也会受到影响。场景参数设置越大,代码片段内容越全面,检测结果越准确、检测误报率越低;场景参数越小,代码片段内容越小,运营和处理成本相对较低。在实际操作中,技术人员可以根据实际应用场景对目标场景参数进行调整。例如在安全检测等级越高的场景下,可以将目标场景参数设置的越大,以扩大命中的代码片段内容;在检测资源越差的情况下,可以将目标场景参数设置的越小,以尽可能的减少运营成本。在一些实施例中,可以根据所确定的第一候选恶意代码的数量设置n的值,所确定的第一候选恶意代码的数量与n成正相关,即,所确定的第一候选恶意代码的数量越多,则代表安装包的危险程度越高,则可将代码中的恶意操作可疑特征(例如,外连代码、系统命令执行代码等)及恶意操作可疑特征的上、下越多行代码作为第一候选恶意代码用于检测,以便提高检测的准确性,并且灵活地配置检测资源。
116.本实施例提供的技术方案,通过目标外连特征在目标安装包中确定了第一候选恶意代码,以便根据第一候选恶意代码进行供应链攻击的检测。
117.图8是图7中步骤s212在一示例实施例中的流程图。
118.在一些实施例中,由于目标编程人员对编程语言的了解有限,所以目标编程人员可能对目标语言中可以实现外连行为的代码的认知也有限,因此可以通过以下方法实现对目标外连特征的补充。
119.在步骤s2121中,确定所述目标安装包的目标语言。
120.在一些实施例中,可以确定编写目标安装包的目标语言,该目标语言可例如是python语言、javascript语言、php语言等,本公开对此不做限制。
121.在步骤s2122中,链接所述目标语言的目标官方库。
122.在步骤s2123中,根据所述目标官方库对所述目标外连特征进行补充。
123.在一些施例中,可以链接目标语言的目标官方库,以从目标官方库中确定与目标外连特征同类的同类外连特征,例如目标官方库中设置的其它的可能实现外连行为的外连特征,以对目标外连特征进行补充。
124.在步骤s2124中,根据补充后的所述目标系统命令执行特征在所述目标安装包中确定所述目标系统命令执行特征的代码。
125.本实施例提供的技术方案,通过链接目标语言的目标官方库可以实现对目标外连特征的一个补充,以从目标安装包中更加准确的获取第一候选恶意代码。
126.图9是图3中步骤s2在一示例性实施例中的流程图。
127.在一些实施例中,目标行为场景可以包括混淆行为场景,目标静态特征可以包括目标混淆特征。
128.在一些实施例中,目标混淆特征可以指的是可以在目标安装包内对参数等进行混淆包装(例如对参数进行编码,通过16进制代码显示该参数),使得参数不以原本的形式呈现的代码,例如python语言中的“urlencode”。
129.参考图9,上述步骤s2可以包括以下过程。
130.在步骤s221中,对所述目标安装包进行扫描。
131.在步骤s222中,在所述目标安装包中确定包括所述目标混淆特征的代码,以作为混淆代码。
132.在步骤s223中,根据所述混淆代码确定所述第一候选恶意代码。
133.在一些实施例中,可以获取目标行为场景的目标场景参数cn,并根据目标场景参数和混淆代码确定第一候选恶意代码。
134.例如,可以设定若目标场景参数为第一值(例如设为0),则将混淆代码本身确定为第一候选恶意代码;可以设定若目标场景参数为第二值(例如设为n,n为大于或者等于1的正整数),则将混淆代码及混淆代码的上、下n行代码作为第一候选恶意代码;可以设定若目标场景代码为第三值(例如设为-1),则可以将混淆代码所在的目标文件中的所有代码确定为第一候选恶意代码。可以理解的是,目标安装包可以由多个目标文件组成,每个目标文件均由多行代码组成。
135.在一些实施例中,由于目标编程人员的编写目标安装包的对目标语言的了解有限,所以目标编程人员可能对目标语言中可以实现混淆行为的代码的认知也有限,因此可以通过以下方法实现对目标混淆特征的补充:确定目标安装包的目标语言;链接目标语言的目标官方库;根据目标官方库对目标混淆特征进行补充。
136.本实施例提供的技术方案,通过目标混淆特征在目标安装包中确定了第一候选恶
意代码,以便根据第一候选恶意代码进行供应链攻击的检测。
137.图10是图3中步骤s2在一示例性实施例中的流程图。
138.在一些实施例中,目标行为场景可以包括系统命令执行场景,目标静态特征可以包括目标系统命令执行特征。
139.在一些实施例中,目标系统命令执行特征可以指的是在可以在目标安装包内调用系统命令的代码。例如python语言中的“os.system”代码。
140.参考图10,上述步骤s2可以包括以下过程。
141.在步骤s231中,对所述目标安装包进行扫描。
142.在步骤s232中,在所述目标安装包中确定包括所述目标系统命令执行特征的代码,以作为系统命令执行代码。
143.在步骤s233中,根据所述系统命令执行代码确定所述第一候选恶意代码。
144.在一些实施例中,可以获取目标行为场景的目标场景参数cn,并根据目标场景参数cn和系统命令执行代码确定第一候选恶意代码。
145.例如,可以设定若目标场景参数为第一值(例如设为0),则将系统命令执行代码本身确定为第一候选恶意代码;可以设定若目标场景参数为第二值(例如设为n,n为大于或者等于1的正整数),则将系统命令执行代码及系统命令执行代码的上、下n行代码作为第一候选恶意代码;可以设定若目标场景代码为第三值(例如设为-1),则可以将系统命令执行代码所在目标文件中的所有代码确定为第一候选恶意代码。可以理解的是,目标安装包可以由多个目标文件组成,每个目标文件均由多行代码组成。
146.在一些实施例中,由于目标编程人员的对编程语言的了解有限,所以目标编程人员可能对目标语言中可以实现系统命令调用行为的代码的认知也有限,因此可以通过以下方法实现对系统命令执行代码的补充:确定目标安装包的目标语言;链接目标语言的目标官方库;根据目标官方库对目标系统命令执行特征进行补充。最后,可以根据补充后的目标系统命令执行特征在目标安装包中确定目标系统命令执行特征的代码。
147.本实施例提供的技术方案,通过目标系统命令执行特征在目标安装包中确定了第一候选恶意代码,以便根据第一候选恶意代码进行供应链攻击的检测。
148.图11是图3中步骤s2在一示例性实施例中的流程图。
149.在一些实施例中,不仅可以根据外连行为、混淆行为以及系统命令执行行为确定第一候选恶意代码,还可以根据ioc在目标安装包中确定第一候选恶意代码,其中ioc标识可以包括目标黑网址特征、目标黑ip特征、目标黑域名特征等。
150.参考图11,上述步骤s2可以包括以下过程。
151.在步骤s241中,对所述目标安装包进行扫描。
152.在步骤s242中,在所述目标安装包中确定包括所述目标黑网址特征、目标黑ip特征、目标黑域名特征的代码,以作为黑地址代码。
153.在一些实施例中,可以通过静态扫描从目标安装包中确定包括目标黑网址特征、目标黑ip特征、目标黑域名特征的代码,以作为黑地址代码。
154.在步骤s243中,根据所述黑地址代码确定所述第一候选恶意代码。
155.在一些实施例中,可以获取目标行为场景的目标场景参数cn,并根据目标场景参数和黑地址代码确定第一候选恶意代码。
156.例如,可以设定若目标场景参数为第一值(例如设为0),则将黑地址代码本身确定为第一候选恶意代码;可以设定若目标场景参数为第二值(例如设为n,n为大于或者等于1的正整数),则将黑地址代码及黑地址代码的上、下n行代码作为第一候选恶意代码;可以设定若目标场景代码为第三值(例如设为-1),则可以将黑地址代码所在的目标文件中的所有代码确定为第一候选恶意代码。可以理解的是,目标安装包可以由多个目标文件组成,每个目标文件均由多行代码组成。
157.本实施例提供的技术方案,通过ioc标识在目标安装包中确定了第一候选恶意代码,以便根据第一候选恶意代码进行供应链攻击的检测。
158.图12是图3中步骤s2在一示例性实施例中的流程图。
159.在一些实施例中,由于同一个目标静态特征可能会命中多个代码片段,而被命中的多个代码片段可能会存在重复的情况,那么就需要对同一目标静态特征命中的多个代码片段进行去重。例如,可以通过simhash(文本去重)算法对上述多个代码片段进行去重处理。
160.参考图12,通过simhash算法进行去重处理可以包括以下过程。
161.假设,第一候选恶意代码包括第一目标候选恶意代码和第二目标候选恶意代码,其中第一目标候选恶意代码和第二目标候选恶意代码均由同一个目标静态特征命中。
162.在步骤s251中,对所述第一目标候选恶意代码进行哈希编码处理,生成所述第一目标候选恶意代码的第一哈希值。
163.在一些实施例中,可以对第一目标候选恶意代码进行分词处理,得到有效特征向量;然后对第一目标候选恶意代码的有效特征向量进行哈希编码处理,以获得各个分词的哈希值;最后根据各个分词在第一目标候选恶意代码中的占比对各个分词的哈希值进行加权处理,以生成第一目标候选恶意代码的第一哈希值。
164.在步骤s252中,对所述第二目标候选恶意代码进行哈希编码处理,生成所述第二目标候选恶意代码的第二哈希值。
165.在一些实施例中,可以对第二目标候选恶意代码进行分词处理,得到有效特征向量;然后对第二目标候选恶意代码的有效特征向量进行哈希编码处理,以获得各个分词的哈希值;最后根据各个分词在第二目标候选恶意代码中的占比对各个分词的哈希值进行加权处理,以生成第二目标候选恶意代码的第二哈希值。
166.在步骤s253中,确定所述第一哈希值和所述第二哈希值之间的目标距离。
167.在一些实施例中,对第一哈希值进行将维处理(例如将大于0的值置为1,将小于等于0的值置为0),以获得第一目标候选恶意代码的simhash值。
168.在一些实施例中,对第二哈希值进行降维处理(例如将大于0的值置为1,将小于等于0的值置为0),以获得第二目标候选恶意代码的simhash值。
169.在步骤s254中,获取所述目标行为场景的目标场景参数并根据目标场景参数确定目标距离阈值。
170.在一些实施例中,可以根据目标行为场景的目标场景参数确定目标距离阈值。例如当目标场景参数较小时,即代表第一候选恶意代码的片段较小,此时要求目标距离阈值相应的也要较小;例如当目标场景较大时,即代表第一候选恶意代码的片段较大,此时要求目标距离阈值相应的也要较大。通过上述根据目标场景参数确定的目标距离阈值,可以避
免潜在的风险漏报。
171.在步骤s255中,若所述第一哈希值和所述第二哈希值之间的目标距离小于所述目标距离阈值,则对所述第一目标候选恶意代码和第二目标候选恶意代码进行去重处理。
172.在一些实施例中,可以计算第一目标候选恶意代码的simhash值与第二目标候选恶意代码的simhash值之间的目标距离,如果第一目标候选恶意代码的simhash值与第二目标候选恶意代码的simhash值之间的目标距离小于目标距离阈值,则可以认为第一目标候选恶意代码与第二候选恶意代码重复,那就需要对第一目标候选恶意代码和第二目标候选恶意代码进行去重处理。
173.上述目标距离可以指的是海明距离、欧式距离或者汉明距离等,本公开对此不做限制。
174.本实施例提供的技术方方案,通过哈希编码后,可以将重复的第一候选恶意代码做去重处理,以减少计算量,提高供应链攻击检测的效率。
175.图13是图3中步骤s5和步骤s6在一示例性实施例中的流程图。
176.在一些实施例中,恶意代码检测钩子函数既可以包括代码层级的钩子函数,也可以包括底层恶意代码检测钩子函数,本公开对此不做限制。
177.参考图13,上述步骤s5可以包括以下过程。
178.在步骤s51中,在目标脚本沙盒中模拟运行注入底层恶意代码检测钩子函数的所述可疑安装包。
179.其中,底层恶意代码检测钩子函数是对底层运行的库函数进行代码检测的函数。
180.在一些实施例中,可以预先定制目标脚本沙盒中,以在目标脚本沙盒中定制底层恶意代码检测钩子函数。
181.参考图13,上述步骤s6可以包括以下过程。
182.在步骤s61中,通过所述底层恶意代码检测钩子函数,根据所述目标静态特征确定所述可疑代码是否为所述第二候选恶意代码。
183.下面将结合具体的实例解释一个函数是如何完成底层调用的。
184.例如对于通过requst.get()函数调用某个链接的过程来说,他的底层调用可以分为以下五个步骤:
185.1、顶层调用:request.get(“http://www.baidu.com”)//对外部某个服务器发起网络请求。
186.2、下1层:request.get(

get’,url,params=params,**kwarges)//对该网络请求补充参数
187.3、下2层:resp=self.send(prep,**send_kwarge)//发送带参数的请求
188.4、下3层:r=adapter.send(request,**kwarge)//发2层调用adapter的send发送请求
189.5、下4层:rep=conn.urlopen(//层调用conn的urlopen方法发送请求
190.method=request.method,
191.url=url,
192.body=request.body,
193.headers=request.headers,
194.redirect=false,
195.assert_same_host=false,
196.preload_content=false,
197.decode_content=false,
198.retries=self.max_retries,
199.timeout=timeout)
200.urllib3.connection.httpconnection
201.http.client.httpconnection.request//调用“http.client”块的“client.httpconnection”类的“request”方法
202.经过n层调用跟进,最终调用到“http.client”块的“client.httpconnection”类的“request”方法。这个方法就是python官方提供的库函数的调用,也就是所谓的底层api调用。
203.根据上述思路,可以对python官方库中的库函数进行hook(钩子)。
204.本实施例提供的技术方案,通过底层恶意代码检测钩子函数,通过动态运行可疑安装包,能够更加准确的判断可疑代码是否为第二候选恶意代码。
205.图14是根据一示例性实施例示出的一种供应链攻击检测的结构示意图。
206.如图14所示,供应链检测攻击方法可以包括以下步骤:1、官方源获取目标安装包,并通过过事先设定的由目标静态特征生成的静态特征提取集合对目标安装包进行静态扫描;2、从目标安装包中获取第一候选可疑代码;3、将第一候选可疑代码传到分析引擎;4、通过非恶意代码基线特征对第一候选可疑代码进行分析以确定非恶意代码,并将非恶意代码存入基线db(doggabyte,数据存储单元),以更新非恶意代码基线特征;5、通过恶意代码基线特征对第一候选可疑代码进行分析,确定第二恶意代码及其行为场景片段(即黑结果);6、根据第二恶意代码及其行为场景片段发出工单告警;7、将第一候选恶意代码中既不是非恶意代码,也不是恶意代码的会代码所对应的目标安装包放入脚本沙盒中进行运行、检测;8、获得脚本沙盒运行返回的检测日志,并根据检测日志确定第二候选恶意代码;9、将第二候选恶意代码返回分析引擎,以便分析引擎根据恶意代码基线特征进行分析判断。
207.图15是根据一示例性实施例示出的一种供应给攻击检测的应用场景示意图。
208.本实施例提供的技术方案可以应用于各个公司内部的安全防护。本公开可以用于内部源应用场景安全建设上,以下将以某公司内部软件的部署为例进行解释,具体过程如下。
209.1、安全侧从官方源获取第三方包(即目标安装包),并根据本公开实施例提供的技术方案进行扫描以进行供应链攻击检测。
210.2、根据扫描结果确定恶意代码(包括第一恶意代码和第二恶意代码),并将恶意代码所在的文件作为风险文件,以根据风险文件生成风险文件清单。
211.3、将官方源的安装包与镜像源进行同步。
212.4、用户向本地源发出请求安装目标第三方包的请求。
213.5、镜像源响应于用户的针对目标第三方包的安装请求,调用风险文件清单(由恶意代码基线特征确定的)生成拦截规则,对第三方包进行拦截,以便用户根据拦截结果确定是否按照该目标第三方包。
214.6、通过日志存储单元存储用户的下载日志。
215.7、安全审计人员对用户的下载记录进行安全审计。
216.上述过程,通过在公司内部部署一个镜像代理源,直接与各大官方源仓库进行实时同步,通过内部的流程管理,限定内部所有下载均通过内部镜像代理源完成。同时,安全侧对各大同步目标官方源的第三方包(即目标安装包)进行实时扫描,将发现的风险同步到内部镜像代理源,通过对事前风险的感知(扫官方仓库),提供事中风险事拦截能力,配合内部镜像源的第三方包下载日志,提供追溯审计能力。
217.图16是根据一示例性实施例示出的一种供应链攻击检测装置的框图。参照图16,本公开实施例提供的供应链攻击检测装置1600可以包括:安装包获取模块1601、第一候选恶意代码确定模块1602、可疑代码确定模块1603、可疑安装包确定模块1604、模拟运行模块1605、第二候选恶意代码确定模块1606、第一恶意代码确定模块1607以及第一恶意安装包确定模块1608。
218.其中,所述安装包获取模块1601可以配置为获取目标安装包。所述第一候选恶意代码确定模块1602可以配置为根据目标行为场景下的目标静态特征对所述目标安装包进行扫描,从所述目标安装包中获取第一候选恶意代码。所述可疑代码确定模块1603可以配置为根据恶意代码基线特征在所述第一候选恶意代码中确定可疑代码,所述恶意代码基线特征为已知的恶意代码特征。所述可疑安装包确定模块1604可以配置为从所述目标安装包中确定所述可疑代码所在的可疑安装包。所述模拟运行模块1605可以配置为向所述可疑安装包注入恶意代码检测钩子函数,并模拟运行所述可疑安装包。所述第二候选恶意代码确定模块1606,配置为在所述可疑安装包的模拟运行过程中,通过所述恶意代码检测钩子函数从所述可疑安装包中获取第二候选恶意代码。所述第一恶意代码确定模块1607可以配置为根据所述恶意代码基线特征在所述第二候选恶意代码中确定第一恶意代码。所述第一恶意安装包确定模块1608可以配置为从所述可疑安装包中确定所述第一恶意代码所在的第一恶意安装包。
219.在一些实施例中,所述目标行为场景包括目标恶意操作的行为场景,所述目标静态特征包括恶意操作可疑特征;其中,所述第一候选恶意代码确定模块可以包括:安装包扫描子模块、恶意操作可疑代码确定子模块以及确定第一候选恶意代码确定子模块。
220.其中,所述安装包扫描子模块可以配置为对所述目标安装包进行扫描;所述恶意操作可疑代码确定子模块可以配置为在所述目标安装包中确定包括所述恶意操作可疑特征的代码,以作为恶意操作可疑代码;所述确定第一候选恶意代码确定子模块可以配置为根据所述恶意操作可疑代码确定所述第一候选恶意代码。
221.在一些实施例中,所述目标行为场景包括外连行为场景,所述目标静态特征包括目标外连特征;其中,所述第一候选恶意代码确定模块1602可以包括:第一扫描子模块、外连代码确定子模块以及候选恶意代码确定第一子模块。
222.其中,所述第一扫描子模块可以配置为对所述目标安装包进行扫描。所述外连代码确定子模块可以配置为在所述目标安装包中确定包括所述目标外连特征的代码,以作为外连代码。所述候选恶意代码确定第一子模块可以配置为根据所述外连代码确定所述第一候选恶意代码。
223.在一些实施例中,所述候选恶意代码确定第一子模块可以包括:目标场景参数获
取单元以及第一候选恶意代码确定单元。
224.其中,所述目标场景参数获取单元可以配置为获取所述目标行为场景的目标场景参数。所述第一候选恶意代码确定单元可以配置为根据所述目标场景参数和所述外连代码确定所述第一候选恶意代码。
225.在一些实施例中,所述目标安装包可以包括目标文件;其中,所述第一候选恶意代码确定单元可以包括:第一值处理子单元、第二值处理子单元以及第三值处理子单元。
226.其中,所述第一值处理子单元可以配置为若所述目标场景参数为第一值,则将所述外连代码确定为所述第一候选恶意代码。所述第二值处理子单元可以配置为若所述目标场景参数为第二值,则将所述外连代码及其上、下所述目标场景参数行代码,作为所述第一候选恶意代码。所述第三值处理子单元可以配置为若所述目标场景代码为第三值,则根据所述外连代码所在的目标文件确定所述第一候选恶意代码。
227.在一些实施例中,所述目标行为场景包括混淆行为场景,所述目标静态特征包括目标混淆特征;其中,所述第一候选恶意代码确定模块1602可以包括:第二扫描子模块、混淆代码确定子模块以及候选恶意代码确定第二子模块。
228.其中,所述第二扫描子模块可以配置为对所述目标安装包进行扫描。所述混淆代码确定子模块可以配置为在所述目标安装包中确定包括所述目标混淆特征的代码,以作为混淆代码。所述候选恶意代码确定第二子模块可以配置为根据所述混淆代码确定所述第一候选恶意代码。
229.在一些实施例中,所述目标行为场景包括系统命令执行场景,所述目标静态特征包括目标系统命令执行特征;其中,所述第一候选恶意代码确定模块1602可以包括:第三扫描子模块、系统命令执行代码确定子模块以及候选恶意代码确定第三子模块。
230.其中,所述第三扫描子模块可以配置为对所述目标安装包进行扫描。所述系统命令执行代码确定子模块可以配置为在所述目标安装包中确定包括所述目标系统命令执行特征的代码,以作为系统命令执行代码。所述候选恶意代码确定第三子模块可以配置为根据所述系统命令执行代码确定所述第一候选恶意代码。
231.在一些实施例中,所述系统命令执行代码确定子模块可以包括:目标语言确定单元、目标官方库确定单元、同类系统命令执行特征确定单元以及目标系统命令执行特征确定单元。
232.其中,所述目标语言确定单元可以配置为确定所述目标安装包的目标语言。所述目标官方库确定单元可以配置为链接所述目标语言的目标官方库。所述同类系统命令执行特征确定单元可以配置为根据所述目标官方库对所述目标系统命令执行特征同进行补充。所述目标系统命令执行特征确定单元可以配置为根据补充后的所述目标系统命令执行特征在所述目标安装包中确定所述目标系统命令执行特征的代码。
233.在一些实施例中,所述目标静态特征包括目标黑网址特征、目标黑ip特征、目标黑域名特征;其中,所述第一候选恶意代码确定模块1602可以包括:第四扫描子模块、黑地址代码确定子模块以及候选恶意代码确定第三子模块。
234.其中,所述第四扫描子模块可以配置为对所述目标安装包进行扫描。所述黑地址代码确定子模块可以配置为在所述目标安装包中确定包括所述目标黑网址特征、目标黑ip特征、目标黑域名特征的代码,以作为黑地址代码。所述候选恶意代码确定第三子模块可以
配置为根据所述黑地址代码确定所述第一候选恶意代码。
235.在一些实施例中,所述第一候选恶意代码包括第一目标候选恶意代码和第二目标候选恶意代码,所述第一目标候选恶意代码和第二目标候选恶意代码与同一个目标静态特征对应;其中,所述第一候选恶意代码确定模块1602可以还包括:第一哈希值获取子模块、第二哈希值获取子模块、目标距离确定子模块、目标距离阈值获取子模块以及去重处理子模块。
236.其中,所述第一哈希值获取子模块可以配置为对所述第一目标候选恶意代码进行哈希编码处理,生成所述第一目标候选恶意代码的第一哈希值。所述第二哈希值获取子模块可以配置为对所述第二目标候选恶意代码进行哈希编码处理,生成所述第二目标候选恶意代码的第二哈希值。所述目标距离确定子模块可以配置为确定所述第一哈希值和所述第二哈希值之间的目标距离。所述目标距离阈值获取子模块可以配置为获取所述目标行为场景的目标场景参数并根据目标场景参数确定目标距离阈值。所述去重处理子模块可以配置为若所述第一哈希值和所述第二哈希值之间的目标距离小于所述目标距离阈值,则对所述第一目标候选恶意代码和第二目标候选恶意代码进行去重处理。
237.在一些实施例中,所述恶意代码检测钩子函数包括底层恶意代码检测钩子函数;其中,所述模拟运行模块1605可以包括:脚本沙盒运行子模块,所述第二候选恶意代码确定模块可以包括底层恶意代码检测子模块。
238.其中,所述脚本沙盒运转子模块可以配置为在目标脚本沙盒中模拟运行所述可疑安装包,并向所述可疑安装包注入所述底层恶意代码检测钩子函数。所述底层恶意代码检测子模块可以配置为通过所述底层恶意代码检测钩子函数,在所述可疑安装包的模拟运行过程中根据所述目标静态特征确定所述可疑代码是否为所述第二候选恶意代码。在一些实施例中,所述可疑代码确定模块1603可以包括:第二安装包获取子模块和显示子模块。
239.其中,所述第二安装包获取子模块可以配置为根据所述恶意代码基线特征在所述第一候选恶意代码中确定第二恶意代码以及所述第二恶意代码所在的第二恶意安装包。所述显示子模块可以配置为响应于目标对象针对所述第二恶意安装包的安装请求,根据所述第二恶意代码以及所述第二恶意安装包显示目标告警工单,所述目标告警工单包括所述第二恶意代码以及所述第二恶意代码所在的行为场景代码段。
240.由于本公开的示例实施例的供应链攻击检测装置1600的各个功能模块与上述供应链攻击检测方法的示例实施例的步骤对应,因此在此不再赘述。
241.通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,本公开实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中,包括若干指令用以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者智能设备等)执行根据本公开实施例的方法,例如图3的一个或多个所示的步骤。
242.此外,上述附图仅是根据本公开示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
243.本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其
他实施例。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未申请的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
244.应当理解的是,本公开并不限于这里已经示出的详细结构、附图方式或实现方法,相反,本公开意图涵盖包含在所附权利要求的精神和范围内的各种修改和等效设置。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献