CN116775563A - 一种文件访问控制方法、装置、设备及存储介质 - Google Patents

一种文件访问控制方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN116775563A
CN116775563A CN202310744321.1A CN202310744321A CN116775563A CN 116775563 A CN116775563 A CN 116775563A CN 202310744321 A CN202310744321 A CN 202310744321A CN 116775563 A CN116775563 A CN 116775563A
Authority
CN
China
Prior art keywords
access control
file
file access
preset
ebpf
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
CN202310744321.1A
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.)
DBAPPSecurity Co Ltd
Original Assignee
DBAPPSecurity 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 DBAPPSecurity Co Ltd filed Critical DBAPPSecurity Co Ltd
Priority to CN202310744321.1A priority Critical patent/CN116775563A/zh
Publication of CN116775563A publication Critical patent/CN116775563A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种文件访问控制方法、装置、设备及存储介质,涉及信息安全技术领域,应用于Linux系统,包括:获取预设文件访问控制策略;预设文件访问控制策略为基于文件敏感性、进程重要性和用户可靠性制定的文件访问控制策略;对预设文件访问控制策略进行解析,并将得到的解析后数据保存至eBPF程序的预设哈希映射;将eBPF程序编译为字节码,并生成与字节码对应的脚手架文件,以根据字节码以及脚手架文件完成文件访问控制的过程;脚手架文件包含字节码以及相应的加载函数、挂载函数和卸载函数。这样一来,本申请可以通过开发便捷且高效的eBPF LSM程序以及包含相关函数的脚手架文件实现文件访问控制,简化了后续调用过程。

Description

