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

一种基于信任度的Docker进程安全访问控制方法与流程

2022-06-22 18:18:33 来源:中国专利 TAG:

一种基于信任度的docker进程安全访问控制方法
技术领域
1.本发明涉及容器和信任访问控制技术领域,具体地说,是一种基于信任度的docker进程安全访问控制方法,用于将用户信任度的访问控制和mnt-namespace文件名/目录随机化相结合,通过mnt-namespace文件名/目录的随机化来控制进程对文件名/目录的访问。


背景技术:

2.selinux(security-enhancedlinux)是mac的一种,是linux通过独立的组件或标签来建立细粒度安全执行策略和类型加强(te)。android系统中包含selinux(处于强制模式)和默认适用于整个android开放源代码(androidopensourceproject,aosp)的相应安全政策。在强制模式下,非法操作会被阻止,并且尝试进行的所有违规行为都会被内核记录到dmesg和logcat中。但是,许多情况下selinux被禁用或不执行加强策略,此外,selinux通常在策略文件本身或不适当地应用标签内发现漏洞或弱点。与任何其他mac系统一样,由于缺乏对系统调用或其他内核边界情况限制,selinux的漏洞或弱点也可以导致导致重大的漏洞,甚至可能导致整个系统受到攻击。
3.为实现访问控制,apparmor安全模块以可加载的形式插入到lsm安全框架中,这样apparmor能识别文件和posix.1e权能草案两种资源,apparmor控制所有对这两种资源的访问,并将应用程序限制在这两种资源方位之内。因此,apparmor能有效地阻止被限制的程序以不被允许的方式访问这两种资源。在使用过程中,apparmor模块虽然能很好地限制经过配置过的程序,但它基于路径来识别程序文件,一旦程序文件被替换,它就可能会执行一些带病毒的程序,就不能很好地保护系统,入侵者就可绕过该安全模块达到破坏系统的目的。
4.在linux容器虚拟化技术方面,seccomp则可以为不可信的纯计算型代码提供一个安全的运行环境,以保护系统和应用程序的正常运行不受不可信代码的干扰。seccomp可以过滤程序中的系统调用,使进程运行在一种比较安全的模式,在这种模式下,进程只允许执行限制的系统调用集。如果在程序中执行了seccomp策略之外的系统调用,进程将会被终止。对于一个进程而言,在其生命周期有很多系统调用没有使用到,而其使用的有些系统调用都是不安全的,在系统调用的过程中会产生很多漏洞,这样会给其他不可信的进程带来可乘之机,使系统遭受攻击。简洁、优美是seccomp的优点,但只能支持纯计算型代码却使得其应用受到很大限制。比如,seccomp模式的进程不能动态分配内存、不能与其它进程使用共享内存、不能使用新的文件描述符等等。如果要支持具有丰富功能的应用程序,则需要另外的方法来截获并处理其它系统调用。对于容来说,内核系统调用接口是重要的攻击面,所以使用seccomp来进一步隔离容器是很有用的。但目前只有docker支持seccomp-bpf,而lxcv1.0只把seccomp作为可选项。seccomp-bpf没有广泛应用的主要原因是系统调用的白名单与黑名单难以设定、需要的系统调用本身存在安全漏洞以及seccomp性能损耗比较大。


技术实现要素:

