掌桥专利:专业的专利平台
掌桥专利
首页

基于专家系统的AppArmor安全策略自动生成方法及系统

文献发布时间:2023-06-19 11:11:32


基于专家系统的AppArmor安全策略自动生成方法及系统

技术领域

本发明涉及计算机操作系统领域的访问控制技术,具体涉及一种基于专家系统的AppArmor安全策略自动生成方法及系统。

背景技术

操作系统的安全性是信息系统的基础。作为操作系统安全体系结构的核心,强制访问控制(MAC)通过比较主体和客体的安全属性来确定是否允许主体访问客体。当前,主流的MAC解决方案包括SELinux,AppArmor,Smack等。这些解决方案通过根据预定义的安全策略限制主体对客体资源的访问,可以保护操作系统和应用程序免受攻击和行为不端的威胁。具体来说,这些安全策略指定如何控制用户使用特定应用程序时对客体资源(如文件、目录、网络端口等)的访问,以及应拒绝哪种未经授权的访问。安全策略的配置都需要对应用程序进行专业以及完备的分析,但是由于软件的复杂性,必须在安全配置文件中配置大量访问控制规则来满足严格的安全性要求。由于安全策略的生成需要完备和专业性的分析,使得需要经验充分的安全专家才可以为新应用程序配置安全策略,这也使得SELinux、AppArmor等安全子系统的应用受到了极大限制。

现有的AppArmor安全机制存在两个主要缺点,分别为大量的人工干预和仅生成粗粒度的AppArmor策略。现有的安全策略生成全程需要安全专家的参与,造成极大的人力成本以及仅能够生成粗粒度的安全策略。并且不同安全专家的技术水平以及策略书写风格不同,使得安全策略具有一定的主观性。即AppArmor策略的生成在一定程度上取决于每个专家的风格和技术,虽然这个问题可以通过比较多个专家的生成结果来解决,但是因此而增加的工作量也会带来问题。

发明内容

本发明要解决的技术问题:针对现有技术的上述问题,提供一种基于专家系统的AppArmor安全策略自动生成方法及系统,本发明基于专家系统实现AppArmor安全策略的自动生成,减少了生成AppArmor策略时对人类专家的依赖,能够有效地减轻手动配置Apparmor的安全策略时的复杂性和主观性,以及由于不当策略引起的安全威胁。

为了解决上述技术问题,本发明采用的技术方案为:

一种基于专家系统的AppArmor安全策略自动生成方法,包括:

1)获取目标应用程序执行所需访问的资源;

2)针对目标应用程序执行所需访问的每一项资源,通过专家系统获取该资源访问请求对应的建议权限及其置信度;

3)基于置信度对建议权限进行筛选;

4)根据筛选后的建议权限为目标应用程序生成AppArmor安全配置文件。

可选地,步骤1)中获取目标应用程序执行所需访问的资源是指在目标应用程序的审计日志中获取目标应用程序执行所需访问的资源。

可选地,步骤1)之前还包括获取目标应用程序的审计日志的步骤:将操作系统中的AppArmor切换为complain模式,在complain模式下将目标应用程序在自动测试工具中以最大代码覆盖率执行,从而得到目标应用程序完备的审计日志。

可选地,步骤2)中的专家系统包括领域知识库和权限推理模块,所述领域知识库用于记录资源及其对应的建议权限之间的映射关系,所述权限推理模块用于为被推理的资源查询领域知识库获取匹配的规则对应的建议权限,并计算建议权限的置信度。

可选地,所述领域知识库中的每一条规则为五元组,且该五元组的格式为:

rule=(role,resource,operation,is

其中,rule表示规则,role表示角色,resource表示资源在操作系统中的路径,operation表示用户对资源的使用操作,is

可选地,步骤2)之前包括创建预设的领域知识库的步骤:预先将操作系统中的资源进行分类,将操作系统中的用户依据其职能划分为不同的角色,将每个类别的建议权限分配给每个角色,并将分配的建议权限作为一条规则添加到领域知识库。

可选地,所述权限推理模块为被推理的资源查询领域知识库获取匹配的规则对应的建议权限,并计算建议权限的置信度的步骤包括:

2.1)将被推理的资源原始的路径作为当前查询路径;

2.2)基于当前查询路径,在预设的领域知识库中查询匹配的规则,若查询匹配的规则为空,则得到当前查询路径对应的权限为空,跳转步骤2.3);否则将匹配的规则所对应的权限作为当前查询路径对应的权限,跳转步骤2.4);

2.3)判断当前查询路径是否包含最低级子目录,若包含最低级子目录,则删除该最低级子目录后得到新的当前查询路径,跳转执行步骤2.2);否则,跳转步骤2.4);

