第五章数据库安全.docx
《第五章数据库安全.docx》由会员分享,可在线阅读,更多相关《第五章数据库安全.docx(29页珍藏版)》请在冰点文库上搜索。
第五章数据库安全
第五章数据库安全
数据库的任何部分都不允许受到恶意侵害,或XX的存取与修改。
数据库的破坏来源于:
系统故障;
并发所引起的数据不一致;
转入或更新数据库的数据有错误,更新事务未遵守保持数据库一致的原则。
安全问题——人为的破坏,非法访问、篡改或破坏。
发现威胁数据库安全的因素
采取相应措施两个方面缺一不可
第一节威胁
多数威胁看不见,遇到破坏都太迟了安全带、乏味单调
一.篡改伪造
对数据库中的数据XX进行修改,使其失去原来的真实性,造成影响之前是很难发现它的。
人为因素:
个人利益驱动;
隐藏证据;
恶作剧令人头疼,看起来无辜;
无知去了不该去的地方,导致无意破坏。
二.损坏
数据的真正丢失,表和整个数据库部部分或全部被删除、移走或破坏。
原因:
破坏有明确的动机,对付之既容易(只需简单策略)又困难(涉及的人很广)
恶作剧出于爱好或好奇,给数据造成破坏;
病毒感染范围大,应拒之门外。
三.窃取
一般对敏感数据的访问而完成窃取。
严重问题:
甚至当它已损害还难以发现。
原因:
工商业间谍;
不满和要离开的员工。
数据可能比你想象的重要——数据丢失比毁坏更令人苦恼。
第二节安全防范
安全管理——需要一成文的安全计划和用户手册。
没有计划就准备失败
一.安全计划制定的原则
原则:
1.切实可行用人们愿意的方法,而不是应该的方式;
2.经得起测试用自己最优秀的雇员想办法突破,让用户向你反馈意见;
3.不应广为人知特殊是一实现方法,应保密,但规则应公布,如禁止将数据存入工作站的硬盘,但只在周四晚上查看规则执行的情况;
4.需经常检查措施、威胁和可行性二次/年
二.使用OS和NOS安全措施
OS,NOS——NetWare,LANServerWindowsNT,UNIX等,都有用户管理、口令检查、数据追踪等安全防范的第一步
1.没有口令,任何人不许进入删除没有特定用户的帐户
2.特别注意Supervisor或Admin帐户它们拥有全部访问权限
方法:
指定自己的管理权限与Supervisor或Admin相同,然后不让Supervisor/Admin帐户登录,如系统不允许删除之,则为它们设定随机的口令。
3.口令策略限制使用长度、格式、常见键盘组合
4.控制访问只让用户进入其需要访问的文件、目录及其他资源,适当地设置系统标志,如Netware的删除禁止deleteinhibitDI
拷贝禁止CopyinhibitCI
三.限制可移动介质的访问
有盘工作站、有磁带工作站病毒、窃取、损坏
1.磁带驱动器
备份的很好选择方法,却不利安全防火、安全、防盗
2.软盘
易病毒感染无盘工作站,病毒检查
四.限制接触
1.登录使用时易受攻击不用时/离开一会儿,应先退出
2.锁上服务器,当从一般区域挪走服务器。
第三节数据库安全
会引发数据失密,丢失,出错等。
数据库安全性:
数据库的任何部分都不允许受到恶意的侵害或XX的存取与修改。
涉及二层意义:
一为运行安全;二为信息安全。
一.数据库安全与数据库管理系统
DBMS管理控制库(DBMS建立在OS上)。
安全的OS是数据库安全的前题。
OS应保证数据库中数据必须经由DBMS访问而不允许用户越过DBMS直接通过OS进行访问。
DBMS对数据库安全的帮助:
用户授权;
防止非授权用户使用系统;
统计数据库的安全性。
二.DBA的职能数据库管理员
数据库只有解决保密问题,才可能实现共享;
数据库用户及其访问权限应由DBA根据DBMS所提供的功能进行控制。
DBA的特权不能转让;对敏感数据需跟踪审查,以便监督其访问;一旦发现窃密企图,DBA应及时分析处理;口令要严加管理,定期更换。
主要职能:
建立用户帐号/撤消用户帐号
授予用户权限/撤消用户权限
另:
防病毒,备份等。
大多数数据库为C2级,可增加B1级的安全管理模块。
三.访问控制
1.数据库安全的基本手段略,详见第2章相关内容
2.访问控制在数据库之间是彼此独立的
3.数据库用户——用户分类
(1)一般用户(SQL中称“具有CONNECT特权的用户”)
A.根据所授予的特权,可查询或更新数据库中数据;
B.可建立视窗或定义数据的别名;
(2)具有支配部分数据库资源的用户(SQL中称“具有RESOURCE特权的用户”)
除一般用户的权限外,有:
A.可建立表,索引和簇群;
B.具有授予收回一数据库用户对其所建立的数据对象的访问权力;
C.具有对其所建立的数据对象跟踪审查audit的权力;
(3)具有DBA特权的用户
除
(1)和
(2)的权限外,有:
A.可访问数据库中的任何数据;
B.具有授予和撤消用户对数据库的访问权以及可建/撤数据库用户;
C.具有为PUBLIC定义别名的权限;
D.有权对数据库进行调整,重组或重构;
E.具有控制整个数据库系统的跟踪审查的权力;
说明:
授权注意事项:
A.用户标识与鉴别标识是公开的,应鉴别,如口令,对话,个人特征(指纹、声波、鉴名等),物品鉴别(钥匙、磁卡等)。
B.授权
数据库
数据对象
数据库的授权由DBA完成:
GRANT<特权类型>[{<特权类型>}]TO<用户标识>
[IDENTIFIEDBY<口令>];
<特权类型>:
:
CONNECT|RESOUCE|DBA
数据对象的授权由DBA或数据对象建立者完成:
CRANT<特权>ON<表名>TO<受权者>[{<受权者>}]
[WITHGRANTOPTION];
<特权>:
:
=ALLPRIVILEGES[<操作>{,<操作>}]
<操作>:
:
=SELECT|INSER|DELETE|UPDATE[{<准许修改的属性表>}]
<准许修改的属性表>:
:
=<属性名>[{,<属性名>}]
<受权者>:
:
=PUBLIC|<用户标识>
收回特权:
REVOKE<特权>ON<表名>FROM<受权者>[{,<受权者>}];
(4)数据分类,建立视图
四.数据加密
1.意义
防止窃取措施外,万一被窃取,则考虑加密。
介质,通信线路;
数据库系统本身无法控制的。
2.特点
(1)密码系统采用公开密
(2)多级密钥结构(对应库名-表名-记录名-字段名)
(3)加密机制(加/解密钥公开,相同或不相同,但加密算法应绝密;加密算法公开,但加/解密钥(相同时)应绝密,(不相同时)解密钥应绝密)
(4)良好的加密算法
3.加密数据库范围
(1)索引字段不能加密;
(2)关系运算符不能加密;
(3)表间连接码字段落不能加密(外部编码——表与表相连)。
4.加密后对原DBMS的影响
(1)无法实现对数据制约因素的定义;
(2)密文数据无法排序,分类或分组;
(3)无法便用SQL语言的部分内部函数;
(4)一些应用开发工具受到限制。
加密后如何保证数据库操作的兼容性尤其在分布式库中,仍是待解决的问题。
五.跟踪审查
一种监视措施——分系统审计(系统命令使用,客体使用)和用户审计。
跟踪审查是由DBA控制或由数据所有者控制。
跟踪审查是对保密数据跟踪,并跟踪、记录有关的访问活动,以发现窃密企图,如有重复,相似的查询。
记录在文件上audittrailfile跟踪审查记录文件,包括:
操作类型(如修改,查询等);
操作日期时间;
所涉及的数据(如表,视窗,记录,属性等)
数据的前象和后象。
DBMS相应施加和撤销语句:
A.施加AUDITSELECT,INSERT,DELETE,UPDATEON<表名>WHENEVERSUCCESSFUL
B.撤销NOAUDITALLON<表名>
第四节设计分析实例COBASE
V1.0为C1级,V2.0为C2级
一.设计
B1级对数据库中主、客体按敏感程度加以分类并增强安全审计能力。
1.安全策略是任何对数据库对象的存取行为的控制规则集合
资源授权:
由DBA完成对普通用户调用系统所管理的数据库资源的权限;
操作授权:
数据库用户将其拥有的数据库资源使用权限授予其他用户,如选择、插入等。
对数据库中主、客体定义并指派相应的准许空间和敏感度标识(无歧义以保证标识完整性)。
定义基于敏感度标识的MAC(强制存取控制),以检查规则完成系统级的存取控制,如读、写、修改等。
2.在DBMS一级上对数据库用户的创建和鉴别进行管理。
安全审计:
用户级——用户级事件是为某数据库用户所设定进行审计的事件;
系统级——由DBA设计的,在DBMS运行期间内与系统级权限相关的事件。
以数据库表形式保存安全审计日志,并由DBA管理审计日志记录。
3.采用一对一进程结构,因而用户工作域的分离依赖于底层OS的TCB(可信计算基,为上层)域的隔离能力,即用户的私人工作区以进程的私有数据区的形式隔离,而对共享的数据库数据的用户分离由MAC(强制访问控制,为下层)和DAC(自主访问控制,为下层)保证。
4.多重实例
同一表中包含两条肯有同一主码的元组现象。
支持多重实例=》支持跨级别可靠性=》导致数据库的迅速扩大=》为保证主码唯一性需构造复合码,从而使操作复杂性大大增加。
COBASE牺牲一定安全性而保证数据的完整性――不可多重实例(可推出敏感数据)
相同ID的两客户有不同敏感度:
标识
客户ID
客户名
城市
。
。
S:
A,C
1001
李
上海
。
。
P:
C
1001
赵
西安
。
。
ID冲突
5.隐蔽信道
系统中存在某个/些通信通道可被进程利用来传递信息,而该传递方法违反了系统的安全策略。
隐蔽存储信道——存在时,非法进程可通过对合法进程的存储空间的直接/间接读写来获得或传递信息;
隐蔽时间信道——易控制。
COBASE通过设定系统的审计选项来加以跟踪。
6.体系
(系统级审计,敏感度标识)
用户 注册
安全审计
接收SQL语句
(自主访问控制)
(并指派敏感度标识) (同义词表现图)
结果输出
DCL数据控制语句;DDL数据定义语句;DML数据操作语句
在用户一次会话期间,COBASE对用户进行连续的安全监控和响应用户的数据库请求。
二.实现
1.敏感度标识
类型MLSLABEL——对应于每一个记录,任一表都含一隐含列——LABEL,以保证系统安全性,在DDL、DML更新语句中加入相应机制,限制用户定义和使用该种类型的列,但SELECT可引用MLSLABEL。
分层密级——定义主客体的敏感程序 SECRET-LEVEL
组成
非分层范围——定义该敏感度标识在该分层密级所覆盖的安全域集合
NON-SECRET-RANGE
2.数据字典的扩充
完成强制存取控制,需在数据库中保存(扩充数据字典):
A.对可用敏感度标识安全域的定义;
B.用户许可空间;
C.数据敏感度标识的属性。
(1)字典表SYSTTABLES增加字段:
AUDIT-SCOPEMLSLABEL[SCRETLEVEL]标识分级密级。
OPERATION-AUDIT-SETCHAR(3)11种操作,每操作2位:
一位表示对表操作成功的审计;
另一位表示对表操作不成功的审计。
ROWLABEL1MLSLABEL表示该表所能允许插入
ROWLABEL2 MLSLABEL的记录的密级上下界。
TABLE-MLSLABELMLSLABEL密级标识,记录对表的审计设置:
0未设、1设置。
(2)扩充字典表
SYSTABCOLS增加列:
LABELMLSLABEL
每表均需扩充,用于对每记录加一敏感度标记,从而实现MAC处理。
(3)数字字典表
SYSUSERAUTH增加字段:
AUDIT-SCOPEMLSLABEL[SECRET]同
(1)的。
OPERATION-AUDIT-SET CHAR(3) 用于记录用户的审计设定,与
(1)的类似。
(SPECIAL-AUTHORITY) MLSLABEL[3][SECRET-LEVEL]
用于记录授予用户的特殊权限,如READ-DOWN、
WRITE-UP、WRITE-DOWN。
SYSTEM-AUDIT-SET CHAR(6) 用于记录系统中的审计操作的设置。
USER-MLSLABELMLSLABEL 用于记录用户的敏感度标识。
说明:
SPECIAL-AUTHORITY机制有三种策略:
A.只指定单一级别;
B.指定多重级别;
C.同时指定密级和非分层范围。
代价高
(4)内码与标识转换增加的
字典表LEVEL-TRANSLATE字段:
CODE CHAR(SECRET-LEVEL/8)
DESCRIPT CHAR(30)
字典表SCOPE-TRANSLATE字段:
CODE CHAR(NON-SECRET-RANGE/8)
DESCRIPT CHAR(30)
(5)建立新字典表
A.审计操作表SYSAUDIT-ACTION以实现审计操作的表达与内码之间的转换:
NAMENOT NULL CHAR(27)
ACTION NOT NULL NUMBER
B.审计结果表SYSAUDIT-TRAIL系统安装时创建的
TIMESTAMPNOT NULL DATE
USERIDNOT NULL CHAR(30)
ACTION NOT NULL NUMBER
RETURNCODE NOT NULL NUMBER
USERHOST CHAR(240)
TERMINAL CHAR(240)
TABLENAME CHAR(30)
OBJNAME CHAR(30)
SECRETLABELMLSLABEL
3.SQL语句的执行
执行时必须保证对实体敏感度标识属性的完备支持。
(1)SQL语法及标识指派
扩充DDL与DCL中对数据库对象及用户的定义,至少扩充一个MLSLABEL列。
在DML操作时,LABEL对用户是透明的,用户不必也不能对LABEL作增删改操作,但可将敏感度标识作为查询的一判断条件或作为输出列。
(2)优化存取
增加MAC会影响单位效率(尤在进行审计后)
A.文件方式——将不同密级的元组存放到不同数据库之中;
B.索引方式——以密级标识为索引段;
C.聚集方式——将每表中具有相同密级数据聚集在一起,存取效率可最高,但聚集的建立与维护代价很大;
D.在语言层修改查询条件(COBASE中使用)——查询条件中增加密级筛选条件。
(3)执行时的元组标识
A.一元操作
如Insert(系统会自动插入LABEL列)、DELETE、Update(不允许更新LABEL列)。
MAC处理简单,只需对比主、客体的LABEL而决定是否接受存取要求。
B.二元操作
如Join操作:
取两关系中该连接元组的两个敏感度标识的最小上界LUB,即结果标记的分层密级为各标记分层密级的最大值,非分层范围为各标记的非分层范围的并集。
MAC处理复杂。
例:
关系模式Customer模式的Cust表:
LABELCUST-IDCUST-NAMECITYPHONE
S:
A,C1001李上海87621132
C:
C1003赵西安5267381
P:
A,D1004孙北京63941104
关系模式ORDFR模式的ORD表:
LABELorderIDpay-typeorderdateshipdateCUST-ID
C:
A9003cash97-02-0597-03-181003
C:
B9004credit96-10-1197-03-051004
假定分层密级S,C,P(S>C>P);非分层范围{A,B,C,D}的子集。
某用户USERA(LABEL为C:
A,C)提出一查询连结:
SELECTCUST-NAME,PAY-TYPE,ORDER-DATE
FROMCUSTOMERCUST,ORDERORD
WHEREORD·CUST-ID=CUST·CUST-ID;
则查询得临时表TEMPTAB:
LABELCUST-NAMEPAY-TYPEORDER-DATE
C:
A,C赵CASH97-02-05
C:
A,B,D孙CREDIT96-10-11
其中C:
A,C为C:
A与C:
C的最小上界;
C:
A,B,D为C:
B与P:
A,D的最小上界。
4.其他处理
(1)MAC特权
当DBMS中的主,客体加上敏感度标识之后,主体的读写能力将大大地受MAC限制,为实现在特殊情况下的特别存取(数据库Export/Import,联机备份等),系统为用户提供特权标识(WRITE-DOWN,WRITE-UP,READ-UP等)——系统特权,即赋MAC特权,授权者为可信用户。
(低级别用户接触高级别的数据;高级别用户向低级别传数据。
)
用户有了系统特权,就可适当地进行跨密级的存取操作。
(2)多重实例与隐蔽信道
采用简单主码处理——同一张表中的记录存在该主码处,则拒绝插入或修改为同值的元组。
5.发展
(1)数据加密;
(2)细化数据的标识粒度现仅支持行级,发展到列级
(3)扩充主码——实现多重实例。
第五节其他安全数据库产品
一.安全数据视图原型
DoD的A1级,斯坦福所SRJ·Gemini和Oracle公司合作完成。
1.结构
说明:
可信前端=MSQL处理器+资源管理+DBMS内核;
可信OS相当于GEMSOSTCB。
2.组成
(1)GEMSOSTCB由强制安全内核和非强制TCB(可信计算基)组成。
A1级
强制安全内核实现:
用户认证,可信路径,包含用户许可安全级的表管理、强制安全管理员接口。
8个保护环。
非强制TCB实现:
自主存取控制,提供一安全审计和组接口。
(2)资源管理器
一TCB之外的特殊目的的操作系统,支持ORACLEDBMS和安全数据视图模型所需的功能——建立文件系统,建立高级设备驱动器,将DBMS管理的高级对象映射为GEMSOS TCB管理的低级对象等。
(3)ORACLE强制原型
负责低级关系的管理,由ORACLE运行时的环境组成一预处理器。
(4)MSQL
为安全数据视图工程开发的,特殊的能处理多级关系的SQL。
(5)用户层
管理用户接口,此层可以是非可信的。
二.A1级安全DBMS——ASD
美,汤普森·拉莫·伍尔德里奇公司TRW多级关系DBMS,ADA语言开发
运行在UNIX环境,将来运行在A1SecureOS上。
1.主要特征
系统保证数据同时受自主存取控制+强制存取控制的保护,允许可信系统与非可信系统互连。
2.结构
ADS进程
说明:
不可信代码——不正确操作时,可能导致泄露保密信息的代码;
可信代码——不会导致泄露保密信息的代码。
3.说明
(1)三种模式
A.局域网的DBMS服务器;
B.宿主计算机(单级或多级),即后端DBMS;
C.作为A1级Secure操作系统多级宿主计算机的常住宿主DBMS。
(2)ASD中对每个DBMS用户,构造一不可信进程,它继承用户进程的安全级别。
非可信进程间的通信由TCB管理,它保证进程仅以自己的安全级发/收信息。
(3)可信接口支持用户与DBMS的交互。
(4)可信实用程序集合用于支持数据库的建立,维护功能,负责存取数据。
三.SybaseSecureServer
B1,B2两版本,B1版是建立在B1安全的UNIXOS上;而B2版是直接建立在裸机上的。
使用SQL;分权分级管理。
层次结构:
一层为注册、用户许可;二层为存取控制;三层为能限制数据存取的视图和存储过程。
B1级:
在原C2级上增加安全管理模块SMB。
功能:
强制访问控制;强化口令管理;三权分立;审计;SMS/DBMS自身安全。
指标:
安全;可用;兼容。
访问监督器
SMS/SYBASE
1.功能
(1)用户认证——验证用户角色,验证安全级别有效性;
(2)强制/自主存取控制;
(3)对与安全有关的事件作审计(存在Sysaudits的系统表中);
(4)区分数据库中不同用户角色的用户责任。
2.说明
(1)域
IO域
执行域
TCB策略域它们各自有自己的硬件域,以防止旁路
用户域(不可信用户执行的)
(2)CRC校验作物理性完整性保护,网络加密设备实现安全的点-点传输(不可信网上)。
(3)客体
客体记录在数据字典中(仅可信软件TCB才可存取)。
主客体——表的行,分配安全标记的最小客体,强制安全标识
客体
次客体——数据库和表,它们与ACLs自主存取列表相连系
ACLs自主存取列表包含:
可对此客体存取的用户标识及操作。
(4)支持多实例
四.WinNT
1.企业级中,基于域——设计和组织网络本身的构件。
安全管理的主体:
用户和组;
工作站和服务器层次都需作身份确认工作;
具备分布式安全机制:
能提供本地安全性,获本地资源保护不必与服务器连接(本地机中存有帐户,安全策略数据库的即时副本);
集中式安全管理机制:
对C/S提供可行安全方案,在对等体系中用WinNT不是最佳选择,因为对安全性和工作关系的管理会很快失控。
2.安全子系统作用于整个WinNT系统,其组成:
A.本地安全授权机制localsecurityauthority;
B.安全帐户管理securityaccountmanager;
C.安全访问监督securityreferencemonitor;
D.存取权标assesstoken;
E.存取控制表accesscontrollist;
F.登录过程;
G.存取控制。
这些与本地