查看原文
其他

干货分享 | 优炫数据库安全功能之四:强访控制

优炫软件 2020-08-29


强制访问控制(MAC)是系统强制主体服从访问控制策略,是由系统对用户所创建的对象,按照规规则控制用户权限及操作对象的访问。它通过强制的存取限制来阻止主体对客体的直接和间接非法访问。支持强制访问控制的系统为主体和客体分配了各自的安全标识,系统通过比较主客体的安全标识来决定主体能否访问客体。



主体和客体


优炫数据库(UXDB)中的主体是指数据库管理系统中的所有用户,其中包括系统管理员、安全员、审计员三个特权用户。客体包括表的元组和列。安全员通过赋予主体和客体一定的敏感度标记,按照预定比较规则比较标记,最后根据比较结果决定是主体是否有权对客体进行访问操作。


强制访问控制模型


优炫数据库(UXDB)将强制访问控制部署在自主访问控制模块之后。当用户发出访问某个客体的请求时,系统首先根据访问控制列表判断用户是否具有访问客体的权限,如果有权访问,进入强制访问控制模块,获取主客体的敏感度标记,根据请求访问的类型对主客体的标记进行比较。如果比较结果通过,那么准许此次访问否则提示用户无权访问,终止连接。


标记的概念


制访问控制的基础是敏感度标记。敏感度标记包含等级和范围两个基本要素。


等级是一线性有序的名称序列,序列中存在着一定的级别关系。比如,绝密、秘密、机密、普通之间满足大小关系:绝密>秘密>机密>普通。而范围是一个集合,由一个或者多个名称组成,各个名称之间彼此独立无序。

 1.主体标记 

数据库中的主体有五个标记:最大读标记,最大写标记,最小写标记,默认会话标记和默认写标记。安全员为用户设置标记时,一次性指定这五个标记的内容。



 2.标记比较 

标记比较关系运算定义:如果(policyid1,level1,scope1)≥(policyid2,level2,scope2)成立,那么policyid1必须与policyid2相等(没有标记时,policyid为0),level1数值大于等于level2(没有标记是,level数值为0),scope1包含scope2(没有标记时scope为空)。Scope采用位编码,类型是OID(unsigned int)方便集合运算。

行级保护比较:

select: max_read >= row_label

insert: 直接插入,标记为default_write

update: max_write >= row_label >= min_write

delete: max_write >= row_label

列级保护比较:

select: max_read >= column_label

insert: max_write >= column_label >= min_write

update: max_write >= column_label >= min_write

delete: max_write >= column_label


访问控制规则


优炫数据库(UXDB)的强制访问控制采用“向下读,区间写”的原则,实现主客体的访问控制。

读访问控制规则较为简单。优炫数据库(UXDB)先获取客体标记,然后获得主体在同一策略上的最大读标记。下面两种情况下允许主体读客体数据:

 1  客体没有标记; 2  客体有标记,主体在同一策略上有标记且满足客体标记≤用户最大读标记。


写访问控制的规则中,优炫数据库(UXDB)首先获取客体标记,然后获得主体在同一策略上的最大写标记和最小写标记。下面两种情况下允许主体写客体数据:

 1  客体没有标记; 2  客体有标记,主体在同一策略上有标记,且满足主体的最小写标记≤客体标记≤用户的最大写标记。


优炫数据库(UXDB)通过强制访问控制功能,对于不同主体访问不同客体进行管控,确保合法访问,避免非法访问导致安全风险,确保数据库及数据安全。


    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存