2.4)从所有当前查询路径对应的权限中选取出现频率最高的权限作为建议权限,根据路径匹配度和权限的出现频率计算建议权限的置信度;

2.5)返回建议权限及其置信度。

可选地,步骤2.4)中计算建议权限的置信度的函数表达式为:

上式中,confidence表示该建议权限的置信度,Count

此外,本发明还提供一种基于专家系统的AppArmor安全策略自动生成系统,包括相互连接的微处理器和存储器,所述微处理器被编程或配置以执行所述基于专家系统的AppArmor安全策略自动生成方法的步骤。

此外,本发明还提供一种计算机可读存储介质,该计算机可读存储介质中存储有被编程或配置以执行所述基于专家系统的AppArmor安全策略自动生成方法的计算机程序。

和现有技术相比,本发明具有下述优点:

1、本发明方法包括获取目标应用程序执行所需访问的资源;针对目标应用程序执行所需访问的每一项资源,通过专家系统获取该资源访问请求对应的建议权限及其置信度;基于置信度对建议权限进行筛选;根据筛选后的建议权限为目标应用程序生成AppArmor安全配置文件。本发明基于专家系统实现AppArmor安全策略的自动生成,减少了生成AppArmor安全策略时对人类专家的依赖,能够有效地减轻手动配置Apparmor的安全策略时的复杂性和主观性,以及由于不当策略引起的安全威胁。

2、本发明方法并不受操作系统版本的限制,可用于对不同版本的Linux内核的操作系统实现自动生成策略,对AppArmor安全机制的使用带来了很大的便利。

附图说明

图1为本发明实施例方法的基本流程图。

图2为本发明实施例方法的基本原理架构示意图。

图3是本发明实施例中领域知识库创建流程示意图。

图4是本发明实施例中权限推理模块的执行流程示意图。

图5是本发明实施例中策略生成模块的工作流程图。

具体实施方式

如图1和图2所示,本实施例基于专家系统的AppArmor安全策略自动生成方法包括:

1)获取目标应用程序执行所需访问的资源;

2)针对目标应用程序执行所需访问的每一项资源,通过专家系统获取该资源访问请求对应的建议权限及其置信度;

3)基于置信度对建议权限进行筛选;

4)根据筛选后的建议权限为目标应用程序生成AppArmor安全配置文件。

AppArmor安全配置文件即为最终得到的AppArmor安全策略,在实际操作系统系统中表现为AppArmor安全配置文件,即可实现自动配置AppArmor的安全策略。

作为一种可选的实施方式,步骤1)中获取目标应用程序执行所需访问的资源是指在目标应用程序的审计日志中获取目标应用程序执行所需访问的资源(如文件、目录、网络端口等)。

本实施例中,步骤1)之前还包括获取目标应用程序的审计日志的步骤:将操作系统中的AppArmor切换为complain模式,在complain模式下将目标应用程序以最大代码覆盖率执行,从而得到目标应用程序完备的审计日志。由于AppArmor的特性之一,是会将拒绝消息细节存在审计日志文件中,因此应用程序的行为数据集在系统中的表现方式就是审计日志。因此本实施例中利用AppArmor可以记录违反尝试或错误操作的日志记录功能,通过多次运行应用程序或广泛收集历史日志获取完备的应用程序行为数据集(可以使用白盒测试工具来自动化应用程序的执行过程,以最大代码覆盖率执行应用程序,从而触发所有需要访问的路径)。

其中,以最大代码覆盖率执行是指尽量考虑目标应用程序的全方位的功能和流程,通过模拟覆盖目标应用程序全方位的功能和流程,使得覆盖最全面的代码执行过程。一方面可以通过自动化测试工具的测试脚本的方式来实现,另一方面也可以手动多次执行目标应用程序,获取尽可能多的违反安全性的报告。

此外,步骤1)获取目标应用程序执行所需访问的资源的方式也可以根据需要采用其他方式,例如包括在程序中声明的方式(比如必须声明才可以调用)、反编译获取的方式,以及采用其他测试监控的方式等等。

考虑到在Linux系统中以路径的形式表示,本实施例中步骤1)获取目标应用程序执行所需访问的资源采用路径的方式表示,例如/etc/shadow表示存放在etc文件夹下用于存储Linux系统中用户的密码信息的shadow文件。

