CN115756762A - 系统调用信息确定方法、装置、电子设备及存储介质 - Google Patents

系统调用信息确定方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN115756762A
CN115756762A CN202211616108.4A CN202211616108A CN115756762A CN 115756762 A CN115756762 A CN 115756762A CN 202211616108 A CN202211616108 A CN 202211616108A CN 115756762 A CN115756762 A CN 115756762A
Authority
CN
China
Prior art keywords
information
target container
system call
call information
calling
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
CN202211616108.4A
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.)
Sangfor Technologies Co Ltd
Original Assignee
Sangfor Technologies 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 Sangfor Technologies Co Ltd filed Critical Sangfor Technologies Co Ltd
Priority to CN202211616108.4A priority Critical patent/CN115756762A/zh
Publication of CN115756762A publication Critical patent/CN115756762A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

本申请公开了一种系统调用信息确定方法、装置、电子设备及存储介质,其中,所述方法包括:对目标容器中的代码文件进行处理,得到所述目标容器的第一系统调用信息;将所述目标容器的第二系统调用信息输入至系统调用信息模型中,得到所述目标容器的第三系统调用信息;所述第二系统调用信息为所述目标容器的系统调用信息中的部分系统调用信息;将所述第一系统调用信息以及所述第三系统调用信息组成的系统调用信息集合确定为所述目标容器的系统调用信息。

Description

