Bell-Lapadula和Biba的改进安全模型与应用

1 前言

信息是指事务运动的状态和方式,是事物的一种属性,在引入必要的约束条件后可以形成特定的概念体系,通常可以理解为消息、信号、数据、情报和知识等。对于企业而言,信息承载着企业的各种商业数据和机密情报,如专利技术,交易记录等,所以信息是一种资产,其价值地位不低于甚至高于设备资产,所以保证企业信息资产的安全就显得尤为重要。

从安全角度考虑,要保证信息资产的安全,主要关注信息的保密性,可用性和完整性,这个三个属性被成为信息安全的三元组。其中:

q 保密性(Confidentiality)是确保信息在存储、使用、传输过程中不会泄漏给非授权用户或实体;

q 可用性(Availability)是确保授权用户或实体对信息及资源的正常使用不被异常拒绝,允许其可靠而及时地访问信息。

q 完整性是(Integrity)是确保信息在存储、使用、传输过程中不会被非授权用户篡改,同时还要防止授权用户对系统及信息进行不恰当的篡改,保持信息内、外部表示的一致性。

2 常见安全模型

孤立的信息是没有价值的,信息只有在需要被识别,被传递及被访问才能产生价值,所以信息的安全,实际上访问控制的安全,即哪些信息可以被哪些群体访问,哪些信息被访问时完整性没有被破坏的,哪些信息是保密的不可以被随便访问。围绕信息安全的三个重要属性,国内外安全界开发了多种安全模型。其中最为著名的是Bell-Lapadula模型和Biba模型。

2.1 Bell-Lapadula模型

Bell-lapadula是20世纪70年代,美国军方提出的用于解决分时系统的信息安全和保密问题,该模型主要用于防止保密信息被未授权的主体访问。使用Bell-lapadula模型的系统会对系统的用户(主体)和数据(客体)做相应的安全标记,因此这种系统又被称为多级安全系统,级别和模型用于限制主体对客体的访问操作,该模型用于加强访问控制的信息保密性。

Bell-lapadula使用主体,客体,访问操作(读,写,读/写)以及安全级别这些概念,当主体和客体位于不同的安全级别时,主体对客体就存在一定的访问限制。实现该模型后,它能保证信息不被非授权主体所访问。其访问机制如下图所示:

图 Bell-lapadula模型

1. 安全级别为“机密”的主体访问安全级别为“绝密”的客体时,主体对客体可写不可读(no read up);

2. 当安全级别为“机密”的主体访问安全级别为“机密”的客体时,主体对客体可写可读;

3. 当安全级别为“机密”的主体访问安全级别为“秘密”的客体时,主体对客体可读不可写(no write down);

2.2 Biba模型

Biba模型是在Bell-lapadula模型之后开发的,它跟Bell-lapadula模型很相似,被用于解决应用程序数据的完整性问题。Bell-lapadula使用安全级别(绝密,机密,秘密等),这些安全级别用于保证敏感信息只被授权的个体所访问,而Biba模型不关心信息保密性的安全级别,因此它的访问控制不是建立在安全级别上,而是建立在完整性级别上。

Biba模型能够防止数据从低完整性级别流向高完整性级别,跟Bell-lapadula一样,Biba模型也有三条规则提供这种保护,如下图所示:

图Biba模型

1. 当完整性级别为“中完整性”的主体访问完整性级别为“高完整性”的客体时,主体对客体可读不可写(no write up),也不能调用主体的任何程序和服务;

2. 当完整性级别为“中完整性”的主体访问完整性级别为“中完整性”的客体时,主体对客体可写可读;

3. 当完整性级别为“中完整性”的主体访问完整性级别为“低完整性”的客体时,主体对客体可写不可读(no read down);

Bell-Lapadula和Biba模型虽然适用于不同的领域,然而我们也可以看到,Bell-Lapadula模型和Biba模型在实际的运用中都存在一定的局限性,保证完整性就不能保证保密性,而保证了保密性完整性又可能遭到破坏,是否能有一个结合的安全模型呢?

3 改进安全模型—SSR模型

SSR模型的思路来源于BELL和Biba模型,从中进行了一些取舍与扩充以适应国内的一些要求。此安全模型由浪潮嘉信公司提出并应用与其服务器安全加固系统中。