专家系统用于指导资源访问请求与授予权限之间对应关系。如图2所示,本实施例步骤2)中的专家系统包括领域知识库和权限推理模块,领域知识库用于记录资源及其对应的建议权限之间的映射关系,权限推理模块用于为被推理的资源查询领域知识库获取匹配的规则对应的建议权限,并计算建议权限的置信度。领域知识库以领域知识的形式存储安全专家的知识,具体是指通过对资源对象进行分类并为每个角色分配每个类别的访问权限来构建;权限推理模块模拟安全专家在授权时的思考过程,由基于路径的置信度模型支持,所述基于路径的置信度模型基于资源路径的匹配程度和授予权限的频率来推断权限,从而实现最小特权。本实施例中遵循三权分立原则,因此用户以不同的角色获得使用系统的不同操作权限,领域知识则指示某一角色对一个或一组资源的可用操作,领域知识库和权限推理模块的执行过程都需要区分不同角色。

本实施例中,领域知识库中的每一条规则为五元组,且该五元组的格式为:

rule=(role,resource,operation,is

其中,rule表示规则,role表示角色,resource表示资源在操作系统中的路径,operation表示用户对资源的使用操作(如读、写、执行等),is

本实施例中,步骤2)之前包括创建预设的领域知识库的步骤:预先将操作系统中的资源进行分类,将操作系统中的用户依据其职能划分为不同的角色,将每个类别的建议权限分配给每个角色,并将分配的建议权限作为一条规则添加到领域知识库。

如图3所示,本实施例中知识库单元的构建步骤包括:A1)根据AppArmor安全策略规则的格式,总结构成规则的五个基本要素,以如下五元组的形式表示;A2)根据文件的功能、特性和实际应用需求将Linux系统的资源对象划分为不同的类别(如/usr/bin包含几乎所有用户命令,其他命令存储在/bin或/usr/local/bin中。因此,这三个目录及其中的资源文件被归类为bin类,授予所有角色该类别下资源对象的执行权限);A3)将系统的用户依据其职能划分为四个角色;A4)将每个类别的访问权限分配给每个角色,以上述规则五元组的形式表示成一条领域知识,比如knowledge=(common user,/etc/shadow,rw,yes,no),该知识表示普通用户对“/etc/shadow”文件不具有读写权限;A5)将领域知识由MySQL数据库管理。依据Linux文件系统层次结构标准,本实施例根据文件的功能、特性和实际应用需求将Linux下的文件进行原子级划分,从而资源对象划分成不同类别,为Linux中大量文件创建分类标准,并忽略不同发行版存在的文件名的差异。本实施例遵循三权分立的原则,因此将用户分为普通用户、审计管理员、系统管理员、安全管理员,然后依据对文件划分的原子级,给每个角色赋权。置信度模型拟通过路径匹配程序和权限的出现频率来衡量。

如图4所示,本实施例中,权限推理模块为被推理的资源查询领域知识库获取匹配的规则对应的建议权限,并计算建议权限的置信度的步骤包括:

2.1)将被推理的资源原始的路径作为当前查询路径;

2.2)基于当前查询路径,在预设的领域知识库中查询匹配的规则,若查询匹配的规则为空(NULL),则得到当前查询路径对应的权限为空,跳转步骤2.3);否则将匹配的规则所对应的权限作为当前查询路径对应的权限,跳转步骤2.4);

本实施例中,基于当前查询路径在预设的领域知识库中查询匹配的规则,是指将当前查询路径在领域知识库中通过SQL语句以查询字符串的形式查询。

2.3)判断当前查询路径是否包含最低级子目录,若包含最低级子目录,则删除该最低级子目录后得到新的当前查询路径,跳转执行步骤2.2);否则,跳转步骤2.4);

当前查询路径的各级子目录为以“/”作为分割符得到,例如,当前查询路径“/usr/include/python2.[4567]/pyconfig.h”包含四级子目录,分别为:/usr、/usr/include、/usr/include/python2.[4567]以及/usr/include/python2.[4567]/pyconfig.h,且其中最低级子目录为/usr/include/python2.[4567]/pyconfig.h,删除该最低级子目录后得到新的当前查询路径为“/usr/include/python2.[4567]”。

2.4)从所有当前查询路径对应的权限中选取出现频率最高的权限作为建议权限,根据路径匹配度和权限的出现频率计算建议权限的置信度;

2.5)返回建议权限及其置信度。

参见前文步骤2.1)~2.5)可知,本实施例中在得到当前查询路径对应的权限为空的情况下,通过逐级删除该最低级子目录后得到新的当前查询路径的方式迭代查询,实现了基于路径的置信度模型支持,使得基于路径的置信度模型基于资源路径的匹配程度和授予权限的频率来推断权限,从而实现最小特权。

