戚建淮,宋 晶,汪 暘,刘建辉,郑伟范
强制访问控制(Mandatory Access Control,MAC)是保障系统安全的一项关键技术。所谓强制访问控制,是指由系统根据用户主体和资源客体所包含的敏感标记,按照确定的规则,决定主体对客体访问权限的方法。有访问权限的主体能按授权方式对指定客体实施访问。其中,敏感标记由系统安全员或系统自动按照确定的规则进行设置和维护,是表示资源客体安全级别并描述客体数据敏感性的一组信息[1]。
传统的强制访问控制模型有Bell-LaPudula模型[2]、Biba模型[3]等,其针对保密性或完整性要求,对主体和客体做了不同的读写规定。此后,信息安全领域的研究人员针对传统模型做了不同程度的改造。为了进一步提高访问控制的灵活性,某些研究者允许超级管理员对主、客体的安全级做临时修改,并在不同数据库中应用了这一类改造后的强制访问控制策略[4-6]。
然而,当前关于强制访问控制在数据库安全上的应用研究,往往只局限于数据库层面进行安全设置。这样会将数据库提前暴露在危险环境中,使数据资源遭受严重威胁。因此,为保障数据库安全,不能仅仅只在数据库服务器上做安全配置。应当构建基于强制访问控制的数据库安全体系,在用户访问数据库前锁定可疑请求,然后再对正常请求进行数据库资源与用户等级比对,以确定是否允许系统对当前用户的请求数据做出响应,以完成用户操作的执行。
本文主要提出基于染色标记的数据库安全强制访问控制体系。该体系主要包括请求过滤、资源染色、数据库系统改造、请求响应管控以及身份标记与虚拟通道加密等几个步骤。
请求访问数据库的用户需要通过基于PKI和虚拟化技术的认证虚拟化系统完成角色认证,然后才可以向数据库发送请求。请求数据经过基于云计算的防火墙系统过滤后,才到达数据库服务器前的主机管控系统。所谓角色,即用户的安全等级和身份范畴。完整的访问体系如图1所示,其中审计取证系统记录了系统中的关键访问信息,能够为系统访问行为提供审计取证。
图1 强制访问控制数据库安全访问体系
主机管控系统控制主机代理对数据库服务器等资源实体予以用户权限的等级化染色,并以IP、端口、MAC地址及用户权限等信息为标记,在管控主系统中开辟访问通道,根据过滤后的请求行为,分发对应等级资源实体的操作密钥,以获取操作权限。若响应行为中的资源实体等级与访问通道不匹配,则锁死;否则,放行通过。
每一个主机管控系统可分为前端和后端两部分。前端即为管理多台数据库服务器主机的主机管控器硬件实体上部署的主系统,后端则为被管控数据库服务器上部署的主机代理软件。每个管控主系统管控多个数据库服务器,同时每个数据库服务器都有一个主机代理。由于组织机构信息系统较多,一台主机管控设备无法监控所有服务器主机,分支机构需要监控自己的服务器主机。这种情况下,可以采用分级模式部署,如图2所示。
图2 强制访问控制数据库安全物理部署
所谓资源染色(或等级化染色),是指通过安全标记以确定可操作数据资源的用户等级。本操作中将涉及以下几个概念。
(1)资源实体
资源实体包括受保护系统中的各种资源服务器。由于保护粒度细化到被访问数据上,故本次染色策略最终会被配置在数据库系统中。
(2)用户角色
系统定义受保护系统中的用户角色(用户的分类状况)和用户关系(用户之间是否具有某种关系以及关系结构,如层级结构等)。
(3)用户行为
相对于资源实体,对用户访问数据库服务器的行为类型进行定义(一般可按照行为目的区分、按照行为业务类别区分、按照行为与系统的交互类型区分),主要包括读、写和删除等。
(4)资源等级与角色等级
定义每项资源的资源等级,以及各等级资源可被某用户角色执行某项操作的向量列表。
确定染色策略后,管控主系统将会建立用户角色与其能够访问的资源的对应关系,形成染色策略表,以供系统在必要时进行查询。同时,主机管控系统将染色策略下发至数据库服务器上的主机代理软件,由主机代理将该染色策略接收并部署在数据库系统上。
以上部分展示了系统染色工作的基本过程。通过染色策略的配置,系统将以完成系统主、客体的敏感标记,按照确定的染色策略规则,决定主体对客体访问权限的方法。有访问权限的主体能按授权方式对指定客体实施访问。同时,染色策略由系统安全员或系统自动按照确定的规则进行设置和维护。以上产品安全管控行为符合相关安全等级保护标准和设计要求,是实现强制访问控制的必要基础。
部署在数据库服务器上的数据库系统需要针对染色策略表进行改造,以便对系统检查强制访问控制规则。
系统在数据库的数据字典中添加安全等级表和范畴表,其中安全等级表对用户和数据资源的安全等级做出描述,范畴表则定义了全部用户的部门、分类的范畴信息。
根据上文描述,数据库还添加了染色策略对照表。该表由管控主系统配置,并由数据库服务器上主机代理接收,并根据安全等级表和范畴表定义的等级和范畴进行同步。该表详细描述了资源可以被执行读/写等操作的用户等级和范畴。安全等级表、范畴表以及根据染色策略配置生成的染色策略表,对所有用户可读,但只允许强认证用户(一般是系统管理员)执行写操作[6]。
每一个通过认证系统与防火云系统的用户,都在管控主系统中留下了其IP、MAC地址和端口等信息的记录。系统在此基础上加入用户的角色、权限信息,通过非加密算法生成一个数据,成为当前用户唯一的身份标记。系统基于SDN(Software Define Network,软件定义网络)与虚拟化技术为用户自动开辟一条虚拟访问通道。每条虚拟访问通道有唯一的标识码,并与用户的安全标记实施绑定。在当前用户的本次访问中,用户只能通过该一一对应的虚拟通道来操作其拥有操作权限的各项资源实体。
如果用户出现了误操作、恶意操作或是系统发生了故障,导致用户偏离了初始绑定的虚拟通道,则检测异常报警模块会自动产生报警警示。根据报警结果,管控系统能够自动将用户重新引导至初始通道,以避免用户发起资源的误操作。
系统在针对用户请求行为做出响应前,会将当前通道与初始通道的标识码进行比对。因此,如果存在用户恶意更改虚拟通道,企图通过其他用户的虚拟通道欺骗主机系统响应请求的情况,管控主系统能够自动修正通道,避免用户获得其权限以外的响应数据而造成对资源保密性的破坏。
由于用户角色的身份标记与访问路径强制绑定,因此在上述引导行为发生后,无论引导前用户的虚拟通道变更行为是无意还是恶意,都能够保证用户只能对拥有权限的数据资源进行操作。
用户的身份标记和虚拟通道是非加密的。为了防止该标记被其他用户非法获取、仿冒、篡改,应当对其加密传输。该加密模块应当在管控主系统与主机代理上同时部署,并运行不同的功能。系统通过密钥对身份标记和虚拟访问通道同时加密,将密文与请求数据进行绑定后,将数据传送至主机代理软件所在的被管控数据库服务器上。然后,主机代理通过密钥对身份标记和虚拟访问通道密文进行解密,并将解密结果传送至数据库系统的染色策略表,从而实现用户角色与请求操作的等级匹配,判断是否允许用户完成请求操作,并向用户发送响应数据。
该模块基于PKI[7]的密钥管理机制进行设计,具体工作原理如下:
(1)在数据库服务器上,由加密系统产生公钥私钥对,并在后端保存私钥,同时将公钥发送至CA中心;
(2)CA中心对公钥进行加密认证,并发送至管控主系统;
(3)管控主系统完成对公钥证书的验证,确定公钥由被管控数据库服务器上的主机代理发送,然后保存该公钥;
(4)管控主系统利用对称加密算法产生随机key,并用随机key对用户的安全标记和虚拟访问通道进行加密。然后,使用公钥对随机key进行加密,将加密后的随机key、安全标记和虚拟访问通道的密文以及用户的操作请求数据绑定后传送至数据库服务器;
(5)服务器上的主机代理接收到绑定数据后,先利用保存的私钥对随机key进行解密,然后再利用随机key对密文进行解密,得到用户的安全标记和虚拟访问通道信息;
(6)在完成解密工作后,通过染色策略匹配,判断是否允许用户执行相应操作。之后,主机代理利用随机key加密响应数据,再发送至管控主系统。最后,管控主系统利用保存的随机key解密响应数据,完成整个响应过程。
随着云计算的应用普及,大规模用户操作的数据库等资源面临强制访问控制的安全需求。本文采用数据库资源的染色标记方法,提出了一种强制访问技术在数据库操作上的安全访问应用。该应用主要构建了从用户请求到系统响应的完整强制访问控制操作链,实现了用户身份的强认证和用户数据库操作的强制访问控制。