一种文件访问控制方法、装置、设备及存储介质
技术领域
本发明涉及信息安全技术领域,特别涉及一种文件访问控制方法、装置、设备及存储介质。
背景技术
内核驱动InlinkHook、SELinux和AppArmor是常见的Linux操作系统中用于文件访问控制的技术方案。此类技术的核心原理都是通过内核层的实现来拦截和过滤系统中的文件访问请求,从而保护系统的安全性。
内核驱动需要适配特定的内核版本,因此编写、测试和维护内核驱动需要相对更高的技术水平和专业知识。同时,由于内核驱动不是内核原生子系统,但又直接操作系统内核,如果内核驱动出现问题,轻则可能导致系统运行效率下降,重则可能导致系统崩溃或者安全漏洞。而SELinux的配置和管理比较复杂,需要较强的专业知识,对使用者不够友好。另外AppArmor的访问控制粒度相对较粗,需要预先收集要限制的进程名,灵活性相对较低。另一个缺点是策略加载时间比较长,影响系统启动速度。
由此可见,如何提高文件访问控制的效率以及灵活性是本领域要解决的问题。
发明内容
有鉴于此,本发明的目的在于提供一种文件访问控制方法、装置、设备及存储介质,可以利用开发便捷eBPF LSM程序实现文件访问控制,相比于现有访问控制框架更具灵活性以及性能优势。其具体方案如下:
第一方面,本申请提供了一种文件访问控制方法,应用于Linux系统,包括:
获取预设文件访问控制策略;所述预设文件访问控制策略为基于文件敏感性、进程重要性和用户可靠性制定的文件访问控制策略;
对所述预设文件访问控制策略进行解析,并将得到的解析后数据保存至eBPF程序的预设哈希映射;
将所述eBPF程序编译为字节码,并生成与所述字节码对应的脚手架文件,以根据所述字节码以及所述脚手架文件完成文件访问控制的过程;所述脚手架文件包含字节码以及相应的加载函数、挂载函数和卸载函数。
可选的,所述基于文件敏感性、进程重要性和用户可靠性制定文件访问控制策略的过程,包括:
根据文件内容和/或文件格式将文件划分为若干文件等级;
根据进程的来源和/或进程对系统稳定性的影响将进程划分为若干个进程等级;
根据用户的特殊权限和/或历史行为记录将用户划分为若干个用户等级;
利用第一预设权重、第二预设权重和第三预设权重分别对所述文件等级、所述进程等级和所述用户等级进行计算,以得到若干个等级分数;
基于所述等级分数制定出相应的文件访问策略,以得到所述预设文件访问控制策略。
可选的,所述将得到的解析后数据保存至eBPF程序的预设哈希映射之前,还包括:
判断eBPF的配置文件的版本是否符合预设版本条件;
若否,则对所述配置文件进行升级,得到升级后eBPF程序,以便将得到的解析后数据保存至所述升级后eBPF程序的预设哈希映射。
可选的,所述将所述eBPF程序编译为字节码,包括:
利用支持LLVM的编译器将所述eBPF程序编译为字节码。
可选的,所述生成与所述字节码对应的脚手架文件,包括:
通过bpftool工具生成与所述字节码对应的脚手架文件,以便基于所述脚手架文件调用与所述字节码相关的函数。
可选的,所述方法还包括:
当获取到新文件访问控制策略时,基于所述新文件访问控制策略修改所述eBPF程序的所述预设哈希映射,以便通过所述eBPF程序完成文件访问控制的过程。
可选的,所述通过所述eBPF程序完成文件访问控制的过程,包括:
通过所述预设哈希映射获取与所述当前文件访问行为对应的执行结果;
打印所述执行结果;
和/或,将所述执行结果保存至预设日志文件中。
第二方面,本申请提供了一种文件访问控制装置,应用于Linux系统,包括:
策略获取模块,用于获取预设文件访问控制策略;所述预设文件访问控制策略为基于文件敏感性、进程重要性和用户可靠性制定的文件访问控制策略;
策略保存模块,用于对所述预设文件访问控制策略进行解析,并将得到的解析后数据保存至eBPF程序的预设哈希映射;
脚手架文件生成模块,用于将所述eBPF程序编译为字节码,并生成与所述字节码对应的脚手架文件;
文件访问控制模块,用于根据所述字节码以及所述脚手架文件完成文件访问控制的过程;所述脚手架文件包含字节码以及相应的加载函数、挂载函数和卸载函数。
第三方面,本申请提供了一种电子设备,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序以实现如上述的文件访问控制方法。
第四方面,本申请提供了一种计算机可读存储介质,用于保存计算机程序,所述计算机程序被处理器执行时实现如上述的文件访问控制方法。
由此可见,本申请获取预设文件访问控制策略;所述预设文件访问控制策略为基于文件敏感性、进程重要性和用户可靠性制定的文件访问控制策略;然后对所述预设文件访问控制策略进行解析,并将得到的解析后数据保存至eBPF程序的预设哈希映射;再将所述eBPF程序编译为字节码,并生成与所述字节码对应的脚手架文件,以根据所述字节码以及所述脚手架文件完成文件访问控制的过程;所述脚手架文件包含字节码以及相应的加载函数、挂载函数和卸载函数。这样一来,本申请可以基于预设文件访问控制策略利用开发便捷并且高效的eBPF LSM程序实现文件访问控制,并且利用包含相关函数的脚手架文件可以高效完成相应的文件访问控制,简化了后续调用过程,提高了文件访问控制的性能和效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请公开的一种文件访问控制方法流程图;
图2为本申请公开的一种具体的文件访问控制方法流程图;
图3为本申请公开的一种具体的程序开发方法流程图;
图4为本申请公开的一种具体的程序使用方法流程图;
图5为本申请公开的一种具体的文件访问控制策略设计方法流程图;
图6为本申请公开的一种具体文件访问行为合法程度判断方法流程图;
图7为本申请公开的一种文件访问控制装置结构示意图;
图8为本申请公开的一种电子设备结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请可以设计完备易用的策略,再通过eBPF LSM模块实现更细粒度的文件访问控制,防止未授权的访问。区别于现有的内核驱动InlineHook、AppArmor与SELinux技术,本申请的方案具有更优秀的性能、更高的灵活性和更好的安全性。
参见图1所示,本发明实施例公开了一种文件访问控制方法,包括:
步骤S11、获取预设文件访问控制策略;所述预设文件访问控制策略为基于文件敏感性、进程重要性和用户可靠性制定的文件访问控制策略。
本申请利用eBPF LSM程序实现文件访问控制的过程,如图2所示,可以包括设计访问控制策略、开发eBPF LSM程序,以及使用eBPF LSM程序的过程。而eBPF LSM程序主要包括内核态和用户态两个方面;内核态主要负责策略匹配和控制逻辑处理,用户态主要负责管理运行状态。本申请实施例中,首先可以获取预设文件访问控制策略,需要指出的是,该预设文件访问控制策略为基于文件敏感性、进程重要性以及用户可靠性来制定的文件访问控制策略。
步骤S12、对所述预设文件访问控制策略进行解析,并将得到的解析后数据保存至eBPF程序的预设哈希映射。
进一步的,可以对预设文件访问控制策略进行解析;可以理解的是,在开发eBPFLSM程序时,需要将相应的策略写到eBPF LSM程序中,本实施例中,可以将对预设文件访问控制策略解析得到的解析后数据保存至eBPF程序的预设哈希映射;其中,在eBPF程序的映射区,可以定义出于策略相关的结构,如字符类型的文件路径、枚举类型的处理方式等。进一步的,在具体的实施例中,可以在eBPF程序中定出以LSM+hook点为名称的程序区,并定义eBPF LSM类型的处理函数。而支持的hook点可以在Linux内核的lsm_hooks.h文件中查询到,添加包括但不限于inode和file系列钩子。通常处理函数中需要通过ebpf辅助函数获取到本次文件访问的相关信息,其中包括访问文件的用户ID、进程名、进程ID、父进程ID、主机名、命名空间、控制组、socket、文件inode等参数,用于后续配合策略进行决策。
在一种具体的实施例中,所述将得到的解析后数据保存至eBPF程序的预设哈希映射之前,还可以包括:判断eBPF的配置文件的版本是否符合预设版本条件;若否,则对所述配置文件进行升级,得到升级后eBPF程序,以便将得到的解析后数据保存至所述升级后eBPF程序的预设哈希映射。具体的,可以先判断eBPF的配置文件是否合适,若不合适,则可以对响应的配置文件进行升级,以便将解析后数据保存至升级后的eBPF程序的预设哈希映射中。在一种具体的实施例中,可以先通过/boot/config-$(uname-r)查询内核配置文件的CONFIG_LSM字段是否包含了bpf。如果没有的话,可以通过下面两种方式处理:其一是在开机引导文件中添加内核启动参数lsm=bpf并重启,其二是在/etc/sysctl.conf文件中添加参数lsm=bpf,并通过sysctl-p生效。并且于Linux内核不需要再引入众多的内核头文件以获取内核的数据结构定义,同时也可以动态适应各个版本内核之间的数据结构差异,因此开发eBPF LSM程序时可以使用bpftool从/sys/kernel/btf/vmlinux中生成vmlinux.h这一个总的内核头文件。
步骤S13、将所述eBPF程序编译为字节码,并生成与所述字节码对应的脚手架文件,以根据所述字节码以及所述脚手架文件完成文件访问控制的过程;所述脚手架文件包含字节码以及相应的加载函数、挂载函数和卸载函数。
本申请实施例中,在eBPF LSM程序的内核态中,可以将eBPF程序编译为字节码,并生成与所述字节码对应的脚手架文件,以根据所述字节码以及所述脚手架文件完成文件访问控制的过程。具体的,所述将所述eBPF程序编译为字节码,可以包括:利用支持LLVM的编译器将所述eBPF程序编译为字节码。相应的,所述生成与所述字节码对应的脚手架文件,可以包括:通过bpftool工具生成与所述字节码对应的脚手架文件,以便基于所述脚手架文件调用与所述字节码相关的函数。在具体的实施例中,可以使用支持llvm的编译器,如clang,编译时需要指定目标为bpf,架构为对应处理器,将eBPF程序编译成字节码。然后可以使用bpftool gen skeleton为eBPF字节码生成脚手架文件,这样得到的脚手架文件可以包含eBPF字节码以及相关的加载、挂载和卸载函数,以供后续在用户态程序中直接调用。在具体的实施例中,用户态的组件可以使用libbpf库开发,在代码中引入脚手架文件,可以增大RLIMIT_MEMLOCK用来存储更多的eBPF哈希映射,依次初始化eBPF程序、加载eBPF字节码、挂载eBPF LSM hook点、注册好eBPF LSM hook点处理函数函数。在具体的实施例中,如图3所示,内核态中,首先检查内核eBPF配置,启用eBPF LSM模块;再生成内核头文件;之后定义eBPF哈希映射和eBPF LSM hook点处理函数;再编译eBPF程序为字节码并生成脚手架文件。用户态中,可以解析文件访问策略,转换存储到eBPF哈希映射中;再加载eBPF字节码,挂载到内核eBPF LSM模块。之后便可以通过该eBPF LSM程序实现文件访问控制的过程。
在一种具体的实施例中,还可以包括:当获取到新文件访问控制策略时,基于所述新文件访问控制策略修改所述eBPF程序的所述预设哈希映射,以便通过所述eBPF程序完成文件访问控制的过程。具体的,当有新的文件当问策略时,可以直接根据新的文件访问控制策略修改eBPF映射;为了保证Linux内核稳定,eBPF验证器验证通过后程序才会正常执行。所述通过所述eBPF程序完成文件访问控制的过程,包括:通过所述预设哈希映射获取与所述当前文件访问行为对应的执行结果;打印所述执行结果;和/或,将所述执行结果保存至预设日志文件中。具体的,如图4所示,下发新配置的文件访问控制策略,触发策略之后,可以通过eBPF映射获取和打印执行结果;也可以选择将执行结果写入到指定的文件中。
由此可见,本申请可以利用eBPF LSM程序实现文件访问控制的过程,eBPF LSM程序开发便捷,支持一次编译到处使用;可以根据不同的业务需求定制更精细的安全策略,多维度混合编写方法简单;并且可以实时更新策略,随时启用和停用,无需重新编译内核。进一步的,eBPF LSM程序运行在内核独立的BPF虚拟机中,不影响其他驱动程序的使用,不影响系统的稳定性,可以与其他访问控制框架共存。较少的用户态数据拷贝,加上指令层面的优化也能保证其高效性。同时,eBPF LSM程序的运行需要通过其本身的验证器,在一定程度上可以避免由于内核驱动缺陷导致的一系列系统问题。这样可以提高文件访问控制的性能以及效率。
前述实施例具体介绍了开发eBPF LSM程序的相关内容,下面实施例将具体介绍设计文件访问控制策略的相关内容;参见图5所示,本发明实施例公开了一种文件访问控制方法,包括:
步骤S51、根据文件内容和/或文件格式将文件划分为若干文件等级。
本申请中,可以定义几个标签,分别对应文件敏感性、进程重要性和用户可靠性。在具体的实施例中,可以将文件敏感性分为非敏感、敏感、高敏感三级;可以根据文件格式来定义,比如数据库文件比普通文本更加敏感;根据信息量来定义,比如信息熵高的文件比信息熵低的更加敏感;根据文件属性来定义,比如只读文件比可执行文件、共享文件更加敏感等。
步骤S52、根据进程的来源和/或进程对系统稳定性的影响将进程划分为若干个进程等级。
相应的,在具体的实施例中,也可以将进程重要性分为低、中、高三级;根据业务流程来定义,比如负责核心业务的进程重要性较高;根据系统的稳定性来定义,比如操作系统内核进程的重要性较高;根据来源来定义,比如运行在指定命名空间、控制组的进程重要性较高等。
步骤S53、根据用户的特殊权限和/或历史行为记录将用户划分为若干个用户等级。
进一步的,在具体的实施例中,可以将用户可靠性分为不可靠、普通、可靠三级。根据特殊权限来定义,比如具有管理员权限的用户可靠性高于其他用户;根据历史行为记录来定义,比如经常访问的用户可靠性高于从未访问过的用户;根据账户登录时间、IP归属地来定义,比如指定范围内访问的用户可靠性高于其他用户等。
步骤S54、利用第一预设权重、第二预设权重和第三预设权重分别对所述文件等级、所述进程等级和所述用户等级进行计算,以得到若干个等级分数。
本申请实施例中,可以为每一个标签的等级赋予权重,具体计算出每个等级对应的等级分数,这样可以根据不同的等级分数制定不同的应对策略。这样在后续执行的过程中,可以根据实际的文件访问情况利用相应的的预设权重计算出对应的等级分数。
步骤S55、基于所述等级分数制定出相应的文件访问策略,以得到所述预设文件访问控制策略。
本申请实施例中,可以根据步骤S24计算出的不同文件、进程、用户等级对应的等级分数,制定出相应的文件访问策略;比如,阻断并记录、阻断N次并记录、放行并记录、放行N次并记录、不记录等限制规则。在一种具体的实施例中,如图6所示,根据文件敏感性、进程重要性、用户可靠性来判断此次文件访问行为的合法程度;一次文件访问控制过程,假设敏感性级别的权重为0.5,进程重要性级别的权重为0.3,用户可靠性级别的权重为0.2,三者之和为1。那么此次文件访问行为的合法程度为0.5x+0.3y+0.2z,得分范围在0到1之间,得分越高,表示访问行为越合法。对于不同的等级区间,可以使用不同的限制规则,也支持直接配置特定的标签下使用特定的规则。
由此可见,本申请可以基于文件敏感性、进程重要性和用户可靠性制定出不同限制程度的文件访问控制策略,综合考虑多种信息,可以提高文件访问控制策略的可靠性;并且能够满足大多数的使用场景,进一步提高了文件访问控制的安全性。
如图7所示,本申请公开了一种文件访问控制装置,包括:
策略获取模块11,用于获取预设文件访问控制策略;所述预设文件访问控制策略为基于文件敏感性、进程重要性和用户可靠性制定的文件访问控制策略;
策略保存模块12,用于对所述预设文件访问控制策略进行解析,并将得到的解析后数据保存至eBPF程序的预设哈希映射;
脚手架文件生成模块13,用于将所述eBPF程序编译为字节码,并生成与所述字节码对应的脚手架文件;
文件访问控制模块14,用于根据所述字节码以及所述脚手架文件完成文件访问控制的过程;所述脚手架文件包含字节码以及相应的加载函数、挂载函数和卸载函数。
由此可见,本申请可以获取预设文件访问控制策略;然后对所述预设文件访问控制策略进行解析,并将得到的解析后数据保存至eBPF程序的预设哈希映射;再将所述eBPF程序编译为字节码,并生成与所述字节码对应的脚手架文件,以根据所述字节码以及所述脚手架文件完成文件访问控制的过程;所述脚手架文件包含字节码以及相应的加载函数、挂载函数和卸载函数。这样一来,本申请可以基于预设文件访问控制策略利用开发便捷并且高效的eBPF LSM程序实现文件访问控制,并且利用包含相关函数的脚手架文件可以高效完成相应的文件访问控制,简化了后续调用过程,提高了文件访问控制的性能和效率。
在一种具体的实施例中,所述装置可以包括:
文件划分单元,用于根据文件内容和/或文件格式将文件划分为若干文件等级;
进程划分单元,用于根据进程的来源和/或进程对系统稳定性的影响将进程划分为若干个进程等级;
用户划分单元,用于根据用户的特殊权限和/或历史行为记录将用户划分为若干个用户等级;
等级分数计算单元,用于利用第一预设权重、第二预设权重和第三预设权重分别对所述文件等级、所述进程等级和所述用户等级进行计算,以得到若干个等级分数;
策略制定单元,用于基于所述等级分数制定出相应的文件访问策略,以得到所述预设文件访问控制策略。
在一种具体的实施例中,所述装置还可以包括:
版本判断单元,用于判断eBPF的配置文件的版本是否符合预设版本条件;
程序升级单元,用于当eBPF的配置文件的版本不符合预设版本条件时,对所述配置文件进行升级,得到升级后eBPF程序,以便将得到的解析后数据保存至所述升级后eBPF程序的预设哈希映射。
在一种具体的实施例中,所述脚手架文件生成模块13,可以包括:
字节码编译单元,用于利用支持LLVM的编译器将所述eBPF程序编译为字节码。
在另一种具体的实施例中,所述脚手架文件生成模块13,可以包括:
脚手架文件生成单元,用于通过bpftool工具生成与所述字节码对应的脚手架文件,以便基于所述脚手架文件调用与所述字节码相关的函数。
在一种具体的实施例中,所述装置还可以包括:
映射修改单元,用于当获取到新文件访问控制策略时,基于所述新文件访问控制策略修改所述eBPF程序的所述预设哈希映射,以便通过所述eBPF程序完成文件访问控制的过程。
在另一种具体的实施例中,所述装置可以包括:
执行结果获取单元,用于通过所述预设哈希映射获取与所述当前文件访问行为对应的执行结果;
结果打印单元,用于打印所述执行结果;
结果保存单元,用于将所述执行结果保存至预设日志文件中。
进一步的,本申请实施例还公开了一种电子设备,图8是根据一示例性实施例示出的电子设备20结构图,图中的内容不能认为是对本申请的使用范围的任何限制。
图8为本申请实施例提供的一种电子设备20的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的文件访问控制方法中的相关步骤。另外,本实施例中的电子设备20具体可以为电子计算机。
本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源可以包括操作系统221、计算机程序222等,存储方式可以是短暂存储或者永久存储。
其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,其可以是Windows Server、Netware、Unix、Linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的文件访问控制方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。
进一步的,本申请还公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的文件访问控制方法。关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本申请所提供的技术方案进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (10)