权限推理模块包括资源路径匹配模块和置信度评估模块,且通过资源路径匹配模块和置信度评估模块交互触发与完成。资源路径匹配模块用于将实际路径与知识中的资源路径进行匹配,通过SQL语句以查询字符串的形式在数据库中进行查询需要确定权限的资源,即执行前述步骤2.1)~2.3);置信度评估模块用于当所述资源路径匹配模块未成功匹配时,基于路径提供建议的权限和对应置信度,即执行前述步骤2.4)~2.5)。

本实施例中,步骤2.4)中计算建议权限的置信度的函数表达式为:

上式中,confidence表示该建议权限的置信度,Count

如图5所示,本实施例中步骤1)通过日志解析器实现,日志解析器针对目标应用程序执行所需访问的每一项资源(资源1~资源N),将其输入专家系统中的权限推理模块,从而得到每一项资源访问请求对应的规则(规则1~规则N),每一条规则即为对应的建议权限以及置信度;步骤3)和4)通过策略生成模块实现,策略生成模块首先基于置信度对建议权限进行筛选,最后根据筛选后的建议权限为目标应用程序生成AppArmor安全配置文件(由于AppArmor的安全策略在实际系统中表现为AppArmor安全配置文件,因此策略生成模块以AppArmor安全配置文件的格式为基准生成目标应用程序的安全策略)。

本实施例中,基于置信度对建议权限进行筛选具体是指保留置信度超过预设阈值的建议权限,并将其余的建议权限删除。作为一种可选的实施方式,预设阈值可为50%,即当置信度超过50%,则采纳该建议权限;否则不采纳该资源的建议权限。

作为一种可选的实施方式,本实施例中步骤4)之后还包括将目标应用程序生成AppArmor安全配置文件部署到操作系统中,并将操作系统中的AppArmor切换为enforce模式以启用目标应用程序的AppArmor安全配置文件的步骤。

综上所述,本实施例基于专家系统的AppArmor安全策略自动生成方法中策略生成过程为:相关的审计日志被转发到日志解析器,以获得应用程序需要访问的资源;对于每项资源访问请求,将其传递到存储安全专家领域知识的MySQL数据库;通过MySQL数据库与权限推断模块之间的交互,可以获得有关每个资源访问请求的建议权限信息;将获得的信息合并到一个AppArmor安全配置文件中,该文件可以自动部署到系统中。之后,AppArmor将使用enforce模式并为应用程序提供最少的权限保护。本实施例基于专家系统的AppArmor安全策略自动生成方法实现了具备自动生成AppArmor安全策略能力的自动生成,解决了当前操作系统中使用AppArmor安全机制存在的大量人工干预和仅生成粗粒度安全策略的问题。由安全专家人工分析应用程序、手工编写安全策略转变为系统自动生成并部署AppArmor安全策略,减少了生成AppArmor策略时对人类专家的依赖。而且一方面,本实施例方法利用最小特权和基于角色的访问控制(Role-Based Access Control,简称RBAC)的原则,有效地减轻手动配置Apparmor的安全策略时的复杂性和主观性,以及由于不当策略引起的安全威胁。另一方面,本实施例方法权限推理模块能够针对不同用户角色对不同系统资源的访问提供建议权限以及置信度。基于经由RBAC原则扩展后的AppArmor机制,RBAC遵循最小特权、用户去中心化以及数据抽象的原则,增强AppArmor的安全性和灵活性,使得AppArmor安全策略自动生成系统在一定程度上满足用户的不同需求。通过初步的实验验证,在Ubuntu16.04系统上,通过本实施例可为应用程序自动生成安全、可靠的AppArmor安全策略。因此,本实施例方法要解决的技术问题是如何通过自动化策略生成的过程,实现以最小特权和基于角色的访问控制(Role-Based Access Control,简称RBAC)的原则自动生成安全策略,从而有效地减轻手动配置AppArmor的安全策略时的复杂性和主观性,以及由于不当策略引起的安全威胁。使用本实施例方法,操作系统可以将系统资源的被访问和管理至于安全性更高的访问控制机制中,并使得访问控制策略的生成和部署过程自动化、客观化。

此外,本实施例还提供一种基于专家系统的AppArmor安全策略自动生成系统,包括相互连接的微处理器和存储器,所述微处理器被编程或配置以执行所述基于专家系统的AppArmor安全策略自动生成方法的步骤。

此外,本实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有被编程或配置以执行所述基于专家系统的AppArmor安全策略自动生成方法的计算机程序。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可读存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

相关技术
  • 基于专家系统的AppArmor安全策略自动生成方法及系统
  • 基于会话流量日志的防火墙安全策略自动生成方法
技术分类

06120112836862