SSR模型和以上两个安全模型一样,通过安全标签的方式实现用户级别的强制访问控制,所不同的是标签安全中级别和级别的访问控制模型方案。SSR安全模型侧重于更强的完整性和保密性要求同时满足,其访问控制为:允许同级别的主体对客体有所有权限,高级别主体对低级别客体有只读权限,低级别主体对高于自己级别的客体没有任何权限,如下图所示:

图 SSR安全模型

1. 当标签级别为“中级别”的主体访问标签级别为“高级别”的客体时,主体对客体无任何访问权限(no read up, no write up)。

2. 当标签级别为“中级别”的主体访问标签级别为“中级别”的客体时,主体对客体持所有权限。

3. 当标签级别为“中级别”的主体访问标签级别为“低级别”的客体时,主体对客体拥有只读权限。(no write down)

根据SSR安全模型,形成的访问控制列表(ACL)如下:

 

客体

主体

高级别

中级别

低级别

高级别

所有权限

读取

读取

中级别

无权限

所有权限

读取

低级别

无权限

无权限

所有权限

SSR安全模型的主要特点是:

 

1. 信息流只能从低级别流向高级,确保的信息的保密性。

2. 高级别主体对低级别客体的访问只能进行读取,确保了低级别资源的完整性。

4 SSR安全模型的扩充

对SSR安全模型进行扩充主要是为了让模型更加适用和解决更多的安全问题。扩充主要分两部分,一是安全标签级别的扩充,把安全标签从有序的级别扩充到可自定义标签;一是主体颗粒度的扩充,把主体颗粒度从用户级别扩充到进程级别。

4.1标签级别的扩充

SSR安全模型只允许信息从低级别流向高级别,但是在现实的应用中有存在多个部门处在同一安全级别或者根本无级别可言,并且各个部门之间既要要保证其独立性又要保证一定的连通性,即某部门除了需要访问其部门下的资源,还需要只读其他部门的一些共享资源。此时就需要采用自定义的安全标签对模型进行横向扩充以达到灵活性,如下图所示:

图 SSR安全模型标签级别扩充

SSR安全模型标签扩充以后相同标签级别的主体和客体之间的访问控制按照企业内既定的基于角色的强制访问策略进行。比如在一个软件开发企业,代码只有开发部门能够访问,但是BUG文档可以由测试和技术支持部门访问。而这样的访问策略不能因为开发部门有所有权限而随意更改。

4.2 主体颗粒度扩充

主体颗粒度扩充主要是把主体的颗粒度从用户级别扩充到进程级别,扩充的目的是为了实现更加细化的安全策略以保证信息系统的安全。试想在信息系统中,同级别的用户下的程序对于同级别下的文件持有所有权限,而一个用户可能拥有多个应用,如果其中一个应用的程序被恶意代码感染,同时也会影响到其他的应用,所以此时需要把主体标签级别扩充到进程以实现进程与被访问客体间的独立性。扩充的模型和标签扩充模型类似,采用基于角色的访问控制模型,不同的是用户变成了进程,如下图所示:

图 主体颗粒度扩充

主体颗粒度扩充到进程以后可以实现应用和应用需要访问资源之间的绑定,以防止同级别应用之间的交叉感染。

5 SSR安全模型的应用

涉密系统方案:通过应用SSR安全模型,信息流只能从低级别流向高级别,而不能往下,即使某一级别的用户受到病毒感染或者黑客渗透,其也只能感染和阅读自己的信息与读取下级的信息,确保了保密性。高权限用户无法篡改低权限用户的文件,保证了文件的完整性,避免了官大压人的现象,可以保证递交文件的真实可靠。

病毒防治方案:信息的访问需要程序,因此程序往往是被攻击对象,攻击了程序就可以访问的其对应的文件甚至其他程序的文件。应用SSR安全模型以后,把主体颗粒度扩充到进程,让程序与程序需要文件进行绑定,然后再将程序本身进行只读保护,既能保证程序不被感染,又能防止对象被非法程序访问,从而保证了应用系统的安全性。

posted @ 2020-06-09 10:56  Luminous~  阅读(3225)  评论(0编辑  收藏  举报