系统调用信息确定方法、装置、电子设备及存储介质
技术领域
本申请实施例涉及计算机技术领域,尤其涉及一种系统调用信息确定方法、装置、电子设备及存储介质。
背景技术
随着容器技术的发展,容器凭借其轻量化、虚拟化以及优异的可移植性,成为在云平台中被广泛使用的应用,开发者可以通过统一的打包方式将自己的应用和依赖环境移植到容器中。尽管容器技术已经相当成熟,但由于容器与宿主机共享同一内核和弱隔离性的特点,使得容器本身安全性能无法获得充分保障,将给相关用户带来数据安全隐患和威胁。为了减少容器暴露的攻击面,可以从系统调用的角度减少容器暴露的攻击面,阻断需要通过系统调用提权的漏洞攻击,提升容器的安全性能,保障用户的应用和数据安全,但是,目前针对获取应用的系统调用信息不足的问题,当前尚不具备解决该问题的能力。
发明内容
为解决上述技术问题,本申请实施例提供了一种系统调用信息确定方法、装置、电子设备及存储介质。
第一方面,本申请实施例提供了一种系统调用信息确定方法,所述方法包括:
对目标容器中的代码文件进行处理,得到所述目标容器的第一系统调用信息;
将所述目标容器的第二系统调用信息输入至系统调用信息模型中,得到所述目标容器的第三系统调用信息;所述第二系统调用信息为所述目标容器的系统调用信息中的部分系统调用信息;
将所述第一系统调用信息以及所述第三系统调用信息组成的系统调用信息集合确定为所述目标容器的系统调用信息。
本申请一可选实施方式中,所述对目标容器中的代码文件进行处理,得到所述目标容器的第一系统调用信息,包括:
对目标容器中的代码文件进行解析,得到所述代码文件中的每个函数的函数调用图信息;
基于所述代码文件中的每个函数的函数调用图信息,得到所述代码文件的函数信息数据;
基于所述函数信息数据,得到所述目标容器的第一系统调用信息。
本申请一可选实施方式中,所述得到所述代码文件中的每个函数的函数调用图信息,包括:
基于所述目标容器的应用场景得到所述代码文件中的每个函数的函数调用图信息。
本申请一可选实施方式中,所述将所述目标容器的第二系统调用信息输入至系统调用信息模型中,得到所述目标容器的第三系统调用信息之前,所述方法还包括:
基于多个容器的第四系统调用信息对待训练的系统调用信息模型进行训练,得到系统调用信息模型;其中,所述多个容器中的每个容器的第四系统调用信息为该容器的系统调用信息中的部分系统调用信息。
本申请一可选实施方式中,所述基于多个容器的第四系统调用信息对待训练的系统调用信息模型进行训练,得到系统调用信息模型,包括:
利用窗口长度变化的滑动窗口处理方式对所述第四系统调用信息进行处理,得到第一调用序列;
利用所述待训练的系统调用信息模型中的编码网络对所述第一调用序列进行编码,得到所述第四系统调用信息的编码信息;所述第四系统调用信息的编码信息中包括所述第四系统调用信息的语义信息;
利用所述待训练的系统调用信息模型中的解码网络对所述编码信息进行解码,得到与所述第四系统调用信息对应的第二调用序列;
基于所述语义信息以及所述第二调用序列对所述待训练的系统调用信息模型进行训练,得到所述系统调用信息模型。
本申请一可选实施方式中,所述利用所述待训练的系统调用信息模型中的编码网络对所述第一调用序列进行编码之前,所述方法还包括:
利用窗口长度固定的滑动窗口处理方式对所述第四系统调用信息进行处理,得到第三调用序列;
对所述第三调用序列进行编码,得到所述第三调用序列的编码信息;
将所述第三调用序列的编码信息输入至词向量模型中,得到所述第四系统调用信息的词向量;
在对所述待训练的系统调用模型的嵌入层进行初始化的情况下嵌入所述词向量。
本申请一可选实施方式中,所述将所述目标容器的第二系统调用信息输入至系统调用信息模型中,得到所述目标容器的第三系统调用信息,包括:
利用窗口长度变化的滑动窗口处理方式对所述第二系统调用信息进行处理,得到第四调用序列;
将所述第四调用序列输入至所述系统调用信息模型中,得到所述目标容器的第三系统调用信息。
本申请一可选实施方式中,所述系统调用信息模型的编码网络以及解码网络中包括注意力结构;所述编码网络和解码网络对应的掩码机制不同。
本申请一可选实施方式中,所述方法还包括:
基于所述目标容器的系统调用信息确定所述目标容器运行的权限集合;
在所述目标容器接收到访问报文的情况下,基于所述权限集合确定是否允许所述访问报文对所述目标容器进行访问。
第二方面,本申请实施例提供了一种系统调用信息确定装置,所述装置包括:
第一处理单元,用于对目标容器中的代码文件进行处理,得到所述目标容器的第一系统调用信息;
第二处理单元,用于将所述目标容器的第二系统调用信息输入至系统调用信息模型中,得到所述目标容器的第三系统调用信息;所述第二系统调用信息为所述目标容器的系统调用信息中的部分系统调用信息;
确定单元,用于将所述第一系统调用信息以及所述第三系统调用信息组成的系统调用信息集合确定为所述目标容器的系统调用信息。
本申请一可选实施方式中,所述第一处理单元,具体用于:对目标容器中的代码文件进行解析,得到所述代码文件中的每个函数的函数调用图信息;基于所述代码文件中的每个函数的函数调用图信息,得到所述代码文件的函数信息数据;基于所述函数信息数据,得到所述目标容器的第一系统调用信息。
本申请一可选实施方式中,所述第一处理单元,还具体用于:基于所述目标容器的应用场景得到所述代码文件中的每个函数的函数调用图信息。
本申请一可选实施方式中,所述第二处理单元将所述目标容器的第二系统调用信息输入至系统调用信息模型中,得到所述目标容器的第三系统调用信息之前,所述装置还包括:
训练单元,用于基于多个容器的第四系统调用信息对待训练的系统调用信息模型进行训练,得到系统调用信息模型;其中,所述多个容器中的每个容器的第四系统调用信息为该容器的系统调用信息中的部分系统调用信息。
本申请一可选实施方式中,所述训练单元,具体用于:利用窗口长度变化的滑动窗口处理方式对所述第四系统调用信息进行处理,得到第一调用序列;利用所述待训练的系统调用信息模型中的编码网络对所述第一调用序列进行编码,得到所述第四系统调用信息的编码信息;所述第四系统调用信息的编码信息中包括所述第四系统调用信息的语义信息;利用所述待训练的系统调用信息模型中的解码网络对所述编码信息进行解码,得到与所述第四系统调用信息对应的第二调用序列;基于所述语义信息以及所述第二调用序列对所述待训练的系统调用信息模型进行训练,得到所述系统调用信息模型。
本申请一可选实施方式中,所述训练单元利用所述待训练的系统调用信息模型中的编码网络对所述第一调用序列进行编码之前,所述装置还包括:
第三处理单元,用于利用窗口长度固定的滑动窗口处理方式对所述第四系统调用信息进行处理,得到第三调用序列;对所述第三调用序列进行编码,得到所述第三调用序列的编码信息;将所述第三调用序列的编码信息输入至词向量模型中,得到所述第四系统调用信息的词向量;在对所述待训练的系统调用模型的嵌入层进行初始化的情况下嵌入所述词向量。
本申请一可选实施方式中,所述第二处理单元,具体用于:利用窗口长度变化的滑动窗口处理方式对所述第二系统调用信息进行处理,得到第四调用序列;将所述第四调用序列输入至所述系统调用信息模型中,得到所述目标容器的第三系统调用信息。
本申请一可选实施方式中,所述系统调用信息模型的编码网络以及解码网络中包括注意力结构;所述编码网络和解码网络对应的掩码机制不同。
本申请一可选实施方式中,所述装置还包括:
第四处理单元,用于在所述目标容器接收到访问报文的情况下,基于所述权限集合确定是否允许所述访问报文对所述目标容器进行访问。
第三方面,本申请实施例提供了一种电子设备,所述电子设备包括:存储器和处理器,所述存储器上存储有计算机可执行指令,所述处理器运行所述存储器上的计算机可执行指令时可实现上述实施例所述的方法。
第四方面,本申请实施例提供了一种计算机存储介质,所述存储介质上存储有可执行指令,该可执行指令被处理器执行时实现上述实施例所述的方法。
本申请实施例的技术方案,通过对目标容器中的代码文件进行处理,得到目标容器的第一系统调用信息,可以通过静态的方式得到目标容器的系统调用信息,这一系统调用信息获取方式,可能存在部分静态代码无法获得实际代码运行所需的系统调用信息的情况;本申请通过将所述目标容器的第二系统调用信息输入至系统调用信息模型中,得到所述目标容器的第三系统调用信息;所述第二系统调用信息为所述目标容器的系统调用信息中的部分系统调用信息,可以通过动态的方式得到目标容器的系统调用信息,这一动态得到目标容器的系统调用信息的方式能够实现对通过静态的方式得到目标容器的系统调用信息的补充;本申请通过将所述第一系统调用信息以及所述第三系统调用信息组成的系统调用信息集合确定为所述目标容器的系统调用信息的方案,能够得到目标容器更加全面、完整的系统调用信息;本申请基于动态方式和静态方式得到的系统调用信息集合,能够在利用系统调用管理的方式对容器进行安全防护时,能够减少容器暴露的攻击面,提升容器的安全性。
附图说明
图1为本申请实施例提供的系统调用信息确定方法的流程示意图;
图2为本申请实施例提供的示例性的利用静态方式获取系统调用信息的方法流程图;
图3为本申请实施例提供的系统调用信息模型训练及生成衍生的系统调用信息的框图示意图;
图4为本申请实施例提供的系统调用信息模型示意图;
图5为本申请实施例提供的不同容器系统调用对比示意图;
图6为本申请实施例提供的系统函数调用信息确定方式的框图示意图;
图7为本申请实施例提供的系统调用信息确定装置的结构组成示意图;
图8为本申请实施例提供的电子设备的结构组成示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行定义和解释。
本文中术语“和/或”,仅仅是描述一种关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括A、B、C中的至少一种,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。
请参阅图1,图1为本申请实施例提供的系统调用信息确定方法的流程示意图,如图1所示,本申请实施例提供的系统调用信息确定方法,包括:
S101:对目标容器中的代码文件进行处理,得到所述目标容器的第一系统调用信息。
目标容器中包括应用程序以及应用程序所依赖的环境。在计算机操作系统中,以Linux系统为例,多数容器攻击行为在对容器进行攻击时需要通过系统调用获得一定的系统权限,基于这一攻击特性,本申请实施例通过对目标容器内的应用程序的相关代码文件进行编译和处理,可以获取目标容器内应用程序正常运行所需的相关系统调用信息。
本申请一可选实施方式中,上述步骤S101通过如下步骤实现:
A1:对目标容器中的代码文件进行解析,得到所述代码文件中的每个函数的函数调用图信息。
A2:基于所述代码文件中的每个函数的函数调用图信息,得到所述代码文件的函数信息数据。
A3:基于所述函数信息数据,得到所述目标容器的第一系统调用信息。
本申请实施例通过对目标容器内的应用程序的相关代码文件进行编译和处理,可以构建与应用程序的相关代码文件对应的函数信息数据库,其中,函数信息数据库中包括文件、函数信息树以及函数调用图,结合函数信息数据库中的数据,可以获取应用程序正常运行所需的相关系统调用信息。
在本申请实施例中,一种示例性的利用静态方式获取系统调用信息的方法流程图如图2所示:
S21:对目标容器中的代码文件进行解析,得到所述代码文件中的每个函数的函数调用图信息。
具体的,首先将目标容器中的应用程序源代码文件按照文件路径树结构通过Doxygen(一种开源跨平台的,以类似JavaDoc风格描述的文档系统,是一种程序的文件产生工具,可将程序中的特定注释转换成为说明文件)和Graphviz(一种开源工具包,用于绘制DOT语言脚本描述的图形)逐一进行解析,获得应用程序源代码文件中各个节点文件内每个函数的函数调用图文件。
S22:基于所述代码文件中的每个函数的函数调用图信息,得到所述代码文件的函数信息数据。
具体的,根据源代码文件的路径树结构,对每个函数的函数调用图文件中的数据进行信息整合,获得每个函数的树状函数图数据库。
S23:基于所述函数信息数据,得到所述目标容器的第一系统调用信息。
具体的,最后递归对各函数的各子节点调用图信息进行扫描,确定是否含有系统调用信息,若没有,则递归对各函数的各子节点调用图信息进行扫描,确定是否含有系统调用信息;若有,则从系统调用信息数据库中获取系统调用信息。
需要说明的是,根据源代码文件的路径树结构,对每个函数的函数调用图文件中的数据进行信息整合,获得每个函数的树状函数图数据库之后,可以从每个函数的树状函数图数据库中获取函数调用图信息和文件信息。
根据图2所示的获取系统调用信息的流程示意图可知,本申请实施例首先通过修改Doxygen应用结合Graphviz按照应用程序源代码文件的文件夹树形结构为每一个代码文件内的每一个函数生成了对应的函数调用图,并将该函数的函数调用图信息存储至本地文件中;之后再进一步通过一定的方式对生成的各函数调用图文件进行信息抽取和汇集,以字典树的形式构建函数信息数据库;最后通过信息检索和图搜索的方式检索函数信息数据库中系统调用相关信息,并将其以数据库形式存储至本地。
本申请一可选实施方式中,对目标容器中的代码文件进行解析,可以进一步结合目标容器的应用场景得到所述代码文件中的每个函数的函数调用图信息。
应用程序的源代码文件包含应用程序正常运行时提权所需的相关系统调用信息,例如:nginx容器的源代码文件的ngx_epoll_module.c文件中,定义了io_getevents、io_setup和io_destroy三个函数,分别对应着SYS_io_getevents、SYS_io_setup和SYS_io_destroy三个系统调用,而这些系统调用可能在nginx运行时被调用,亦有可能不会被调用,还有可能因为业务范围因素不需要被调用,因此,需要根据目标容器的实际应用场景生成与目标程序中的代码文件对应的函数调用图,再利用函数调用图扫描确定目标容器实际运行时所需的系统调用信息。
S102:将所述目标容器的第二系统调用信息输入至系统调用信息模型中,得到所述目标容器的第三系统调用信息。
本申请实施例中,所述第二系统调用信息为所述目标容器的系统调用信息中的部分系统调用信息。
通过利用步骤101对目标容器中应用程序的源代码文件进行静态分析,可以获取应用程序的文件-函数信息树和函数调用图,通过应用程序的函数调用图可获得应用程序的相关系统调用信息,进而获得目标容器中应用程序在静态代码文件中的所有可能提权。但是,在目标容器中的应用程序实际运行过程中,仍然存在部分静态代码无法获得实际代码运行所需的系统调用信息,需要通过系统调用信息动态采集的方式加以补充。由于目前容器的类型和数量已经十分丰富和庞大,通过人为采集容器的系统调用信息的方式不仅效率低、成本高,且需要庞大的存储空间,难以实现用户侧实际部署应用的需求,本申请实施例提出以人工智能的方式对正常容器的系统调用序列进行学习和衍生,能够快速扩充容器系统调用信息,且所需的存储空间远远低于人工采集,实用性高、成本低且易于部署。
为实现图3中对目标容器系统调用信息的快速生成,本申请实施例可以首先收集不同容器数十个G的系统调用序列数据,训练集和测试集样本比例为8:2;其次,构建系统调用信息模型,通过模型中的编码器提取系统调用序列的上下文的语义信息,结合解码器实现系统调用序列的生成,完成系统调用信息模型的训练;最后,使用已训练好的系统调用信息模型结合相关的搜索算法(如集束搜索beam search)算法,基于输入的系统调用短序列生成衍生的限定长度或者语义的系统调用序列。
图3为本申请实施例提供的系统调用信息模型训练及生成衍生的系统调用信息的框图示意图,图3共包括三个部分,其中第一部分为预训练、第二部分为系统调用信息模型的构建和训练,第三部分为生成衍生的系统调用数据。第一部分通过预训练捕获给定的少量系统调用序列在固定长度上的语义信息,从而加快第二部分的系统调用信息模型的构建及训练过程的收敛速度,提升生成的系统调用信息模型的准确率;第二部分通过对给定的少量系统调用序列进行编码,进一步提取更加深层次的语义信息,通过与解码器相结合实现对系统调用信息模型的完整训练,使得系统调用信息模型能够充分捕捉输入的少量系统调用信息的语义信息;第三部分在已训练好的系统调用信息模型上,结合输入的给定的短序列的系统调用信息逐帧生成衍生的系统调用信息。
本申请一可选实施方式中,在执行上述步骤S103之前,需要首先确定出系统调用信息模型,在一种实施方式中,可以通过以下步骤得到系统调用信息模型:
B1:基于多个容器的第四系统调用信息对待训练的系统调用信息模型进行训练,得到系统调用信息模型。
本申请实施例中,所述多个容器中的每个容器的第四系统调用信息为该容器的系统调用信息中的部分系统调用信息。
本申请实施例中,可以收集不同容器的系统调用序列数据,组成训练样本集和测试样本集,利用训练样本集对待训练的系统调用模型进行训练,并利用测试样本集测试训练好的系统调用模型生成衍生的系统调用序列的准确性。
本申请一可选实施方式中,上述步骤B1具体可通过如下步骤实现:
B11:利用窗口长度变化的滑动窗口处理方式对所述第四系统调用信息进行处理,得到第一调用序列;
B12:利用所述待训练的系统调用信息模型中的编码网络对所述第一调用序列进行编码,得到所述第四系统调用信息的编码信息;所述第四系统调用信息的编码信息中包括所述第四系统调用信息的语义信息;
B13:利用所述待训练的系统调用信息模型中的解码网络对所述编码信息进行解码,得到与所述第四系统调用信息对应的第二调用序列;
B14:基于所述语义信息以及所述第二调用序列对所述待训练的系统调用信息模型进行训练,得到所述系统调用信息模型。
为了提升系统调用信息模型的性能,本申请实施例对系统调用信息模型的输入数据的形式进行了修改,在对待训练的系统调用信息模型进行训练前,利用变窗口的滑动窗口处理方式对给定的少量系统调用序列进行处理,其中,窗口长度可以采用随机采样的方式,在保证窗与窗之间具备一定的重叠性的同时,使得最终训练得到的系统调用信息模型具备处理变长数据的能力,并且使得系统调用信息模型能够充分利用输入数据的上文语义信息对输入数据的下文进行预测,提升系统调用信息模型的实用性和泛化性。
本申请一可选实施方式中,所述系统调用信息模型的编码网络以及解码网络中包括注意力结构;所述编码网络和解码网络对应的掩码机制不同。
在系统调用信息模型的解码网络和解码网络中分别加入attention架构,并针对编码网络和解码网络分别使用不同的mask机制,可以进一步提升系统调用信息模型提取数据中上下文语义信息的能力。
本申请一可选实施方式中,系统调用信息模型可以具体为图4所示的网络结构形式,在一种实施方式中,系统调用信息模型可以具体为Seq2Seq模型,Seq2Seq模型是一个序列到序列的模型,它的输入是一个序列,输出也是一个序列。Seq2Seq模型对于数据量较大的数据生成任务有较好的效果。
本申请一可选实施方式中,执行上述步骤B12之前,还可以执行如下步骤:
C1:利用窗口长度固定的滑动窗口处理方式对所述第四系统调用信息进行处理,得到第三调用序列;
C2:对所述第三调用序列进行编码,得到所述第三调用序列的编码信息;
C3:将所述第三调用序列的编码信息输入至词向量模型中,得到所述第四系统调用信息的词向量;
C4:在对所述待训练的系统调用模型的嵌入层进行初始化的情况下嵌入所述词向量。
对于复杂的模型架构,将模型从零开始训练需要较长的训练时间且收敛性能可能达不到预期的效果,预训练词嵌入权重能够使模型在初始化阶段时就获得一定的语义信息,且为系统调用信息模型在高维损失平面上选择一个较好的方向,能够有效提升模型收敛的效率。结合图3可知,本申请实施例首先使用固定长度的滑动窗口对给定的系统调用序列进行局部截断处理,为降低截断部分语义丢失的影响,在窗与窗之间保持一定的重叠,通过对系统调用序列进行编码后输入词向量模型(如Word2Vec模型)进行训练,训练结束后对训练结果进行校验,选择较好的训练结果进行保存。本申请实施例通过使用训练好的词向量模型初始化待训练的系统调用信息模型的Embedding,使待训练的系统调用信息模型获得给定的系统调用序列间的语义信息,能够加速待训练的系统调用信息模型的收敛。
本申请一可选实施方式中,上述步骤S102具体可通过如下步骤实现:
D1:利用窗口长度变化的滑动窗口处理方式对所述第二系统调用信息进行处理,得到第四调用序列;
D2:将所述第四调用序列输入至所述系统调用信息模型中,得到所述目标容器的第三系统调用信息。
对给定的少量系统调用序列,经过滑动窗口处理后,分别使用训练好的系统调用信息模型进行系统调用序列的逐帧衍生,每一个系统调用序列生成直至达到指定长度或者遇到截止符为止,最后对生成的所有系统调用序列进行汇聚形成系统调用信息。
本申请实施例中,训练好的系统调用信息模型已经较好学习了给定系统调用序列数据中的语义信息,由于给定系统调用序列数据为多类型容器正常运行数据,根据图5中可知不同容器所用到的系统调用有的相似性较高,有的则相似性较低,具体与容器所能实现的功能相关。本申请实施例通过收集不同类型容器数据,使得训练好的系统调用信息模型可以根据目标容器的功能属性,利用目标容器的小部分系统调用数据便可快速衍生出目标容器的更多的系统调用序列。
S103:将所述第一系统调用信息以及所述第三系统调用信息组成的系统调用信息集合确定为所述目标容器的系统调用信息。
本申请一可选实施方式中,在确定出所述目标容器的系统调用信息后,还可以继续执行如下步骤:
E1:基于所述目标容器的系统调用信息确定所述目标容器运行的权限集合;
E2:在所述目标容器接收到访问报文的情况下,基于所述权限集合确定是否允许所述访问报文对所述目标容器进行访问。
本申请实施例利用步骤101可以通过静态的方式得到目标容器的系统调用信息,这一系统调用信息获取方式,可能存在部分静态代码无法获得实际代码运行所需的系统调用信息;利用步骤102可以通过动态的方式得到目标容器的系统调用信息,这一动态得到目标容器的系统调用信息的方式能够实现对通过静态的方式得到目标容器的系统调用信息的补充,通过将两种方式得到的系统调用信息进行综合能够得到目标容器更加全面、完整的系统调用信息,基于利用两种方式得到的系统调用信息配置seccomp便可实现减小目标容器攻击面,提升目标容器安全性的目的。
Seccomp是一种安全机制。在操作系统中,大量的系统调用直接暴露给用户态程序。但是,并不是所有的系统调用都被需要,而且不安全的代码滥用系统调用会对系统造成安全威胁。通过seccomp,可以限制程序使用某些系统调用,这样可以减少系统的暴露面,同时是程序进入一种“安全”的状态。
请参阅图6,图6为本申请实施例提供的系统函数调用信息确定方式的框图示意图;图6中包括三个部分,其中第一部分和第二部分为利用动态的方式得到容器m的衍生的系统调用序列的过程,第三部分为利用静态的方式得到容器m的系统调用数据的过程。利用动态的方式得到容器m的衍生的系统调用序列时,需要首先通过第一部分的步骤,利用n个容器的系统调用序列对系统调用信息模型进行训练,得到用于进行系统调用序列衍生的系统调用信息模型,之后通过利用第二部分的步骤,利用训练好的系统调用信息模型对容器m的少量系统调用信息进行衍生,得到容器m的衍生的系统调用序列;通过第二部分的步骤,对容器m的源代码文件进行静态分析,得到容器m的系统调用数据;通过将第二部分得到的容器m的衍生的系统调用序列以及第三部分得到的容器m的系统调用数据结合,得到容器m更加完整的系统调用信息集合;之后再基于得到的系统调用信息集合配置seccomp便可减小容器m的攻击面,提升容器m安全性。
本申请实施例的技术方案,能够通过动态、静态相结合的方案,一方面以人工智能的方式对正常容器的系统调用序列进行学习和衍生,能够快速扩充容器系统调用信息,另一方面通过对容器内的应用程序的相关代码文件进行编译和处理,可以获取容器内应用程序正常运行所需的相关系统调用信息;结合以上两方面,获取完整的容器中的应用程序正常运行的系统调用信息,从而通过系统调用管理的方式,减少容器暴露的攻击面,提升容器的安全性。
请参阅图7,图7为本申请实施例提供的一种系统调用信息确定装置示意图,如图7所示所述装置包括:
第一处理单元701,用于对目标容器中的代码文件进行处理,得到所述目标容器的第一系统调用信息;
第二处理单元702,用于将所述目标容器的第二系统调用信息输入至系统调用信息模型中,得到所述目标容器的第三系统调用信息;所述第二系统调用信息为所述目标容器的系统调用信息中的部分系统调用信息;
确定单元703,用于将所述第一系统调用信息以及所述第三系统调用信息组成的系统调用信息集合确定为所述目标容器的系统调用信息。
本申请一可选实施方式中,所述第一处理单元701,具体用于:对目标容器中的代码文件进行解析,得到所述代码文件中的每个函数的函数调用图信息;基于所述代码文件中的每个函数的函数调用图信息,得到所述代码文件的函数信息数据;基于所述函数信息数据,得到所述目标容器的第一系统调用信息。
本申请一可选实施方式中,所述第一处理单元701,还具体用于:基于所述目标容器的应用场景得到所述代码文件中的每个函数的函数调用图信息。
本申请一可选实施方式中,所述第二处理单元702将所述目标容器的第二系统调用信息输入至系统调用信息模型中,得到所述目标容器的第三系统调用信息之前,所述装置还包括:
训练单元704,用于基于多个容器的第四系统调用信息对待训练的系统调用信息模型进行训练,得到系统调用信息模型;其中,所述多个容器中的每个容器的第四系统调用信息为该容器的系统调用信息中的部分系统调用信息。
本申请一可选实施方式中,所述训练单元704,具体用于:利用窗口长度变化的滑动窗口处理方式对所述第四系统调用信息进行处理,得到第一调用序列;利用所述待训练的系统调用信息模型中的编码网络对所述第一调用序列进行编码,得到所述第四系统调用信息的编码信息;所述第四系统调用信息的编码信息中包括所述第四系统调用信息的语义信息;利用所述待训练的系统调用信息模型中的解码网络对所述编码信息进行解码,得到与所述第四系统调用信息对应的第二调用序列;基于所述语义信息以及所述第二调用序列对所述待训练的系统调用信息模型进行训练,得到所述系统调用信息模型。
本申请一可选实施方式中,所述训练单元704利用所述待训练的系统调用信息模型中的编码网络对所述第一调用序列进行编码之前,所述装置还包括:
第三处理单元705,用于利用窗口长度固定的滑动窗口处理方式对所述第四系统调用信息进行处理,得到第三调用序列;对所述第三调用序列进行编码,得到所述第三调用序列的编码信息;将所述第三调用序列的编码信息输入至词向量模型中,得到所述第四系统调用信息的词向量;在对所述待训练的系统调用模型的嵌入层进行初始化的情况下嵌入所述词向量。
本申请一可选实施方式中,所述第二处理单元702,具体用于:利用窗口长度变化的滑动窗口处理方式对所述第二系统调用信息进行处理,得到第四调用序列;将所述第四调用序列输入至所述系统调用信息模型中,得到所述目标容器的第三系统调用信息。
本申请一可选实施方式中,所述系统调用信息模型的编码网络以及解码网络中包括注意力结构;所述编码网络和解码网络对应的掩码机制不同。
本申请一可选实施方式中,所述装置还包括:
第四处理单元706,用于基于所述目标容器的系统调用信息确定所述目标容器运行的权限集合;在所述目标容器接收到访问报文的情况下,基于所述权限集合确定是否允许所述访问报文对所述目标容器进行访问。
本领域技术人员应当理解,图7所示的系统调用信息确定装置中的各单元的实现功能可参照前述系统调用信息确定方法的相关描述而理解。图7所示的系统调用信息确定装置中的各单元的功能可通过运行于处理器上的程序而实现,也可通过具体的逻辑电路而实现。
本申请实施例还提供了一种电子设备。图8为本申请实施例的电子设备的硬件结构示意图,如图8所示,电子设备包括:用于进行数据传输的通信组件803、至少一个处理器801和用于存储能够在处理器801上运行的计算机程序的存储器802。终端中的各个组件通过总线系统804耦合在一起。可理解,总线系统804用于实现这些组件之间的连接通信。总线系统804除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图8中将各种总线都标为总线系统804。
其中,所述处理器801执行所述计算机程序时至少执行图1所示的方法的步骤。
可以理解,存储器802可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read-Only Memory)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read-Only Memory)、电可擦除可编程只读存储器(EEPROM,Electrically Erasable Programmable Read-Only Memory)、磁性随机存取存储器(FRAM,ferromagnetic random access memory)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(CD-ROM,Compact Disc Read-Only Memory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(RAM,Random AccessMemory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM,Static Random Access Memory)、同步静态随机存取存储器(SSRAM,Synchronous Static Random Access Memory)、动态随机存取存储器(DRAM,Dynamic Random Access Memory)、同步动态随机存取存储器(SDRAM,SynchronousDynamic Random Access Memory)、双倍数据速率同步动态随机存取存储器(DDRSDRAM,Double Data Rate Synchronous Dynamic Random Access Memory)、增强型同步动态随机存取存储器(ESDRAM,Enhanced Synchronous Dynamic Random Access Memory)、同步连接动态随机存取存储器(SLDRAM,SyncLink Dynamic Random Access Memory)、直接内存总线随机存取存储器(DRRAM,Direct Rambus Random Access Memory)。本申请实施例描述的存储器802旨在包括但不限于这些和任意其它适合类型的存储器。
上述本申请实施例揭示的方法可以应用于处理器801中,或者由处理器801实现。处理器801可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器801中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器801可以是通用处理器、DSP,或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器801可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器802,处理器801读取存储器802中的信息,结合其硬件完成前述方法的步骤。
在示例性实施例中,电子设备可以被一个或多个应用专用集成电路(ASIC,Application Specific Integrated Circuit)、DSP、可编程逻辑器件(PLD,ProgrammableLogic Device)、复杂可编程逻辑器件(CPLD,Complex Programmable Logic Device)、FPGA、通用处理器、控制器、MCU、微处理器(Microprocessor)、或其他电子元件实现,用于执行前述的通话录音方法。
本申请实施例还提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时至少用于执行图1所示方法的步骤。所述计算机可读存储介质具体可以为存储器。所述存储器可以为如图8所示的存储器802。
本申请实施例所记载的技术方案之间,在不冲突的情况下,可以任意组合。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法和智能设备,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本申请各实施例中的各功能单元可以全部集成在一个第二处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。

Claims (10)

1.一种系统调用信息确定方法,其特征在于,所述方法包括:
对目标容器中的代码文件进行处理,得到所述目标容器的第一系统调用信息;
将所述目标容器的第二系统调用信息输入至系统调用信息模型中,得到所述目标容器的第三系统调用信息;所述第二系统调用信息为所述目标容器的系统调用信息中的部分系统调用信息;
将所述第一系统调用信息以及所述第三系统调用信息组成的系统调用信息集合确定为所述目标容器的系统调用信息。
2.根据权利要求1所述的方法,其特征在于,所述对目标容器中的代码文件进行处理,得到所述目标容器的第一系统调用信息,包括:
对目标容器中的代码文件进行解析,得到所述代码文件中的每个函数的函数调用图信息;
基于所述代码文件中的每个函数的函数调用图信息,得到所述代码文件的函数信息数据;
基于所述函数信息数据,得到所述目标容器的第一系统调用信息。
3.根据权利要求2所述的方法,其特征在于,所述得到所述代码文件中的每个函数的函数调用图信息,包括:
基于所述目标容器的应用场景得到所述代码文件中的每个函数的函数调用图信息。
4.根据权利要求1所述的方法,其特征在于,所述将所述目标容器的第二系统调用信息输入至系统调用信息模型中,得到所述目标容器的第三系统调用信息之前,所述方法还包括:
基于多个容器的第四系统调用信息对待训练的系统调用信息模型进行训练,得到系统调用信息模型;其中,所述多个容器中的每个容器的第四系统调用信息为该容器的系统调用信息中的部分系统调用信息。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述将所述目标容器的第二系统调用信息输入至系统调用信息模型中,得到所述目标容器的第三系统调用信息,包括:
利用窗口长度变化的滑动窗口处理方式对所述第二系统调用信息进行处理,得到第四调用序列;
将所述第四调用序列输入至所述系统调用信息模型中,得到所述目标容器的第三系统调用信息。
6.根据权利要求1至4中任一项所述的方法,其特征在于,所述系统调用信息模型的编码网络以及解码网络中包括注意力结构;所述编码网络和解码网络对应的掩码机制不同。
7.根据权利要求1至4中任一项所述的方法,其特征在于,所述方法还包括:
基于所述目标容器的系统调用信息确定所述目标容器运行的权限集合;
在所述目标容器接收到访问报文的情况下,基于所述权限集合确定是否允许所述访问报文对所述目标容器进行访问。
8.一种系统调用信息确定装置,其特征在于,所述装置包括:
第一处理单元,用于对目标容器中的代码文件进行处理,得到所述目标容器的第一系统调用信息;
第二处理单元,用于将所述目标容器的第二系统调用信息输入至系统调用信息模型中,得到所述目标容器的第三系统调用信息;所述第二系统调用信息为所述目标容器的系统调用信息中的部分系统调用信息;
确定单元,用于将所述第一系统调用信息以及所述第三系统调用信息组成的系统调用信息集合确定为所述目标容器的系统调用信息。
9.一种电子设备,其特征在于,所述电子设备包括:存储器和处理器,所述存储器上存储有计算机可执行指令,所述处理器运行所述存储器上的计算机可执行指令时可实现权利要求1至7中任一项所述的方法。
10.一种计算机存储介质,其特征在于,所述存储介质上存储有可执行指令,该可执行指令被处理器执行时实现权利要求1至7中任一项所述的方法。
CN202211616108.4A 2022-12-15 2022-12-15 系统调用信息确定方法、装置、电子设备及存储介质 Pending CN115756762A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211616108.4A CN115756762A (zh) 2022-12-15 2022-12-15 系统调用信息确定方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211616108.4A CN115756762A (zh) 2022-12-15 2022-12-15 系统调用信息确定方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN115756762A true CN115756762A (zh) 2023-03-07

Family

ID=85346150

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211616108.4A Pending CN115756762A (zh) 2022-12-15 2022-12-15 系统调用信息确定方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN115756762A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116149898A (zh) * 2023-04-17 2023-05-23 阿里云计算有限公司 内核异常类型的确定方法、电子设备及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116149898A (zh) * 2023-04-17 2023-05-23 阿里云计算有限公司 内核异常类型的确定方法、电子设备及存储介质
CN116149898B (zh) * 2023-04-17 2023-07-21 阿里云计算有限公司 内核异常类型的确定方法、电子设备及存储介质

Similar Documents

Publication Publication Date Title
Li et al. Deeppayload: Black-box backdoor attack on deep learning models through neural payload injection
US20190005163A1 (en) Extracting a knowledge graph from program source code
CN113360915B (zh) 基于源代码图表示学习的智能合约多漏洞检测方法及系统
US9064210B1 (en) Semantically-aware behavioral security analysis system for security information and event management
Smith Probabilistic noninterference through weak probabilistic bisimulation
CN109710255B (zh) 特效处理方法、特效处理装置、电子设备及存储介质
CN113296786B (zh) 数据处理方法、装置、电子设备及存储介质
KR102117654B1 (ko) 자연어 기반의 비디오 생성 방법 및 장치
Kobayashi et al. Functional programs as compressed data
CN111316232A (zh) 使用程序的注释来提供优化
CN113435585A (zh) 一种业务处理方法、装置及设备
CN112688966A (zh) webshell检测方法、装置、介质和设备
CN115756762A (zh) 系统调用信息确定方法、装置、电子设备及存储介质
Wang et al. Cuckoo-based malware dynamic analysis
CN114297022A (zh) 云环境异常检测方法、装置、电子设备和存储介质
CN116305131B (zh) 脚本静态去混淆方法及系统
CN115688108B (zh) 一种webshell静态检测方法及系统
CN117313098A (zh) 一种基于预训练技术的区块链智能合约漏洞检测方法
Zheng et al. A multitype software buffer overflow vulnerability prediction method based on a software graph structure and a self-attentive graph neural network
CN114492365A (zh) 二进制文件之间相似度的确定方法、计算设备及存储介质
CN115412335B (zh) 5g电力物联网边缘设备漏洞检测方法、装置及系统
Shafiq et al. Automated flow for compressing convolution neural networks for efficient edge-computation with FPGA
Bensalem et al. Abstraction as the key for invariant verification
CN117472910B (zh) 一种同态压缩数据处理方法和系统
CN118734312A (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