基于行为的云计算访问控制安全模型
2012-08-10林果园贺珊黄皓吴吉义陈伟
林果园,贺珊,黄皓,吴吉义,陈伟
(1.中国矿业大学 计算机学院,江苏 徐州 221116;2. 南京大学 计算机系,江苏 南京 210093;3. 杭州师范大学 杭州市电子商务与信息安全重点实验室,浙江 杭州 310036)
1 引言
云计算是一种新兴的计算模式,它是一种分布式计算,是在网格计算的基础上发展而来的[1],它体现了“网络就是计算机”的思想,将网络大量计算资源、存储资源与软件资源链接在一起,形成巨大规模的共享虚拟资源池,为远程计算机用户提供服务。
云计算以动态的服务计算为主要技术特征,以灵活的“服务合约”为核心商业特征[2]。在云计算环境中,数据存储方式打破传统模式,所有数据以托管的方式存储在云端服务器中,用户只需利用云服务商提供的API(应用程序编程接口),通过浏览器就可以随时随地获取所需要的数据和服务。服务模式的改变也带来了诸多云计算信息系统的安全问题,例如开放的接口为非法访问提供了可能,非法用户会进入信息系统窃取企业和用户机密数据,因此数据完整性和保密性受到巨大威胁。
目前,云计算安全所面临的3大安全问题主要体现在身份与权限控制、Web安全防护和虚拟化安全方面等。在云计算时代,安全设备和安全措施的部署位置有所不同,安全责任的主体发生了变化。目前,常用的解决云计算安全问题的办法主要有数据备份、建立企业私有云、数据加密后放到云端保存,但这并不能从根本上解决云计算所面临的安全问题。云计算已成为一种崭新的服务模式,针对云端服务器中数据完整性和保密性的问题,需要符合自身特点的安全模型。
2 相关研究
围绕远端用户对云资源进行访问时,如何保证数据的完整性和保密性展开研究是目前云计算安全研究的一个重要方向[2]。
有些学者结合云计算的特点提出了相应的访问控制方法,但是没有综合考虑数据的完整性和保密性。文献[3]认为API是云服务提供者和使用者之间的桥梁,云计算的安全很大程度上依赖API的安全,提出了云计算环境下 API层面的一种基于RBAC的两阶段访问控制机制。但是该访问机制只允许白名单中的用户进行访问,与云计算的开放性不相符。Li等人[4]提出了适于SaaS系统的S-RBAC访问控制模型,解决了 SaaS系统中的一些访问控制问题,但是对于一些权限许可缺少时间约束。文献[5]在分析云计算环境的特点和安全现状的基础上,介绍了一种安全访问控制服务(SACS, security access control service)的概念,基于SACS提出了一种层次化的云安全模型,但是描述过于简化,没有指出如何保证完整性或者保密性。
20世纪70年代,保护数据完整性或保密性的安全模型被提出。BLP模型是由 El-liott Bell 和Leonard J La Padula 于1973 年创立的一种模拟符合军事安全策略的计算机操作的模型[6,7]。在 BLP模型中允许下读、上写2个安全特性,这2个特性保证了信息的单向流动,即信息只能向高安全属性的方向流动,BLP模型就是通过信息的单向流动来防止信息的扩散,抵御特洛伊木马对系统机密信息的攻击。BLP 模型的不足[8]之处在于对完整性控制不够。可能出现的情况是,已授权的用户对数据进行非法的修改。BLP模型通过提供保证数据保密性的安全策略来保证系统的安全,但它不能有力地保证数据的完整性。因此,20世纪70年代,Ken Biba等人提出了Biba访问控制模型[9],该模型对数据提供了分级别的完整性保证,类似于 BLP保密性模型,Biba模型也使用强制访问控制系统。Biba模型是和 BLP模型相对立的模型,Biba模型改正了被BLP模型所忽略的信息完整性问题,但在一定程度上却忽视了保密性。
针对传统安全模型中完整性与保密性相冲突的问题,有些学者提出了相应的解决方案,但是没有深入云计算环境的特点进行展开。李益发[10]提出将BLP模型和Biba模型结合建立操作系统安全模型。由于该模型基于一个特殊可信主体,使得其实用性受到限制。周正等人[11]提出了兼顾保密性与完整性的安全策略,并且为避免通过交互访问操作以及多角色主客体存在造成的泄密与完整性破坏事件提供了理论基础。但没有解释在具体信息系统环境中如何对主客体密级以及安全级进行合理确定。文献[12]针对Sandhu 等人提出模型的基础上,引入了辅助角色层次, 加强了角色间关系并提供了对可信主体概念的支持,在RBAC 中实施了经典的BLP模型及其变种模型。但该文献仅停留在理论证明层面,如何在商业系统中以较小的代价引入强制访问控制并没有详细论述。李凤华等[13]结合角色、时态和环境的概念, 给出了行为的定义。然后介绍了行为、时态状态和环境状态的层次结构, 提出了基于行为的访问控制(ABAC, action based access control)模型。与已有其他模型相比,ABAC模型更加适用于解决网络环境下支持移动计算的信息系统中的访问控制问题。
本文吸收这些文献的技术成果,以BLP模型和Biba模型为基础,借鉴有关行为定义的思想,结合云计算环境的特点,用行为综合角色、时态和环境状态的相关安全信息,通过基于行为的访问控制技术将 BLP和 Biba模型相结合,并做了一定的取舍与扩充,提出了CCACSM。通过该模型,力求解决云计算环境下的完整性与保密性的问题。
3 CCACSM
将BLP模型与Biba模型通过访问控制有机结合,各取其优点,提出了一种保护云端服务器中数据的保密性和完整性的云计算访问控制安全模型(CCACSM, cloud computing access control security model)。该模型主要继承了BLP模型的简单安全属性和*属性公理,以此加强了数据的保密性,并且结合了Biba模型的严格完整性策略,以此保证了数据的完整性。
3.1 CCACSM的组成部分
CCACSM需要刻画用户、服务器及其访问权限和行为所处的时态和环境等,有多个元素、相应关系和规则构成。
1) 元素
为了方便模型的形式化描述,将模型中涉及到的元素进行了数学形式的定义,如表1所示。
模型中的环境即用户访问系统时的客观因素,例如平台(硬件平台、软件平台等)、位置(场所物理位置、网络位置等),还有其他与访问控制相关的外部客观信息等。云计算系统可以使用与安全相关的环境信息来限制对系统资源的访问。环境状态对云用户在何种外部客观因素下的权限进行约束,将环境状态的集合通常记为E。
2) 时态、环境和行为的关系
定义 1 对于相同的环境状态,若 Ti、Tj是 T中的元素,角色r在时态Ti中得到的权限为Di满足Di∈Dj,则称 Ti为 Tj的子时态状态,记为 Ti≤Tj。
定义2 对于相同的时态状态,若Ei、Ej是E中的元素,角色r在环境Ei中得到的权限为Di满足Di∈Dj,则称 Ei为 Ej的子环境状态,记为 Ei≤Ej。
定义3 将行为集合记为A,行为层次结构AH∈A×A是行为集合 A上的偏序关系。当且仅当Ti≤Tj、Ei≤Ej、Di≤Dj同时成立,对于任意的Ai={ Di,Ti,Ei}, Aj={ Dj,Tj,Ej}∈A,(Ai,Aj) ∈AH。如果(Ai,Aj) ∈AH成立,则称Ai是Aj的低级行为,Aj是Ai的高级行为。
3) 状态转换规则
状态转换规则主要是用来保证系统的每一个状态都是安全状态。除了保证初始状态是安全的,还要保证系统的每一次转换都从一个安全状态转移到另一个安全状态。在CCACSM中的状态转换主要包括以下5个规则。
规则1 get-read规则,用于云用户集合对云端服务器集合请求只读访问。
当云用户 Si可以对云端服务器 Oj进行只读访问时,需满足以下条件:
1) Si的行为集合中有对Oj的只读权限;
2) Si的安全等级支配Oj的安全等级;
3) Si是可信云用户或云用户的当前安全等级与云端服务器Oj的安全等级相同。
规则 2 get-execute规则,用于云用户对云端服务器请求执行访问。
当云用户 Si可以对云端服务器 Oj进行执行访问时,需满足:Si的行为集合中有对Oj的执行权限,要完成执行操作还必须有读写权限。
规则 3 get-append规则,用于云用户对云端服务器请求读写访问。
当云用户 Si可以对云端服务器 Oj进行读写访问时,需满足以下条件:
1) Si的行为集合中有对Oj的读写权限;
2) Si的安全等级支配Oj的安全等级;
3) Si是可信云用户或云用户当前的安全等级支配Oj的安全等级。
规则4 change-subject-current-security-level规则,用于云用户请求改变当前的安全等级。
当 Si可以改变其当前 Oj的安全等级至 fo时,需满足以下条件。
1) Si是可信云用户或它的安全等级被改变为fo并且导致的状态满足*属性;
表1 CCACSM的组成元素
2) Si的安全等级支配fo。
规则5 resolve-conflict规则,用于云端数据的机密性与完整性产生冲突时的处理机制。
当云用户Si可以对云端服务器Oj进行访问,机密性与完整性发生冲突时,需满足以下条件:
Si的行为集合中有对 Oj的 Ai权限,Oj的行为集合中包括Aj权限;
当且仅当(Ai,Aj) ∈AH时,即Aj是Ai的高级行为时,满足简单安全属性和*属性公理;
当且仅当(Aj,Ai) ∈AH时,即Ai是Aj的高级行为时,满足严格完整性策略。
CCACSM 侧重于更强的完整性和保密性同时满足,如图1所示,其访问控制分为2个层次。
1) 权限层次:访问规则——允许同级别的云用户对云端服务器数据有只读权限,高级别云用户对低级别云端服务器数据有所有权限,低级别云用户对高于自己级别的云端服务器数据只具有最小权限(即只可以读取云端服务器中的部分共享的数据)。
2) 行为层次:行为层次包括时态层和环境层,行为的状态随着角色、时态和环境的不同而动态变化,其中,环境状态和时态状态对角色所能享有的权限具有直接影响,如不同的物理位置、网络位置、软件平台等外部环境可以对角色产生影响,同时不同的时态状态如事件发生的起始时间、终止时间、持续时间等也会对角色产生影响。
3.2 CCACSM的安全定理
定理1 CCACSM满足经典BLP模型的简单安全属性和*属性公理。
证明 假设≤BLP和≥BLP都表示偏序关系,Lw为相应于≥BLP的最低安全等级的写权限,fo对应o的当前安全等级,T对应云用户S的时态,E对应S所处的环境。
1) 对于非可信云用户S
∀ o∈O , x =F(o);
∀s∈S, 令 s的读权限集为 Drs,写权限集为Dws,行为集为As;
设s具有的访问权限为f’e、fr和fw,即D (s) ={f’e,fr, fw},As={D(s),T,E},那么有:
Ars= { (o, r) |∃for≤fr [ (( o, r) , for )∈D]};
Aws= { (o, w) |∃fow≤fw[ (( o, w) , fow)∈D]},
又因为每个云端服务器o的访问权限被精确地分配给了角色F(x)r和F(x)w,即:
即 D={((o, r), f’(o)r),((o, w), f’(o)w)}; A={D,T,E}。
推理得:Ars={ ( o, r) |∃for≤fr[fo= f’(o) ]}
= { ( o, r) | f’(o)r≤fr}
= { ( o, r) | f’(o)≤BLP f};
Aws= { ( o, w) |∃fow≤fw[fo=f’(o) ]}
= { ( o, w) | f(o)w≤fw}
= { ( o, w)| f’(o)≥BLP f}。
若 s 能读访问 o,即(o, r)∈Drs,必有 f’(o)≤BLP f= f(s),即满足*属性。
图1 CCACSM的访问控制规则
又因为 f≤BLP f’ =f’(s),所以 f’(o)≤BLP f’(s),即满足简单安全属性。
若 s 能写访问 o,即(o , w)∈Aws,必有 f’(o)≥BLPf = f(s),即满足*属性。
又因为简单安全属性并不约束只写操作, 所以也满足简单安全属性。
2) 对于可信云用户S’
∀o∈O , x = F(o),∀ s∈S’,令 s的读权限集为Drs,写权限集为Dws,行为集为As。
设 s具有的权限为 f’e,fr和 Lw,即 F(s) ={ f’e,fr, Lw},与上同理,有 Ars = { (o, r) | f’(o)≤BLP f},Aws = { ( o, w) | f’(o)≥BLP f }。
若s 能读访问o,即(o,r) ∈Drs,必有f’(o)≤BLP f= f(s)。又因为 f≤BLP f’= f’(s),所以 f’(o)≤BLP f’(s),满足简单安全属性。
对于可信云用户,*属性对其访问无任何约束,自然被满足。
综上所述,CCACSM模型保证了系统的保密性。 证毕。
定理2 CCACSM满足Biba模型的严格完整性策略。
严格完整性策略主要防止信息从低完整性级别客体向高完整性级别客体传递,即对于任意的云用户 s,若(Drs,To1,E)∈A, (DWs,To2,E)∈A,则有fo1≤fo2。
证明 假设L为完整性标识,Lr为完整性标识范围,Dxs={Dx1s, Dx2s,…,Dxns}为云用户s对云端服务器o的访问权限集合并且Dx1s﹤Dx2s…﹤Dxns(表示访问权限依次增大)。
假设当前的 A集合存在访问权限 Ar=(Drs,To1,E), Ax1s=(Dx1s,To2,E), Ax2s=(Dx2s,To3,E)…Axns= (Dxns,Ton,E)
经过Ar访问后变为,经过Ax1s访问后变为,经过 Ax2s访问后变为…经过 Axns访问后变为,又因为 Dx1s﹤Dx2s…﹤Dxns⇒⊆⊆⊆ …。
综上所述,CCACSM满足Biba模型的严格完整性策略。 证毕。
CCACSM中,简单安全属性要求对模型的所有云用户都成立,是为了防止云用户写入安全等级比其当前安全级别高的云端服务器中的信息,并且防止云用户直接从不允许其存取的级别的云端服务器中存取信息。而*属性公理仅要求对非可信云用户成立,此属性防止了云用户有意或无意地把高密级信息写入低密级云端服务器中,从而造成秘密的泄露。定理2防止了信息从低级别向高级别云端服务器中传递,保证了信息的完整性。
3.3 CCACSM的实现过程
假设在该模型中系统管理员为系统定义k个安全等级(1,2,3,…,k),安全等级由高向低排列,其中1代表最高安全等级,k代表最低安全等级。系统中云端服务器 o拥有其中某一个安全等级 f(o)(1≤f(o)≤k),把云用户 s划分为几个类型 z,每个云用户属于一种类型,假设每个类型对应某个安全等级 f(z)(1≤f(z)≤k),则属于该类型的某云用户 s的安全等级f(s)=f(z)。任务T’与云用户s之间形成一一对应关系。假设某任务T’对应某云用户s,云用户s的安全等级f(s)=n,1≤n≤k,把任务划分为子任务 T’(i)以后,T’={T’(i),1≤i≤n 且 n≥1},完成该任务T’的云端服务器集合O={Oi,1≤i≤n且n≥1},某云端服务器的安全等级为 f(Oi),则可用如表2所示的M矩阵表示当o对s的行为是A时,f(s)和f(Oi)之间应有的关系。
表2 M矩阵
该模型的总体架构如图2所示,其基本实现过程由以下几个步骤组成。
1) 第一次访问云端服务器的云用户需进行以下几个步骤。
Step1 每个申请访问云端服务器的云用户 Si都要进行用户注册。
Step2 用户注册完毕后要进行系统认证。
Step3 没有通过认证的用户被强制退出;通过认证的云用户,系统要再次对其进行行为的判断,判断此云用户的时态T以及所处环境E。环境可以分为内部网络E1和外部网络E2;时态T可以分为工作时间T1和休息时间T2。此时,系统根据E-T的不同对云用户分配相应的权限行为A。
图2 CCACSM完整性和保密性规则模型
Step4 判断完云用户的行为访问规则后,要进行相应状态转换。
Step5 经过状态转换后的云用户被授权,即被赋予相应的权限,即A= type(o, s)。例如,用户1的行为状态为E1-T2,那么它对云端服务器的数据集具有规则1的只读权限A=get-read(o, s);用户2的行为状态为E2-T2,那么它对云端服务器的数据集具有规则2的执行权限A=get-execute(o,s);用户3的行为状态为E1-T1,那么它对云端服务器的数据集具有规则3的读写权限A=get-append(o,s);用户4的行为状态为E2-T1,那么它对云端服务器的数据集具有规则4的请求改变当前的安全等级的权限A=change-subject-current-security-level(o, s)。其中,所有的云用户在进行云端服务器数据集访问之前都要经过定理1简单安全属性与*属性的验证,这一步保证了数据的保密性;而被赋予规则2、规则3和规则4的云用户在进行云端服务器数据集访问之前都要经过定理2完整性验证,这一步确保了数据的完整性。
Step6 云端服务器的数据都要经过完整性验证返回给云用户。
2) 已经注册的云用户再次登录系统时,直接跳过上述步骤的Step1与Step2进行行为的判断与状态转换等。
3.4 在云计算环境中应用CCACSM
Hadoop是Apache软件基金会组织下的一个开源项目,提供了分布式计算环境下的可靠和可扩展软件。基于Hadoop框架的Distributed File System和 Map/Reduce Engine子系统,本文构建了一个云计算实验平台,在此平台下对CCACSM进行了应用。该平台以校园网络中的用户使用环境为背景,假设云用户访问某学校服务器端的数据信息,云用户所处的环境E可以分为学校内部网络E1和学校外部网络E2;时态T可以分为上班时间T1和下班时间T2,以2种访问行为(E2-T1,E1-T1)为例进行说明。
从以上分析中可以看出:当s是可信云用户,且 s对 o有读访问权限,即(o, r)∈Drs,必有f’(o)≤BLP f= f(s),又因为 f≤BLP f’= f’(s),所以f’(o)≤BLP f’(s),满足简单安全属性;对于可信云用户,*属性是自然被满足的。
当s是非可信云用户,且s对o有读访问权限,即(o, r)∈Drs,必有 f’(o)≤BLP f= f(s),即满足*属性,又因为 f≤BLP f’ =f’(s),所以 f’(o)≤BLP f’(s),即满足简单安全属性。
当s是非可信云用户,且s对o有写访问权限,即(o , w)∈Aws,必有 f’(o)≥BLPf = f(s),即满足*属性,又因为简单安全属性并不约束只写操作, 所以也满足简单安全属性。
4 结束语
云计算的安全问题是云计算中的核心问题之一。本文结合云计算时代所面临的安全问题,提出了CCACSM,并阐述了该模型的组成部分、安全定理以及典型的实现过程。该模型的优点在于其不仅继承了 BLP模型严格保密性的特点,而且具备了Biba模型保证数据完整性的特点。为了适应云计算用户位置可变性这一特点,模型还引进了基于行为的访问控制技术。针对CCACSM的进一步研究主要是改进该模型的“下读,上写”特性,提高系统的可用性。
[1] MILLER M. Cloud Computing: Web-Based Applications That Change the Way You Work and Collaborate Online[M]. Que Print Publication, 2008.
[2] 冯登国, 张敏, 张妍等. 云计算安全研究[J]. 软件学报. 2011, 22(1),71-83.FENG D G, ZHANG M, ZHANG Y, et al. Study on cloud computing security[J]. Journal of Software, 2011 22(1):71-83.
[3] SIRISHA A, GEETHAKUMARI G. API access control in cloud using the role based access control model[A]. Trendz in Information Sciences and Computing-TISC2010[C]. 2010.
[4] LI D, LIU C, WEI Q, et al. RBAC-Based access control for SaaS systems[A]. 2010 2nd International Conference on Information Engineering and Computer Science (ICIECS)[C]. 2010.
[5] XUE J, ZHANG J J. A brief survey on the security model of cloud computing[A]. 2010 Ninth International Symposium on Distributed Computing and Applications to Business Engineering and Science(DCABES)[C]. 2010.
[6] Nat’l Computer Security Center. Trusted network interpretation of the trusted computer system evaluation criteria[A]. NCSC-TG2005[C].1987.
[7] BELL D E, LAPADULA L J. Secure Computer Systems: Mathematical Foundations[R]. The MITRE Corporation, Bedford, Massachussetts, 1973.
[8] LIN T, BELL Y, AXIOMS L. A “new” paradigm for an “old”model[A]. Proc 1992 ACM SIGSAC New Security Paradigms Workshop[C]. 1992.
[9] BIBA K J. Integrity Considerations for Secure Computer Systems[R] .Bedford: ESD-TR-76-732, 1977.
[10] 李益发, 沈昌祥. 一种新的操作系统安全模型[J]. 中国科学 E辑(信息科学), 2006, 36(4): 347-356.LI Y F, SHEN C X, A new operating system security model[J]. Science in China, Series E, Information Sciences. 2006, 36(4): 347-356
[11] 周正, 刘毅, 沈昌祥.一种新的保密性与完整性统一安全策略[J].计算机工程与应用, 2007, 43(34):1-2.ZHOU Z, LIU Y, SHEN C X. New kind of secrecy/integrity union policy[J]. Computer Engineering and Applications, 2007, 43(34):1-2.
[12] 梁彬,孙玉芳,石文昌等. 一种改进的以基于角色的访问控制实施
BLP模型及其变种的方法[J].计算机学报. 2004,15(5): 636-644.
LIANG B, SUN Y F, SHI W C, et al. An improved method to enforce BLP model and its variations in role-based access control[J]. Journal of Computer, 2004, 15(5): 636-644.
[13] 李凤华, 王巍, 马建峰等. 基于行为的访问控制模型及其行为管理[J].电子学报, 2008,3(10):1881-1890.LI F H, WANG W, MA J f. et al. Action-based access control model and administration of actions[J]. Acta Electronica Sinica. 2008. 36(10):1881-1890.