虚拟化IaaS环境安全域与访问控制模型研究
2019-01-24尹学渊陈兴蜀
尹学渊, 陈兴蜀, 陈 林
1(四川大学 计算机学院, 成都 610065)2(四川大学 网络空间安全研究院, 成都 610065)
1 引 言
基于虚拟化计算、存储、网络技术构建的云计算IaaS多租户环境下,传统数据中心单纯以物理机为粒度、物理防火墙等安全设备建立的网络隔离机制不再适用于云计算的虚拟资源环境;同时,资源共享、多租户、动态性等特性模糊了传统安全边界,传统安全域的构建和划分方式在此类环境下已经失效,需要采用新的方式构建安全域、租户域[1-4].有别于传统数据中心,在为云计算虚拟化环境构建安全域和访问控制机制时需要考虑物理环境、虚拟环境、动态性、时间等因素[5-7].其中,在物理环境方面,在当前商业公司与开源机构推出的云解决方案中,通常将不同业务功能网络如管理网络、存储网络、外部网络等基于不同的物理或逻辑隔离的网络与安全设备进行构建,从而形成相互隔离的业务功能域[6-8].虚拟环境方面,业界在网络方面的隔离研究和实现工作较多,如为实现不同租户的业务数据网络通信隔离,常采用VLAN、OverLay技术进行实现[9];进一步地,部分云计算解决方案通过利用虚拟防火墙等安全设备,实现租户域边界的访问控制与安全防护,如OpenStack Neutron[10]中实现的FireWall as a Service.通过构建租户域的方式进行资源隔离、资源封装与交付,部分商业公司如Amazon等推出了虚拟私有云Amazon VPC(Amazon Virtual Private Cloud)服务.当前,与云环境下安全域、租户域等相关的研究多聚焦于某一局部点[11-14],较缺少结合云计算动态性、虚拟化等特点,展开的针对整个云计算环境网络结构、安全域、边界防护以及访问控制问题[15]开展的系统性分析与研究工作,更缺少可用于指导具体实践的相关参考指标.
针对虚拟化IaaS环境下的网络隔离与资源访问控制问题,本文在系统分析IaaS环境隔离需求的基础上,以安全域划分原则为指导和依据,从隔离业务区域构建、区域边界管控与防护、安全支撑、资源访问控制方面系统地构建了虚拟化IaaS环境下的安全域模型及资源访问控制模型,并分别进行了形式化描述、安全性分析及应用实践.
2 IaaS环境隔离与访问控制需求
云计算IaaS虚拟化环境下,由于二层网络规模不断扩大、流量带宽需求增加、转发性能要求提高,同时虚拟机需要具有动态可迁移能力等因素[16,17],使得现有中小规模的云数据中心较多地采用大二层(接入层、核心层)结构设计,即去掉了传统模式下导致转发性能瓶颈的汇聚层.上述环境需要考虑两方面的隔离与访问控制需求,包括:
1)南北向流量:对IaaS环境内部和外部实体间交互的流量进行隔离与访问控制;
2)东西向流量:对IaaS环境内部服务器之间的流量进行隔离与访问控制.包括:
a) 物理基础网络层:基于物理设施构建,其上直接承载管理网络通信、存储网络通信、迁移网络通信、支撑服务通信等需要相互隔离和管控.
b) 虚拟网络层面:基于共享基础设施构建,主要承载租户业务数据.不同租户之间的业务通信需要相互隔离,且租户能够灵活管控自身的业务通信.
3 虚拟化IaaS环境安全域模型
3.1 术语定义
定义1.网络安全域(安全域):同一系统内具有相同安全保护需求、相互信任,具有相同安全访问控制和边界控制策略的子网或网络.
定义2.边界:一个网络安全域与其他网络的分界线.
定义3.域接口:用于访问和管理安全域内IT资源的业务逻辑接口.
定义4.租户:使用云服务提供商提供的虚拟资源的用户.
定义5.租户网络(TNet):租户拥有的虚拟网络环境.
定义6.租户子网(TSNet):租户网络中的一个独立二层广播域.
定义7.虚拟机(VM):使用虚拟化技术实现的具有完整硬件功能的逻辑计算机系统.
定义8.访问控制规则(ACR).访问控制规则集表示为ACRs.
3.2 安全域模型
3.2.1 安全域模型
如图1所示,将虚拟化IaaS环境安全域建模为两个层面.其中,
图1 IaaS环境安全域模型Fig.1 Model of IaaS security domain
1)物理网络片层
a) DMZ:在外部网络域与IaaS环境内部之间构造的安全通信地带;
b) 管理域:管理、调度、监控虚拟化数据中心内的物理、虚拟资源;
c) 业务资源域:为租户业务提供实际所需的物理计算、存储、网络资源,由计算域、存储域、迁移域资源共同构成.其中,迁移域负责承载虚拟机迁移数据;
d) 支撑域-物理环境支撑子域:为IaaS云数据中心物理环境提供安全支撑.
2)虚拟网络片层
a) 租户业务域:构建于业务资源域基础上,不同租户域间相互逻辑隔离;租户域可以进一步划分为租户子域;
b) 支撑域-虚拟环境支撑子域:构建于物理网络片层支撑域及虚拟化器件的基础上,为租户提供安全支撑服务.
3.2.2 安全域描述
1)安全域边界
1. DMZ与其他域之间的边界.
2. 管理域与内部其他域之间的边界.
3. 计算域与管理域、存储域之间的边界.
4. 存储域与内部其他域的边界.
5. 迁移域与内部其他域的边界.
6. 支撑域与内部其他域的边界.
7. 各租户域之间的边界.
2)接口
从虚拟化IaaS环境下用户业务通信访问控制及资源交付的角度出发,在DMZ、管理域、租户业务域中定义了必要的逻辑通信接口,用于实现物理与虚拟资源的管理、调度和交付,同时并作为边界防护策略的实施点.包括:
a)DMZ:包含两个接口,其一用于与外部网络互联,以接收云资源访问和管理请求;其二用于与内部网络的互联接口,用于安全转发上述请求至内部;
b)管理域管理接口:用于管理/访问物理/虚拟资源;依据用户角色授予对应权限.其中,IaaS管理员拥有IaaS环境下所有资源管控权限;租户拥有对已订购资源的管理和使用权限;
c)租户域/子域接口:租户域/子域通信接口.
3.3 租户域模型
3.3.1 租户域模型
定义9.租户域TD,一个五元组:TD=(TID,TNet,VMSs,ACRs,Constraint),表示IaaS虚拟网络环境下的二层逻辑网络标识为TID的租户域TD.其中,
1)TID:全局二层逻辑网络标记,满足
约束a:当i≠j时,TIDi≠TIDj;
2)TNet:定义5,TNet={TSNet1,…,TSNetm},TSNet定义6;
3)VMSs:VMSs={VMs1,…,VMsm},VMs={vm1,…,vmv},指租户所有子网TNet内虚拟机集合.在此,将二层网络标记为TID、TSNeti内的VMsi中的任一虚拟机vmk记为vmk∈(TID∧TSNeti∧VMsi);其他不属于租户域内的对象oB(VM或物理服务器)记为oB∉VMSs;
5)Constraint:VMSs遵从的通信约束.vmp与oB的通信行为,满足
3.3.2 安全属性
1) 通信信道:基于约束a,可保障租户二层逻辑网络的独立性与隔离性;
2) 通信访问控制:基于约束b,保障租户域内同一个子网内以及不同子网内虚拟机通信的合法性;基于约束c,保障租户域内虚拟机与外部其他实体通信的合法性;基于约束d,阻止了租户域内虚拟机与其他外部实体的非法通信.
4 访问控制模型CloudAC
基于前述安全域模型及相关接口描述,结合云计算环境下资源动态性、云资源具有时效性等因素,从用户业务会话访问控制的角度出发,本文基于RBAC及UCON模型[15]构建了云资源访问控制模型CloudAC,从而保障虚拟化IaaS环境下资源访问的安全性.
4.1 模型元素
定义10.用户(User):访问的发起者,可以独立访问云环境中某个目标资源,如人、程序等.用户集表示为U.
定义11.角色(Role):具有执行特定任务或访问特定资源的能力.角色集表示为R.
定义12.用户属性(ATT(U)):标识用户能力和特征,如用户身份标识、角色等.
定义13.操作(Operation):实施于云中目标资源的具体访问行为.操作集表示为O.
定义14.资源(Object):云环境中可以被访问和使用的目标对象.资源集表示为B.
定义15.资源属性(ATT(B)):标识资源的重要信息,包括资源标签、安全等级等.
定义16.权限(Permission):对云中资源进行访问的许可.权限集合表示为P.
定义17.会话(Session):用户的一个活跃进程,表征用户激活角色的过程.会话集表示为S.
定义18.授权规则(Authorization):允许用户使用资源特定权利的必须满足的规则集.
定义19.义务(Obligations):用户行使对资源的访问权利前必须完成的操作.
定义20.条件(Conditions):用户获得对资源的访问权限前必须满足的执行环境约束.
4.2 CloudAC模型
CloudAC访问控制模型如图2所示.其中,
图2 CloudAC访问控制模型Fig.2 CloudAC access control model
1)U,定义10,U={User1,…,Usern};
2)R,定义11,R={{Admin},Tenant,Other},Admin={AdminSys,AdminSec,AdminAudit};其中,AdminSys为系统管理员角色、AdminSec为系统安全员角色、AdminAudit为系统审计员角色,Tenant为普通租户角色,Other为其他用户角色;
3)ATT(U),定义12,在此仅定义为ATT(U)={UID,Role},即用户属性包括用户身份UID及角色.其中,UID满足
约束e:当i≠j时,UIDi≠UIDj;
4)O:定义13;
5)B:定义14;
6)ATT(B),定义15,在此仅定义为ATT(B)={BID,{UID}};即资源属性包括资源标识BID及拥有者标识{UID}.其中,BID满足
约束f:当i≠j时,BIDi≠BIDj;
7)P:定义16,P⊆O×B,二元组(Operation,Object)集合,表示对某一资源的可操作权利;
8)S:定义17,S={S1,S2,…,Sn};
9)UA:角色指派,UA⊆U×R,用户角色分配的二元关系;
10)PA:权限指派,PA⊆P×R角色权限分配的二元关系;
11)user:会话映射到用户的函数,user:S→U;则user(si)表示创建会话si的用户;
12)Cons:约束条件,规定权限被赋予角色时、角色被赋予用户时遵循的强制性约束.满足约束g:PARolei∩PARolej=Ø,UARolei∩UARolej=Ø,Rolei,Rolej∈{Admin},i≠j;
13)roles:每个会话si到角色子集的映射函数:roles:S→2R;roles(si)⊆{r|(user(si),r)∈UA},表示会话si对应的角色集合;
14)Authorization:定义18,基于ATT(U)与ATT(B)进行判定的规则的集合;
15)Obligations:定义19;基于用户会话判定用户是否已具有对目标资源的管理权限Managed或租赁权限Leased;否则引导至资源管理与租赁接口;
16)Conditions:定义20;以用户会话对资源的管理或租赁期限(TimeLease)为依据判定;
17)Rights:用户会话能够对资源进行控制和执行的最终有效特权集.
基于CloudAC访问控制模型元素,利用用户初始授权函数UA、PA,以及权限撤销函数Authorization、Obligations、Conditions有:云环境下用户会话si访问资源B时的有效权利集为:
即发起会话si的用户user(si)若可以访问B,则必定满足:
a)user(si)已具有对B的管理或租赁权限;
b)user(si)合法拥有B;
c)user(si)对B的管理或租赁权限未过期.
此外,模型中相关属性与约束元素可结合业务需求按需扩充.
4.3 安全属性
基于CloudAC访问控制模型及相关描述,其具有下述安全属性:
1) 基于约束e,确保云环境下用户身份标识的唯一性,为角色关联、构建不同租户隔离网络及关联安全策略提供基础;
2) 基于约束f,确保云环境下资源标识的唯一性,为用户资源访问的合法性验证、租户间资源隔离提供基础;
3) 基于约束g,管理系统支持权限分离.
5 实现、测试与分析
5.1 IaaS平台部署结构
依据本文提出的IaaS环境下网络安全域模型,结合前期工作[18-20],在普通PC服务器及千兆交换机等设备组成的环境下,利用KVM、OpenvSwitch、OpenStack Kilo、Ceph以及基于SDN(Software Defined Networking)与NFV(Network Function Virtualization)技术实现的安全服务组件等共同构建了如图3所示的虚拟化IaaS平台.其中,
图3 IaaS平台系统部署结构
Fig.3 Deployment architecture of IaaS platform
1) 组件部分
a) 云管理中心:管理、控制IaaS平台资源,包括系统管理、安全管理、审计管理模块;其中,系统管理模块主要负责管理和调度云环境内的物理/虚拟资源,安全管理主要负责用户账号管理、角色权限分配,审计管理则主要基于系统日志和监控信息对系统内用户的行为进行跟踪分析和监督检查.本次部署中暂将迁移网络合并至管理网.
b) 存储服务资源池:提供存储资源;
c) 计算服务资源池:提供CPU、内存等计算资源;以及包括IP地址资源池、虚拟路由器、DHCP服务的网络资源;
d) 安全服务资源池:为IaaS平台中物理机、虚拟机提供安全服务资源,包括漏洞扫描、通信访问控制、软件更新等.
2) 网络部分
a) 管理网络:承载IaaS平台对物理/虚拟资源管理通信、虚拟机迁移通信、为物理机服务的安全服务通信;
b) 计算网络&安全服务网络:承载租户虚拟机数据通信及租户虚拟机安全服务通信;
c) 存储网络:用于实现存储服务资源交付,承载Ceph存储资源通信;
d) 公网:为IaaS环境提供外部网络连接.
5.2 网络隔离与安全域
通过利用独立的网络设备构建不同业务功能网络,实现管理网络、存储网络、业务数据网络之间相互隔离;对于安全服务网络部分,通过与业务数据网络共享交换机等设备实现安全服务供应.DMZ中主机用于为外部用户提供IaaS平台基本信息展示页面以及租户虚拟资源管理服务代理,利用前端防火墙使上述通信流至DMZ可达,利用后端防火墙仅接受、传递来自DMZ主机中代理的租户资源管理接口访问请求,从而避免将资源管理接口直接暴露给外部网络,同时限制DMZ主机的访问权限.
5.3 租户域
基于租户域定义9,以下述方式构建租户域:
1)虚拟信道:利用VxLAN技术为租户构建全局独立隔离的二层逻辑通道;
2)子网配置:将虚拟化的DHCP服务器、路由器、交换机等网络设备接入租户所在虚拟网络环境,实现租户子网配置;
3)租户域边界:在逻辑通道上部署虚拟路由器作出口;
4)访问控制:在出口处实施访问控制规则实现通信管控.如图4所示.
图4 租户域模式Fig.4 Tenant model
基于此,租户可以根据不同的业务划分不同的隔离网络空间,增强业务东西向流量的安全保护,形成纵深防御机制;并且消除了传统方式下进行网络分段时,对物理网络或物理防火墙的配置需求.如图5所示.
图5 基于租户域构建的纵深防御环境Fig.5 Defense-in-depth environment based on tenant domain
进一步地,在租户域环境的基础上,利用SDN与NFV技术实现具有L2~L4的通信访问控制能力的轻量级通信访问控制模块SDNFW[19],以"距通信源最近进行通信访问控制"为原则将其部署于虚拟机的网络接口处,通过基于OpenFlow的SDN控制器(如RYU)下发基于MAC、IP、端口的访问控制策略,即可实现租户域同一子网环境下虚拟机集合的进一
图6 基于SDN构建的租户子域模型Fig.6 Tenant sub-model based on SDN
步划分,从而形成不同的业务子域环境,如图6所示.具体地,如图7所示,采用上述方式在同一子网环境下构建相互隔离的Web、App子域后,通过进一步设置不同子域间的限制性访问策略,包括用户只能经80端口访问Web子域、App子域只向Web子域开放特定访问端口的策略,即可构建具有纵深防御能力的业务环境.
图7 基于SDN的纵深防御能力的业务环境Fig.7 Defense-in-depth environment based on SDN
其中,针对SDNFW给计算节点引入的资源开销说明如下:在所构建的云计算平台的一个计算节点上虚拟30台虚拟机,选择虚拟机VM1与VM2进行如表1所示的测试.其中,计算节点的主要参数CPU为Intel(R)Xeon(R)CPU E5-2609 0 @ 2.40GHz、内存为DDR III 32G、网卡为普通千兆以太网卡;交换机为普通千兆以太网交换机;VM1、VM2位于同一子网,P1为外网中物理机.
表1 基于SDN的访问控制机制性能测试用例Table 1 Performance test case of access control mechanism based on SDN
各测试例下计算节点上虚拟交换机的CPU、内存资源负载均值及标准差如表2所示.依据表2所示,在现有普通服务器常用配置下,本文采用的SDNFW机制在计算节点上引入较小资源开销的情况下,即可为租户提供灵活的子域划分能力,从而可以按需构建具有纵深防护能力的业务隔离环境.
表2 4种不同测试用例下的负载均值及标准差Table 2 Load mean and standard deviation under four different test cases
5.4 基于CloudAC的访问控制系统
基于CloudAC模型的访问控制系统工作过程如下:
1) 用户发起对云资源访问请求,会话管理模块从角色管理数据库检索该用户的授权角色并送回用户,用户获得初始授权.在此过程中会话管理模块持续维持角色互斥;
2) 在用户获取初始会话授权的基础上,访问控制授权组件将进一步地结合授权规则(基于用户与待访问目标资源的属性判定用户是否为资源合法拥有者)、义务(判定用户是否具有对目标资源的管理或租赁权限,若无则将被引导至云资源管理与租赁接口)和条件(用户资源管理或租赁期限是否有效)因素,决策出最终有效权利;
3) 会话创建成功后,用户的本次会话授权许可体现在对应的资源管理页面上.
6 结束语
本文重点针对因资源共享带来的IaaS平台网络隔离、网络安全域构建、资源访问控制问题进行了系统研究.在分析IaaS平台网络层次及网络隔离需求的基础上,系统地构建了IaaS平台网络安全域模型并抽象了租户域模型;之后以RBAC及UCON模型为指导和依据,构建了适用于云资源的访问控制模型CloudAC.
实践测试表明,依据提出的IaaS平台网络安全域模型构建的IaaS平台网络环境,可以有效保障不同业务功能网络之间的安全性;同时,利用租户域或租户子域的构建方式,可以在引入较小管理开销与资源开销的前提下,为租户提供灵活的域划分能力,使得租户可以依据不同的业务需求自主构建隔离、边界可灵活管控的网络环境,为业务提供纵深防护能力.依据所构建的资源访问控制模型,可以有效地保障云环境下具有多租户共享、动态特性的云资源的正确访问与交付.