1.一种文件访问控制方法,其特征在于,应用于Linux系统,包括:
获取预设文件访问控制策略;所述预设文件访问控制策略为基于文件敏感性、进程重要性和用户可靠性制定的文件访问控制策略;
对所述预设文件访问控制策略进行解析,并将得到的解析后数据保存至eBPF程序的预设哈希映射;
将所述eBPF程序编译为字节码,并生成与所述字节码对应的脚手架文件,以根据所述字节码以及所述脚手架文件完成文件访问控制的过程;所述脚手架文件包含字节码以及相应的加载函数、挂载函数和卸载函数。
2.根据权利要求1所述的文件访问控制方法,其特征在于,所述基于文件敏感性、进程重要性和用户可靠性制定文件访问控制策略的过程,包括:
根据文件内容和/或文件格式将文件划分为若干文件等级;
根据进程的来源和/或进程对系统稳定性的影响将进程划分为若干个进程等级;
根据用户的特殊权限和/或历史行为记录将用户划分为若干个用户等级;
利用第一预设权重、第二预设权重和第三预设权重分别对所述文件等级、所述进程等级和所述用户等级进行计算,以得到若干个等级分数;
基于所述等级分数制定出相应的文件访问策略,以得到所述预设文件访问控制策略。
3.根据权利要求1所述的文件访问控制方法,其特征在于,所述将得到的解析后数据保存至eBPF程序的预设哈希映射之前,还包括:
判断eBPF的配置文件的版本是否符合预设版本条件;
若否,则对所述配置文件进行升级,得到升级后eBPF程序,以便将得到的解析后数据保存至所述升级后eBPF程序的预设哈希映射。
4.根据权利要求1所述的文件访问控制方法,其特征在于,所述将所述eBPF程序编译为字节码,包括:
利用支持LLVM的编译器将所述eBPF程序编译为字节码。
5.根据权利要求4所述的文件访问控制方法,其特征在于,所述生成与所述字节码对应的脚手架文件,包括:
通过bpftool工具生成与所述字节码对应的脚手架文件,以便基于所述脚手架文件调用与所述字节码相关的函数。
6.根据权利要1至5任一项所述的文件访问控制方法,其特征在于,还包括:
当获取到新文件访问控制策略时,基于所述新文件访问控制策略修改所述eBPF程序的所述预设哈希映射,以便通过所述eBPF程序完成文件访问控制的过程。
7.根据权利要求6所述的文件访问控制方法,其特征在于,所述通过所述eBPF程序完成文件访问控制的过程,包括:
通过所述预设哈希映射获取与所述当前文件访问行为对应的执行结果;
打印所述执行结果;
和/或,将所述执行结果保存至预设日志文件中。
8.一种文件访问控制装置,其特征在于,应用于Linux系统,包括:
策略获取模块,用于获取预设文件访问控制策略;所述预设文件访问控制策略为基于文件敏感性、进程重要性和用户可靠性制定的文件访问控制策略;
策略保存模块,用于对所述预设文件访问控制策略进行解析,并将得到的解析后数据保存至eBPF程序的预设哈希映射;
脚手架文件生成模块,用于将所述eBPF程序编译为字节码,并生成与所述字节码对应的脚手架文件;
文件访问控制模块,用于根据所述字节码以及所述脚手架文件完成文件访问控制的过程;所述脚手架文件包含字节码以及相应的加载函数、挂载函数和卸载函数。
9.一种电子设备,其特征在于,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序以实现如权利要求1至7任一项所述的文件访问控制方法。
10.一种计算机可读存储介质,其特征在于,用于保存计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的文件访问控制方法。
CN202310744321.1A 2023-06-21 2023-06-21 一种文件访问控制方法、装置、设备及存储介质 Pending CN116775563A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310744321.1A CN116775563A (zh) 2023-06-21 2023-06-21 一种文件访问控制方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310744321.1A CN116775563A (zh) 2023-06-21 2023-06-21 一种文件访问控制方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN116775563A true CN116775563A (zh) 2023-09-19

