第4章 数据库安全性
在第一章中已经讲到,数据库的特点之一是由数据库管理系统提供统一的数据保护功能来保证数据的安全可靠和正确有效。数据库的数据保护主要包括数据的安全性和完整性。本章主要介绍数据库的安全性,第5章将讨论数据库的完整性。
4.1 数据库安全性概述
数据库的安全性是指保护数据库以防止不合法使用所造成的数据泄露、更改或破坏。
安全性问题不是数据库系统所独有的,所有计算机系统都存在不安全因素,只是在数据库系统中由于大量数据集中存放,而且为众多最终用户直接共享,从而是安全性问题更为突出。系统安全保护措施是否有效是数据库系统的主要技术指标之一。
4.1.1 数据库的不安全因素
对数据库安全性产生威胁的因素主要有以下几方面。
1、非授权用户对数据库的恶意存取和破坏
一些黑客(hacker)和犯罪分子在用户存取数据库时猎取用户名和用户口令,然后假冒合法用户偷取、修改甚至破坏用户数据。因此,必须阻止有损数据库安全的非法操作,以保证数据免受未经授权的访问和破坏,数据库管理系统提供的安全措施主要包括用户身份鉴别、存取控制和视图等技术。
2、数据库中重要或敏感的数据被泄露
黑客和敌对分子千方百计盗窃数据库中的重要数据,一些机密信息被暴露。为防止数据泄露,数据库管理系统提供的主要技术有强制存取控制、数据加密存储和加密传输等。
此外,在安全性要求较高的部门提供审计功能,通过分析审计日志,可以对潜在的威胁提前采取措施加以防范,对非授权用户的入侵行为及信息破坏情况能够进行跟踪,防止对数据库安全责任的否认。
3、安全环境的脆弱性
数据库的安全性与计算机系统的安全性,包括计算机硬件、操作系统、网络系统等的安全性是紧密联系的。操作系统安全的脆弱,网络协议安全保障的不足等都会造成数据库安全性的破坏。因此,必须加强计算机系统的安全性保证。随着Internet技术的发展,计算机安全性问题越来越突出,对各种计算机及其相关产品、信息系统的安全性要求越来越高。为此,在计算机安全技术方面逐步发展建立了一套可信(trusted)计算机系统的概念和标准。只有建立了完善的可信标准即安全标准,才能规范和指导安全计算机系统部件的生产,较为准确地测定产品的安全性能指标,满足民用和军用的不同需要。
4.1.2 安全标准简介
计算机以及信息安全技术方面有一系列的安全标准,最有影响的当推TCSEC和CC这两个标准。
TCSEC是指1985年美国国防部(Department of Defense,DoD)正式颁布的《DoD可信计算机系统评估准则》(Trusted Computer System Evaluation Criteria,TCSEC或DoD85)。
TCSEC又称桔皮书。1991年4月,美国国家计算机安全中心(National Computer Security Center,NCSC)颁布了《可信计算机系统评估准则关于可信数据库系统的解释》(TCSEC/Trusted Datebase Interpretation,TCSEC/TDI,即紫皮书),将TCSEC扩展到数据库管理系统。TCSEC/TDI中定义了数据库管理系统的设计与实现中需满足和用以进行安全性级别评估的标准,从4个方面来描述安全性级别划分的指标,即安全策略、责任、保证和文档。每个方面又细分为若干项。
根据计算机系统对各项指标的支持情况,TCSEC/TDI将系统划分为4组(division)7个等级,依次是D、C(C1,C2)、B(B1,B2,B3)、A(A1),按系统可靠或可信程度逐渐增高,如表4.1所示。
表4.1 TCSEC/TDI安全级别划分
安全级别 |
定义 |
A1 |
验证设计(verified design) |
B3 |
安全域(security domains) |
B2 |
结构化保护(structural protection) |
B1 |
标记安全保护(labeled security protection) |
C2 |
受控的存取保护(controlled access protection) |
C1 |
自主安全保护(discretionary security protection) |
D |
最小保护(minimal protection) |
D级:该级是最低级别。保留D级的目的是为了将一切不符合更高标准的系统统统归于D组。如DOS就是操作系统中安全标准为D级的典型例子,它具有操作系统的基本功能,如文件系统、进程调度等,但在安全性方面几乎没有什么专门的机制来保障。
C1级:该级只提供了非常初级的自主安全保护,能够实现对用户和数据的分离,进行自主存取控制(DAC),保护或限制用户权限的传播。现有的商业系统往往稍作改进即可满足要求。
C2级:该级实际上是安全产品的最低档,提供受控的存取保护,即将CI级的DAC进一步细化,以个人身份注册负责,并实施审计和资源隔离。达到C2级的产品在其名称中往往不突出“安全”(security)这一特色, 如操作系统中的Windows 2000、数据库产品中的Oracle 7等。
B1级:标记安全保护。对系统的数据加以标记,并对标记的主体和客体实施强制存取控制(MAC)以及审计等安全机制。B1级别的产品才被认为是真正意义上的安全产品,满足此级别的产品前一般多冠以“安全”(security)或“可信的”(trusted)字样,作为区别于普通产品的安全产品出售。
B2级:结构化保护。建立形式化的安全策略模型,并对系统内的所有主体和客体实施DAC和MAC。
B3级:安全域。该级的TCB (Trusted Computing Base)必须满足访问监控器的要求,审计跟踪能力更强,并提供系统恢复过程。
A1级:验证设计,即提供B3级保护的同时给出系统的形式化设计说明和验证,以确信各安全保护真正实现。
CC是在上述各评估准则及具体实践的基础上通过相互总结和互补发展而来的。和早期的评估准则相比,CC具有结构开放、表达方式通用等特点。CC提出了目前国际上公认的表述信息技术安全性的结构,即把对信息产品的安全要求分为安全功能要求和安全保证要求。安全功能要求用以规范产品和系统的安全行为,安全保证要求解决如何正确有效地实施这些功能。安全功能要求和安全保证要求都以“类-子类-组件”的结构表述,组件是安全要求的最小构件块。
CC的文本由三部分组成,三个部分相互依存,缺一不可。
第一部分是简介和一般模型,介绍CC中的有关术语、基本概念和一般模型以及与评估有关的一些框架。
第二部分是安全功能要求,列出了一系列类、子类和组件。由11大类、66个子类和135个组件构成。
第三部分是安全保证要求,列出了一系列保证类、 子类和组件,包括7大类、26个子类和74个组件。根据系统对安全保证要求的支持情况提出了评估保证级(Evaluation Assurance Level,EAL),从EAL1至EAL7共分为7级,按保证程度逐渐增高。如表4.2所示。
表4.2 CC评估保证级(EAL)的划分
评估保证级 |
定义 |
TCSEC安全级别(近似相当) |
EAL1 |
功能测试(functionally tested) |
|
EAL2 |
结构测试(structurally tested) |
C1 |
EAL3 |
系统地测试和检查(methodically tested and checked) |
C2 |
EAL4 |
系统地设计、测试和复查(methodically designed,tested and reviewed) |
B1 |
EAL5 |
半形式化设计和测试(semiformally designed and tested) |
B2 |
EAL6 |
半形式化验证的设计和测试(semiformally verified designed and tested) |
B3 |
EAL7 |
形式化验证的设计和测试(formally verified design and tested) |
A1 |
CC的附录部分主要介绍保护轮廓(Protection Profile,PP)和安全目标(Security Target,ST)的基本内容。
这三部分的有机结合具体体现在保护轮廓和安全目标中,CC提出的安全功能要求和安全保证要求都可以在具体的保护轮廓和安全目标中进一步细化和扩展,这种开放式的结构更适应信息安全技术的发展。CC的具体应用也是通过保护轮廓和安全目标这两种结构来实现的。
粗略而言,TCSEC的C1和C2级分别相当于EAL2和EAL3;B1、B2和B3分别相当于EAL4、EAL5和EAL6;A1对应于EAL7。