




已阅读5页,还剩65页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第6章数据库系统安全 6数据库安全 计算机信息系统中的数据组织形式有两种 一种是文件 一种是数据库 数据库在数据共享 数据完整性 一致性 可管理性 可控制性和可利用性方面都强于文件系统 是信息存储管理的主要形式 是单机或网络信息系统的主要基础 数据库文件的保护主要由在操作系统支持下的数据库管理系统 DBMS 完成 数据库的安全问题 包括 数据库受到的安全威胁和数据库的安全要求如访问控制 可靠性与完整性等 推理泄漏及其防护问题 数据库多级安全问题 6 1数据库特点概述 关系数据库遵照关系运算理论 主要是三范式原则 组织与管理数据 数据库由按某种应用结构组织的库表组成 每张库表由对应着客观实体的一些属性 字段或称为域 组成 表6 1库表的实例 教员基本情况库表 表6 2教员成果库表 有了DBMS的支持 数据库用户或数据库应用系统开发者不需要关心数据库的物理结构 只需要关心数据库的逻辑结构 即了解库表之间的关联关系 库表内记录的排序规则 每一个数据库系统都有数据库管理员这个角色 他的作用是负责定义组织数据的规则 建立数据库模式和用户子模式 负责分配用户的访问权限和规定用户可以访问哪些数据 用户通过DBMS提供的实用工具或数据库处理程序和数据库交互信息 SQL语言 DBMS都提供数据操纵和查询语言 供用户创立和删除数据库 创立和删除库表 增加 删除 更改记录和查询库表中合条件的记录或字段 现在流行的查询语言是结构化查询语言StructuredQueryLanguage SQL 利用SQL可以用类似自然语言的形式描述查询命令 例如 对于教员基本情况库表的如下查询要求 SELECT性别 男 FROM教员基本情况表 查询的结果形成一个数据库子模式 除选取操作外 数据库的查询还有投影 连接等操作 这些操作也可以组合在一起使用 DBMS提供的这些操作是完整的 可以描述所有的查询要求 使用数据库系统的优点主要有 共享访问最小的冗余度数据一致性好数据的完整性强有力的访问控制 6 2数据库的安全威胁 1 向数据库中输入了错误或被修改的数据 有的敏感数据在输入过程中已经泄漏了 已经失去应有的价值 在数据维护 增 删 改 和利用过程中可能对数据的完整性造成了破坏 2 支持数据库系统的硬件环境故障 如无断电保护措施而发生断电造成信息丢失 硬盘故障致使库中数据读不出来 环境灾害和人为破坏也是对数据库系统的威胁 3 数据库系统的安全保护功能弱或根本没有安全机制 如dBASE类数据库 对数据库的攻击者而言够不成屏障作用 4 数据库管理员专业知识不够 不能很好地利用数据库的保护机制和安全策略 不能合理地分配用户的权限 或经若干次改动后造成用户权限与用户级别混乱配合 可能会产生超过用户应有级别权限的情况发生 5 网络黑客或内部恶意用户对网络与数据库的攻击手段不断翻新 他们整天琢磨操作系统和数据库系统的漏洞 千方百计地设法侵入系统 相反 各部门对数据库的安全防护的经费投入不足 研究深度显得不足 系统的安全设施改进速度跟不上黑客对系统破解的速度 6 计算机病毒的威胁日益严重 现在不仅DOS病毒到处蔓延 而且已经出现了针对Windows UNIX等各种操作系统的病毒 直接威胁网络数据库服务器的安全 目前还没有解决病毒的根本措施 7 对于象中国这样的发展中国家 操作系统 网络系统与数据库系统和计算机这样核心的软 硬件都是外国公司研制的 整个国家信息的安全建筑在外国公司的 良知 与 友好 上 这是最大的不安全因素 6 3数据库的安全要求 数据库主要的安全要求是数据库的完整性 可靠性 保密性 可用性 其中完整性包括物理完整性 逻辑完整性和元素完整性 保密性要求包括访问控制 用户认证 审计跟踪 数据加密等内容 1 数据库的完整性 在物理完整性方面 要求从硬件或环境方面保护数据库的安全 防止数据被破坏或不可读 例如 应该有措施解决掉电时数据不丢失不破坏的问题 存储介质损坏时数据的可利用性问题 还应该有防止各种灾害 如火灾 地震等 对数据库造成不可弥补的损失 应该有灾后数据库快速恢复能力 数据库的物理完整性和数据库留驻的计算机系统硬件可靠性与安全性有关 也与环境的安全保障措施有关 在逻辑完整性方面 要求保持数据库逻辑结构的完整性 需要严格控制数据库的创立与删除 库表的建立 删除和更改的操作 这些操作只能允许具有数据库拥有者或系统管理员权限的人才能够进行 逻辑完整性还包括数据库结构和库表结构设计的合理性 尽量减少字段与字段之间 库表与库表之间不必要的关联 减少不必要的冗余字段 防止发生修改一个字段的值影响其他字段的情况 在元素完整性方面 元素完整性主要是指保持数据字段内容的正确性与准确性 元素完整性需要由DBMS 应用软件的开发者和用户共同完成 软件开发者应该在应用程序中增加对字段值的录入或更新的检查验证 例如应该检查输入数据是否与字段类型 取值要求一致 例如性别的取值不应该是 男 女 或其它代表男 女的特征值以外的结果 年龄字段的值不超过150 低于0等 还需要检查输入值是否满足字段之间的约束条件 数据库管理系统DBMS对保证元素完整性方面起着重要作用 除了提供访问控制机制最大限度地减少未授权用户对数据库的修改以外 DBMS还需要提供中心共享数据的维护问题 分立重复数据一致性的维护问题和从错误数据恢复的功能 DBMS维护数据完整性的另一个有力措施是数据库日志功能 该日志能够记录用户每次登录和访问数据库的情况以及数据库记录每次发生的改变 记录内容包括访问用户ID 修改日期 数据项修改前的值和修改后的值 利用该日志系统管理员可以撤消对数据库的错误修改 可以把数据库恢复到指定日期以前的状态 2 可审计性 为了能够跟踪对数据库的访问 及时发现对数据库的非法访问和修改 需要对访问数据库的一些重要事件进行记录 利用这些记录可以协助维护数据库的完整性 还可以帮助事后发现是哪一个用户在什么时间影响过哪些值 如果这个用户是一个黑客 审计日志可以记录黑客访问数据库敏感数据的踪迹和攻击敏感数据的步骤 对于审计粒度与审计对象的选择 需要考虑存储空间的消耗问题 审计粒度是指在审计日志中将记录到哪一个层次上的操作 事件 例如用户登录失败与成功 通行字正确与错误 对数据库 库表 记录 字段等的访问成功与错误 但小粒度的审计又需要大量的存储空间 这又是一般数据库系统是很难做到的 对于那些要求高度安全的系统来说 这种开销是需要的 但审计日志也不见得完全反映用户已经从数据库到底获得了什么值 例如完成选取操作时 可以访问一个记录而并不把结果传递给用户 但在另外的情况下 用户可以通过间接访问方式获得敏感记录的数据 用户可能已经得到了某些敏感数据 而在审计日志中却很难反映出来 3 访问控制与用户认证 和操作系统相比 数据库的访问控制的难度要大得多 在操作系统中 文件之间没有关联关系 但在数据库中 不仅库表文件之间有关联 在库表内部记录 字段都是相互关联的 操作系统中控制的粒度是文件 数据库中则需要控制到记录和字段一级 操作系统中几百个文件的访问控制表的复杂性远比同样具有几百个库表文件 而每个库表文件又有几十个字段和数十万条记录的数据库的访问控制表的复杂性要小得多 由于访问数据库的用户的安全等级是不同的 分配给他们的权限是不一样的 为了保护数据的安全 数据库被逻辑地划分为不同安全级别数据的集合 有的数据允许所有用户访问 有的则要求用户具备一定的权限 在DBMS中 用户有数据库的创建 删除 库表结构的创建 删除与修改 对记录的查询 增加 修改 删除 对字段的值的录入 修改 删除等权限 DBMS必须提供安全策略管理用户这些权限 由于数据库中的访问目标数据库 库表 记录与字段是相互关联的 字段与字段的值之间 记录与记录之间也是具有某种逻辑关系的 存在通过推理从已知的记录或字段的值间接获取其他记录或字段值的可能 而在操作系统中一般不存在这种推理泄漏问题 它所管理的目标 文件 之间并没有逻辑关系 这就使数据库的访问控制机制不仅要防止直接的泄漏 而且还要防止推理泄漏的问题 因而使数据库访问控制机制要比操作系统的复杂得多 限制推理访问需要为防止推理而限制一些可能的推理路径 通过这种方法限制可能的推理 也可能限制了合法用户的正常查询访问 会使他们感到系统访问效率不高甚至一些正常访问被拒绝 DBMS是作为操作系统的一个应用程序运行的 数据库中的数据不受操作系统的用户认证机制的保护 也没有通往操作系统的可信路径 DBMS必须建立自己的用户认证机制 DBMS要求很严格的用户认证功能 例如DBMS可能要求用户传递指定的通行字和时间 日期检查 DBMS的认证是在操作系统认证之后进行的 这就是说 用户进入数据库 一个用户需要进行操作系统和DBMS两次认证 增加了数据库的安全性 4 保密性与可用性 DBMS除了通过访问控制机制对数据库中的敏感数据加强防护外 还可以通过加密技术对库中的敏感数据加密 但加密虽然可以防止对数据的恶意访问 也显著地降低数据库访问效率 6 4数据库的安全技术 上一节已经介绍了数据库的安全需求问题 本节研究数据库管理系统DBMS防止数据丢失或被破坏的办法 保证数据库完整性 元素完整性和元素准确性 元素值是正确的 的技术 但所有的解决办法都不是绝对的 因为任何控制都不能阻止一个有权用户有意 无意对数据库中数据的破坏 1 两阶段提交 为了保证数据更新结果的正确性 必须防止在数据更新过程中发生处理程序中断或出现错误 假定需要修改的数据是一个长字段 里面存放着几十个字节的字符串 如果当仅更新了其中部分字节时 更新程序或硬件发生了中断 结果该字段的内容只被修改了一部分 另一部分仍然为旧值 这种错误不容易被发现 对于同时更新多个字段的情况发生的问题更加微妙 可能看不出一个字段有明显错误 解决这个问题的办法是在DBMS中采用两阶段提交 更新 技术 第一阶段称为准备阶段 在这一阶段中 DBMS收集为完成更新所需要的信息和其他资源 其中可能包括收集数据 建立哑记录 打开文件 封锁其他用户 计算最终的结果等处理 总之为最后的更新作好准备 但不对数据库作实际的改变 这个阶段即使发生问题 也不影响数据库的正确性 第二阶段的工作是对需要更新的字段进行真正的修改 这种修改是永久性的 在第二阶段中 在真正进行提交之前不对数据库不采取任何行动 由于如果第二阶段出问题 数据库中可能是不完整的数据 因此一旦第二阶段的更新活动出现任何问题 该阶段的活动也需要重复 DBMS会自动将本次提交对数据库执行的所有操作都撤消 并恢复到本次修改之前的状态 这样数据库又是完整的了 上述第一阶段和第二阶段在数据库管理中合称为一个 事务 Transaction 所谓事务是指一组逻辑操作单元 使数据从一种状态变换到另一种状态 为确保数据库中数据的一致性 数据的操纵应当是离散的成组的逻辑单元 当它全部完成时 数据的一致性可以保持 而当这个单元中的一部分操作失败 整个事务应全部视为错误 所有从起始点以后的操作应全部回退到开始状态 2 纠错与恢复 1 附加检错纠错码2 使用镜像技术3 恢复 3 并发访问控制 数据库系统通常支持多用户同时访问数据库 DBMS需要提供一种因共享数据产生冲突的解决的办法 如果这些用户不同时访问同一条记录 则用户之间不存在任何问题 当他们同时从一个数据项读数据的时候 也不存在相互影响 各自都可以获取正确的数据 但当多个用户同时读写同一个字段的时候 将有可能发生冲突 DBMS提供解决冲突的机制 例如加锁 解锁就是一种解决冲突的办法 解决这个问题办法是DBMS要把整个查询与更新两个阶段作为一个不可分割的基本操作 把这种可以保持数据库完整性的基本操作定义为一个 事务 根据一个事务处理的原则 在老李的取款操作没有完成之前 不考虑接受第二个人的取款请求 并发访问的另一个问题是读与写之间的冲突 当一个用户正在更新一个字段的值的时候 另一个用户恰好进来读该字段的值 则第二个用户完全有可能获取一个仅部分被更新的数据 防止这种问题发生 DBMS为读 写用户分别定义了 读锁 和 写锁 当某一记录或数据元素被加了 读锁 其他用户只能对目标进行读操作 同时也分别给目标加上各自的 读锁 而目标一旦被加了 读锁 要对其进行写操作的用户只能等待 若目标即没有 写锁 也没有 读锁 写操作用户在进行写操作之前 首先对目标加 写锁 有了 写锁 的目标 任何用户不得进行读 写操作 这样在第一个用户开始更新时将该字段 或一条记录 加写锁 在更新操作结束之后再解锁 在封锁期间 另一个用户禁止一切读 写操作 4 触发器 DBMS提供触发器 triger 功能 用于监视正在输入或修改的值是否破坏数据库的完整性 触发器可以检查正在输入的数据是否与数据库其他部分保持一致 或者与特定字段的属性是否一致 触发器可以完成以下功能 1 检查取值类型与范围 触发器检查每个字段的输入数据的类型与该字段的类型是否一致 例如 是否向字符类型的字段输入数值型的值 若不一致则拒绝写入 范围比较则是检查输入数据是在该字段允许的范围内 例如 成绩的分类是 优秀 良好 及格 不及格 如果当前输入的是 中等 则拒绝写入 2 依据状态限制 状态限制是指为保证整个数据库的完整性而设置的一些限制 数据库的值在任何时候都不应该违反这些限制 如果某时刻数据库的状态不满足限制条件 就意味着数据库的某些值存在错误 在前面谈到的两阶段更新过程中的提交标志 该标志在提交阶段一开始就被设置 在提交阶段结束时被清除 DBMS可以利用提交标志作为一种限制 它的置位表示数据库处于不完整状态 此时应拒绝用户访问 3 依据业务限制 业务限制是指对数据库进行修改必须满足数据库存储内容的业务要求 作出相应的限制 例如对于有名额限制的录取数据库 当向数据库增加新的录取人员时 必须满足名额还有空缺这一限制条件 业务限制和字段之间取值关联的问题与具体业务内容情况相关 其中包括许多常识性知识 彻底检查这一类的不一致性 需要在程序中增加一些常识性推理功能 既检查程序需要有一些 智能 处理能力 简单的范围检查可以在多数DBMS中实现 而更为复杂的状态和业务限制则需要有用户编写专门的检测程序 供DBMS在每次检查活动中调用 6 5推理泄漏问题 推理控制 访问控制与信息流控制一起形成了信息安全控制的基本理论与方法 一个安全的信息系统离不开这三种控制方式的支持 对于一个安全的数据库信息管理系统推理控制是必不可少的 敏感数据的泄漏问题概述 确定敏感数据的因素需要考虑以下几点 本身是敏感的字段内容本身是非常敏感的 如通信枢纽的经纬度 导弹发射井的位置 银行用户存款数等都属于高度敏感的 来源敏感数据的提供者需要保密 如果泄漏了信息来源 有可能给信息提供者带来危害 例如举报者的姓名可能泄漏举报的内容 军事情报的来源可能泄漏情报收集者的身份等 指定为敏感的数据的拥有者或数据库管理员把某些数据确定为敏感的 例如有的领导不希望自己的住宅电话和住址对外公开 数据库管理员不希望暴露数据库服务器的网络IP地址 间接敏感的本身并不敏感 但它的泄漏会间接导致敏感信息的泄漏 与以前泄漏信息有关的敏感性以前曾经泄漏了一部分信息 如果再泄漏一部分 将会造成严重泄漏 例如平时通信要求使用部队番号与信箱号 如果在以后的通信中又使用部队的真实地址 则暴露了该部队的真实位置 又如 若以前泄漏过某个铀矿的纬度 那么该铀矿的经度就成为敏感数据了 1 泄漏的类型 1 数据本身泄漏这是最严重的泄漏 用户可能只是向数据库系统请求了一般性的数据 但有缺陷的系统管理程序却把敏感数据也无意地传送给用户 即使用户不知道这些数据是敏感数据 这都使敏感数据的安全性受到了破坏 2 范围泄漏范围泄漏是指暴露了敏感数据的边界取值 假定用户知道了一个敏感数据的值在LOW与HIGH之间 用户可以依次用LOW X HIGH LOW X HIGH 2等步骤去逐步逼近敏感数据的真值 最终可能获得接近实际数据的结果 在有的情况下 即使仅仅泄漏某个敏感数据的值超过了某个数量 也是对安全造成了威胁 例如 泄漏驻军的数量超过某个范围也是对信息安全性的破坏 3 从反面泄漏对于敏感数据即使让别人知道其反面结果也是一种泄漏 例如 如果让别人知道某个地方的防空导弹数量为零 其意义并不比知道该地方的具体导弹数量差 确定一个国家是否有原子弹比知道该国到底有几枚原子弹的敏感性更高 从反面泄漏可以证明敏感的事物的存在性 在许多情况下 事物的存在与否是非常敏感的 4 可能的值通过判断某个字段具有某个值的概率来判断该字段的可能值 由上面几种情况可以看出 保护敏感数据的安全不仅需要防止泄漏真实取值 而且需要保护敏感数据的特征不被泄漏 泄漏了敏感数据的特征也可能造成安全问题 另有图谋的人可以从关于敏感数据的信息推测出敏感的结果 成功的安全策略必须包括防止敏感数据的直接和间接两种泄漏 2 安全性与准确性 安全性 从保密角度出发 希望只透露非敏感数据 要拒绝任何涉及敏感字段的查询 但这样限制可能会拒绝许多合理的查询 所谓 准确性 是指应该透露尽可能多的数据使数据库用户能够访问到他们需要的数据 准确性的目标是 在保护所有敏感数据的同时 让用户从数据库获得尽可能多的非敏感数据 准确性与安全性之间存在一定的冲突 准确性与安全性之间的关系可以用图6 3表示 从图中可以看出数据的敏感层次从左向右可以分为 不许暴露的数据 防止查询推测的数据 可能被查询推测的数据和可自由查询的数据 需要为安全而隐蔽 图6 3安全性与准确性关系 最敏感的数据 可公开的数据 需要为精确而暴露 不许暴露 防止查询推测 可能查询推测 可自由查询 左边三层数据需要为安全性而隐蔽 右边三层数据需要为准确性而暴露 安全性与准确性的合理组合是在维护良好的保密性的同时提供最大的准确性 也可以说应该透露所有不敏感数据 但实际中 常常为了保护安全性而牺牲精确性 主要是由于有些敏感数据可以从非敏感数据推测出来 因而对部分非敏感数据也需要保护 这就影响了数据库查询的准确性 6 6数据库的安全模型 数据库的安全模型可以参照操作系统的安全模型进行讨论 数据库的访问控制机制控制的对象比较单一 就是数据库中的数据文件 但控制粒度细 不仅需要控制数据库文件本身 还需要控制到记
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025中医五脏考试题及答案
- 2025消防知识考试题及答案医院
- 2025放射科院感考试题及答案
- 2025年冷链药品培训试题及答案
- 劳务员证考试题库及答案2025
- 2025年医院《病案信息学管理技术师》专业知识试题库附答案
- 2025年护理十八项核心制度考试题(含答案)
- DB15T 4181.2-2025诚信计量管理规范 第2部分:商场超市
- 2025年中大型重载轴承项目合作计划书
- 2024年制造企业数字化转型白皮书
- 高中英语完形填空高频词汇300个
- 2023-2025年世纪公园综合养护项目招标文件
- 男朋友男德守则100条
- 食品安全风险管控日管控检查清单
- 乡村振兴汇报模板
- 津16D19 天津市住宅区及住宅建筑内光纤到户通信设施标准设计图集 DBJT29-205-2016
- 医院感染科室院感管理委员会会议记录
- 高分子物理-第2章-聚合物的凝聚态结构课件
- CNAS体系基础知识培训课件
- 三字经全文带拼音打印版带翻译
- 河蟹健康养殖与常见疾病防治技术课件
评论
0/150
提交评论