Family

ID=87990881

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310744321.1A Pending CN116775563A (zh) 2023-06-21 2023-06-21 一种文件访问控制方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN116775563A (zh)

Similar Documents

Publication Publication Date Title
US10528363B2 (en) Conservative class preloading for real time java execution
US6931544B1 (en) Method and apparatus for executing multiple JAVA(™) applications on a single JAVA(™) virtual machine
US7788637B2 (en) Operating system process identification
US8626786B2 (en) Dynamic language checking
US20070061818A1 (en) Detection of devices during operating system setup
US10963267B2 (en) Bootstrapping profile-guided compilation and verification
EP3014479A2 (en) Omega names: name generation and derivation
US9116770B2 (en) Recipe-based application conversion
KR20080099247A (ko) 데이터 구조가 저장되어 있는 적어도 하나의 컴퓨터판독가능 매체 및 시스템
US9483508B1 (en) Omega names: name generation and derivation
CN112558946A (zh) 一种生成代码的方法、装置、设备和计算机可读存储介质
US8196128B2 (en) System and method for providing a filtering classloader in a computer environment
CN111679852B (zh) 一种冲突依赖库的检测方法及装置
JP2012529711A (ja) ソフトウェア拡張子解析方法及びシステム
CN116578282A (zh) 代码生成方法、装置、电子设备及介质
CN116775563A (zh) 一种文件访问控制方法、装置、设备及存储介质
WO2011157105A2 (zh) 组件扩展方法和装置
US20070083860A1 (en) SKU determination mechanism and API
US20030204525A1 (en) Application control method, and implementation device and processing program for the same
CN109426546A (zh) 应用启动方法及装置、计算机存储介质及设备
US20120124361A1 (en) Plurality of interface files usable for access to bios
EP2431897A1 (en) Inter-process interference elimination
CN111414175A (zh) 操作系统的网络安装方法、系统、装置及可读存储介质
US11423148B2 (en) Preventing discovery of unique identifiers in firmware
CN114638004B (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