5.本发明的目的在于提供一种基于信任度的docker进程安全访问控制方法,用于将用户信任度的访问控制和mnt-namespace文件名/目录随机化相结合,达到动态控制进程对已创建的docker容器的访问及其权限的效果。
6.本发明通过下述技术方案实现:一种基于信任度的docker进程安全访问控制方法,包括以下步骤:
7.步骤s1.输入容器所在宿主机的系统安全参数,获取系统公共参数和系统主密钥并输出;
8.步骤s2.遍历文件名/目录,并进行填充,然后使用步骤s1中输出的系统公共参数作为公钥对文件名/目录进行随机化加密处理,获取随机化后的文件名/目录;
9.步骤s3.根据步骤s1中输出的系统公共参数和系统主密钥将各文件名/目录对应的访问权限生成对应的私钥;
10.步骤s4.基于用户信任度的访问控制结构根据发出访问请求的用户的属性对步骤s3中的私钥进行分配,将其分配给对应信任度的用户进程;
11.步骤s5.使用可信时间戳验证验证用户的私钥的时效性和准确性;
12.步骤s6.用户进程访问文件名/目录时,进行判断并用私钥进行解密。
13.在本发明中,零信任中基于信任的访问控制模型,零信任安全的本质是基于信任的访问控制,具体实践中需要充分考虑授权策略的自适应、可管理、可扩展几方面的平衡。建议采用基于角色的访问控制模型rbac和基于属性的访问控制模型abac相结合的方式。通过rbac实现粗粒度授权,建立满足最小权限原则的权限基线;通过abac模型,基于主体、客体和环境属性实现角色的动态映射,满足灵活的管理需求;通过风险评估和分析,对角色和权限进行过滤,实现场景和风险感知的动态授权。经典的访问控制框架包含4个访问控制功能组件:发起者(initiator)、目标(target)、访问控制实施功能(aef)、访问控制判决功能(adf),大部分的访问控制及授权方案都可以抽象为此框架模型。发起者代表访问或试图访问目标的人和基于计算机的实体。目标代表被发起者所访问或试图访问的基于计算机或通信的实体。例如,目标可能是一个osi层实体,一个文件,或一个实系统。访问请求代表操作和操作数,它们构成一个试图进行的访问的基本成分。aef(access control enforcement function,访问控制实施功能)确保发起者在目标上只能执行由adf确定而允许的访问。当发起者做出在目标上执行特定访问的请求时,aef就通知adf,需要进行判决以便能做出决定。adf(access control decision function,访问控制判决功能)的其他输入是访问控制策略规则(来自该adf的安全域机构),以及解释adi或策略所需要的任何上下文信息。上下文信息的示例包括发起者的位置,访问时间,或使用的特殊通信路径。基于这些输入,可能还有以前判决中保留下来的adi,adf可以做出允许或禁止发起者试图对目标进行访问的判决。该判决被传递给aef,然后aef或者允许将访问请求传给目标,或者采取其他适当的动作。linux容器场景下实现对进程和其相关的资源的隔离,这些资源同样也包括了进程的文件系统环境。这就要求容器中有一个独立的文件环境,而容器中的进程共享这个文件系统环境,即容器自己的根文件系统环境。所以内核引入了mnt-namespace的概念,来实现文件系统环境的隔离。cp-abe(ciphertext policy attribute based encryption,密文策略属性基加密系统):所谓密文政策加密系统是指,密文对应于一个访问结构而密钥对应于属性
集合,解密当且仅当属性集合中的属性能够满足此访问结构。
14.时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数,通俗的讲,时间戳是一份能够表示一份数据在一个特定时间点已经存在的完整的可验证的数据。
15.为了更好地实现本发明,进一步地所述随机化加密处理方法和解密处理方法为cp-abe算法。
16.为了更好地实现本发明,进一步地,步骤s2包括:
17.通过mnt-namespace文件名/目录的随机化来控制进程对文件名/目录的访问;
18.先read direct遍历文件名/目录,再用fill direct进行填充得到需要进行随机化处理的文件名/目录。
19.为了更好地实现本发明,进一步地,步骤s4中用户信任度的具体计算方法包括:获取结构元素u,所述结构元素u是对mnt-namespace内文件名/目录提出访问请求的用户的集合,并表示为u={u1

u2,u3,...,ua};
20.获取系统中的位阶r,代表对mnt namespace内文件名/目录进行访问的资格,并表示为r={r1,r2,r3,...,rb};
21.获取mnt namespace内资源进行访问的操作权限p,并表示为p={p1,p2,p3,...,pc};
22.获取mnt namespace内文件名的集合f,并表示为f={f1,f2,f3,...,fd};
23.获取信任度等级tc,并表示为tc={1,2,3,...,r};
24.获取初始信任值it,从宿主内核中读取用户访问次数和访问成功次数,根据成功次数和总次数计算信任值t,并表示为其中,用户访问文件的总次数记为n
ij
,成功的次数记为s
ij
,是惩罚项;
25.获取综合信任值ct,并表示为ct=α1it α2t,其中,α1和α2是权重。
26.为了更好地实现本发明,进一步地,还包括:
27.合法信任值变更表示为:
28.非法信任值变更表示为:
29.为了更好地实现本发明,进一步地,步骤s5包括:
30.使用可信时间戳验证对用户所分配到的私钥进行可信验证,验证通过,进入下一步,验证不通过,结束流程。
31.为了更好地实现本发明,进一步地,用户对文件数据进行hash摘要处理;
32.用户提出时间戳的请求,hash值被传递给时间戳服务器;
33.时间戳服务器对哈希值和一个日期/时间记录进行签名,生成时间戳;
direct遍历文件名/目录,再用fill direct进行填充,然后使用上一步中输出的系统公共参数作为公钥对文件名/目录进行加密,得到随机化后的文件名/目录。文件名/目录在主密钥和系统公共参数的共同作用下生成不同的私钥,访问控制结构根据用户属性对私钥做出分配。用户使用可信时间戳验证对私钥合法性进行验证。
49.本实施例对随机化后的文件名/目录进行解密,路径解析,并进行访问。如用户无对应私钥,访问请求将被拒绝。将文件名/目录随机化技术与docker容器文件隔离机制mnt-namespace相结合,mnt命名空间密钥(keys)的产生;是利用keys对文件名/目录进行加密,进而形成文件名/目录随机化的mnt命名空间;对路径名进行解析,使经过授权的可信用户能够正常访问文件;如果攻击者想要成功获得正常文件名/目录,要么需要获取创建mnt命名空间的根用户权限,要么需要对驻留内核程序和内存中的数据进行操作,这无疑增加了攻击难度。
50.本发明首先通过read direct遍历,fill direct填充得到需要进行随机化处理的文件名/目录输入宿主机系统安全参数,得到系统主密钥和系统公共参数;使用系统公共参数作为公钥对选定文件名/目录进行加密(随机化处理);系统主密钥和系统公共参数共同作用于文件名/目录对应的权限,生成对应私钥;采集用户信息,并对用户行为进行追踪评估,生成用户属性,根据用户属性分配相应私钥;使用可信时间戳验证对用户所分配到的私钥进行可信验证,验证通过,进入下一步,验证不通过,结束流程;判断访问的文件名/目录是否是随机化后的文件名/目录,是,进入下一步,否,结束。使用私钥解密对应文件名/目录,路径解析,访问文件。
51.实施例2:
52.本实施例在实施例1的基础上做进一步优化,随机化加密处理方法和解密处理方法为cp-abe算法。cp-abe(ciphertext policy attribute based encryption,密文策略属性基加密系统):所谓密文政策加密系统是指,密文对应于一个访问结构而密钥对应于属性集合,解密当且仅当属性集合中的属性能够满足此访问结构。
53.本发明通过mnt-namespace文件名/目录的随机化来控制进程对文件名/目录的访问,随机化技术是通过加解密来完成的,而cp-abe算法基于密文属性进行加密与文件名/目录的多级特性适配,能够根据发起访问请求用户进程所拥有的属性对应的私钥来解密对应文件。读取、整理mnt-namespace中的文件名及其从属关系—构建二叉树,将每个文件名设定为二叉树上的节点,以便于检索,访问;根据文件名的位置以及其属性,生成的私钥可以作为权限发放。
54.本实施例的其他部分与实施例1相同,故不再赘述。
55.实施例3:
56.本实施例在上述实施例1或2的基础上做进一步优化,通过mnt-namespace文件名/目录的随机化来控制进程对文件名/目录的访问;先read direct遍历文件名/目录,再用fill direct进行填充得到需要进行随机化处理的文件名/目录。同时,本发明建立针对mnt-namespace内文件名/目录的访问控制结构时,建立基于用户、角色、权限的访问控制模型,在原有的用户集合,角色集合,权限集合的基础之上增加构建文件名集合以及信任等级集合。问和随机化围绕的中心是文件名/目录,而加解密根据的是文件名的属性,因此,将文件名集合的属性映射到权限集合中。将信任等级集合与角色集合一一对应。信任等级集合
是随用户集合而产生的,因此信任等级集合能将角色集合与用户集合相连接起来,使访问用户能够被赋予相关权限。
57.本实施例的其他部分与上述实施例1或2相同,故不再赘述。
58.实施例4:
59.本实施例在上述实施例1-3任一项的基础上做进一步优化,用户信任度的具体计算方法包括:
60.获取结构元素u,所述结构元素u是对mnt-namespace内文件名/目录提出访问请求的用户的集合,并表示为u={u1,u2,u3,...,ua};
61.获取系统中的位阶r,代表对mnt namespace内文件名/目录进行访问的资格,并表示为r={r1,r2,r3,...,rb};
62.获取mnt namespace内资源进行访问的操作权限p,并表示为p={p1,p2,p3,...,pc};
63.获取mnt namespace内文件名的集合f,并表示为f={f1,f2,f3,...,fd};
64.获取信任度等级tc,并表示为tc={1,2,3,...,r};
65.获取初始信任值it,从宿主内核中读取用户访问次数和访问成功次数,根据成功次数和总次数计算信任值t,并表示为其中,用户访问文件的总次数记为n
ij
,成功的次数记为s
ij
,是惩罚项;
66.获取综合信任值ct,并表示为ct=α1it α2t,其中,α1和α2是权重。
67.如图2所示,本实施例提供使用cp-abe算法进行文件名/目录随机化,cp-abe(ciphertext policy attribute based encryption,密文策略属性基加密系统):所谓密文政策加密系统是指,密文对应于一个访问结构而密钥对应于属性集合,解密当且仅当属性集合中的属性能够满足此访问结构。这种设计比较接近于现实中的应用场景,可以假象每个用户根据自身条件或者属性从属性机构得到密钥,然后加密者来制定对消息的访问控制。
68.文件名/目录有着多级特性,权限也有着多级特性,对文件名/目录的访问权限即是其对应用户的属性,本文使用cp-abe算法对文件名/目录进行随机化处理,与企业内部高权限覆盖低权限,系统中文件名/目录层层覆盖的实际情况相吻合。
69.使用系统公共参数作为公钥对选定文件名/目录进行加密(随机化处理)。
70.采集用户信息,并对用户行为进行追踪评估,生成用户属性,根据用户属性分配相应私钥。本事和私立通过上述公式对用户属性进行计算评估。使用私钥解密对应文件名/目录,路径解析,访问文件。
71.本实施例的其他部分与上述实施例1-3任一项相同,故不再赘述。
72.实施例5:
73.本实施例在上述实施例1-4任一项基础上做进一步优化,合法信任值变更表示为:
非法信任值变更表示为:
74.本实施例在每个访问周期结束后,根据用户访问行为的成功率,对其信任度进行一次“奖惩”。本实施例对用户信任度进行持续,动态评估,并定期对用户的信任度进行一次“奖惩”,采集用户身份信息,根据用户身份信息赋予用户初始信任值以及信任等级,根据用户访问行为的成功率,动态计算用户的信任值,以及动态赋予用户信任等级。根据公司设定的规则,合法行为达到相应占比则更新增加信任值,θ为对应信任值增加权重。根据公司设定的规则,非法行为达到相应占比则更新增加信任值,η为对应信任值减少权重。
75.本实施例的其他部分与上述实施例1-4任一项相同,故不再赘述。
76.实施例6:
77.本实施例在上述实施例1-5任一项基础上做进一步优化,使用可信时间戳验证对用户所分配到的私钥进行可信验证,验证通过,进入下一步,验证不通过,结束流程。时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。通俗的讲,时间戳是一份能够表示一份数据在一个特定时间点已经存在的完整的可验证的数据。
78.本实施例的其他部分与上述实施例1-5任一项相同,故不再赘述。
79.实施例7:
80.本实施例在上述实施例1-6任一项基础上做进一步优化,用户对文件数据进行hash摘要处理;
81.用户提出时间戳的请求,hash值被传递给时间戳服务器;
82.时间戳服务器对哈希值和一个日期/时间记录进行签名,生成时间戳;
83.时间戳数据和文件信息绑定后返还,用户进行下一步操作。
84.如图3所示,本发明提供对cp-abe算法私钥进行可信时间戳验证;
85.用户对文件数据进行hash摘要处理;用户提出时间戳的请求,hash值被传递给时间戳服务器;时间戳服务器对哈希值和一个日期/时间记录进行签名,生成时间戳;时间戳数据和文件信息绑定后返还,用户进行下一步操作。
86.本实施例的其他部分与上述实施例1-6任一项相同,故不再赘述。
87.实施例8:
88.本实施例在上述实施例1-7任一项基础上做进一步优化,步骤s6包括:
89.当用户进程访问文件名/目录时,判断访问的文件名/目录是否是随机化后的文件名/目录,如果是,进行路径解析并访问文件,如果否,重新对文件名/目录进行随机化加密处理。
90.本实施例的其他部分与上述实施例1-7任一项相同,故不再赘述。
91.以上所述,仅是本发明的较佳实施例,并非对本发明做任何形式上的限制,凡是依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化,均落入本发明的保护范围之内。
再多了解一些

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

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

相关文献