yzdily / yzdily.github.io

22 stars 1 forks source link

第三章数据库基础之数据库安全基础 #18

Open yzdily opened 3 years ago

yzdily commented 3 years ago

数据库安全基础

1 数据库安全 包含两层含义:第一层是指系统运行安全,系统运行安全通常受到的威胁如下,一些网络不法分子通过网络,局域网等途径通过入侵电脑使系统无法正常启动,或超负荷让机子运行大量算法,并关闭cpu风扇,使cpu过热烧坏等破坏性活动; 第二层是指系统信息安全,系统安全通常受到的威胁如下,黑客对数据库入侵,并盗取想要的资料。数据库系统的安全特性主要是针对数据而言的,包括数据独立性、数据安全性、数据完整性、并发控制、故障恢复等几个方面。 数据库安全的防护技术有:数据库加密(核心数据存储加密)、数据库防火墙(防漏洞、防攻击)、数据脱敏(敏感数据匿名化)等。 2.安全问题 据Verizon2012年的数据泄露调查分析报告和对发生的信息安全事件技术分析,总结出信息泄露呈现两个趋势: (1)黑客通过B/S应用,以Web服务器为跳板,窃取数据库中数据;传统解决方案对应用访问和数据库访问协议没有任何控制能力,比如:SQL注入就是一个典型的数据库黑客攻击手段。 (2)数据泄露常常发生在内部,大量的运维人员直接接触敏感数据,传统以防外为主的网络安全解决方案失去了用武之地。 数据库在这些泄露事件成为了主角,这与我们在传统的安全建设中忽略了数据库安全问题有关,在传统的信息安全防护体系中数据库处于被保护的核心位置,不易被外部黑客攻击,同时数据库自身已经具备强大安全措施,表面上看足够安全,但这种传统安全防御的思路,存在致命的缺陷。 3数据库安全需求 防止非法数据访问 防止推理 保证数据库的完整 保证数据的操作完整性 数据的语义完整性 审计和日志 标识和认证 机密数据管理 多级保护 界限 4.数据库安全性控制 安全性控制 安全性控制层次 由高到低: 用户-—DBms——OS——DB 用户标识和鉴别——数据库安全保护——操作系统安全保护——数据密码存储

用户标识和鉴别 系统提供的最外层安全保护措施 基本方法:系统提供一定的方式让用户标识自己的名字或身份; 系统内部记录着所有合法用户的标识; 每次用户要求进入系统时,由系统核对用户身份标识; 通过鉴定后才提供机器使用权;来用户标识和鉴定可以 重复多次,还可以通过人体的各种特征来鉴别。

用户标识自己的名字和身份 常用的标识:用户名+口令 简单易行,但也有缺点:容易被人窃取 每个用户预先约定好一个计算过程或者函数 系统提供一个随机数 用户根据自己预先约定的计算过程或者函数进行计算 系统根据用户计算结果是否正确鉴定用户身份

智能卡 内置集成电路的芯片,存有与用户身份相关的数据 专门的设备生产,专用的读卡器,硬件不可复制。 许多系统要卡和身份识别码(PIN)同时使用。 内存扫描或网络监听等可截取信息。

主体特征鉴别 人体唯一的、可靠的、稳定的生物特征(指纹、虹膜、脸部、掌纹等)  成本较高 识别率有待提高

存取控制 存取控制机制的功能 定义用户权限: 在数据库系统中,为了保证用户只能访问他有权存取的数据, 必须预先对每个用户定义存取权限。 合法权限检查: 权限:用户对某一数据对象的操作权力称为权限。 某个用户应该具有何种权限是管理和政策问题,不是技术问题。 定义用户存取权限就是定义用户可在哪些数据库对象上进行哪 些类型的操作。 定义存取权限称为授权。 存取控制是DBMS主要关心的问题。 用户权限定义和合法权检查机制一起组成了DBMS的安全子系统

常用存取控制方法 自主存取控制(Discretionary Access Control,简称DAC) 同一用户对于不同的数据对象有不同的存取权限 不同的用户对同一对象也有不同的权限 用户还可将其拥有的存取权限转授给其他用户 强制存取控制(Mandatory Access Control,简称MAC)  每一个数据对象被标以一定的密级 每一个用户也被授予某一个级别的许可证 对于任意一个对象,只有具有合法许可证的用户才可以 存取

自主存取控制方法 定义存取权限 存取权限由两个要素组成 数据对象 操作类型

自主存取控制方法 关系系统中的存取权限 定义方法:GRANT/REVOKE

自主存取控制方法 检查存取权限 对于获得上机权后又进一步发出存取数据库操作的用户 DBMS查找数据字典,根据其存取权限对操作的合法性进行检查; 若用户的操作请求超出了定义的权限,系统将拒绝执行此操作。 授权粒度: 授权粒度是指可以定义的数据对象的范围 它是衡量授权机制是否灵活的一个重要指标。 授权定义中数据对象的粒度越细,即可以定义的数据对 象的范围越小,授权子系统就越灵活

自主存取控制小结 优点 能够通过授权机制有效地控制其他用户对敏感数据的存 取 缺点 可能存在数据的“无意泄露” 原因:这种机制仅仅通过对数据的存取权限来进行安全控制,而数据本身并无安全性标记。 解决:对系统控制下的所有主客体实施强制存取控制策略

强制存取控制 什么是强制存取控制(MAC) 指系统为保证更高程度的安全性,按照TDI/TCSEC标准中安全策略的要求,所采取的强制存取检查手段。 MAC不是用户能直接感知或进行控制的。 MAC适用于对数据有严格而固定密级分类的部门 军事部门 政府部门

视图机制 将要保密的数据对无权存取这些数据的用户隐藏起来 主要的功能在于提供数据独立性,其安全保护功能太不精细,往往远不能达到应用系统的要求。

视图机制与授权机制配合使用: 首先用视图机制屏蔽掉一部分保密数据 视图上面再进一步定义存取权限 间接实现了支持存取谓词的用户权限定义

审计 什么是审计? 启用一个专用的审计日志(Audit Log)记录用户对数据 库的所有操作 DBA可以利用审计日志中的追踪信息找出非法存取数据 的人  C2以上安全级别的DBMS必须具有审计功能 审计功能的可选性 审计很费时间和空间 DBA可以根据应用对安全性的要求,灵活地打开或关闭 审计功能。 一般用于安全性要求较高的部门。

数据加密 防止数据库中数据在存储和传输中失密的有效手段加密 的基本思想 根据一定的算法将原始数据(术语为明文,Plain text) 变换为不可直接识别的格式(术语为密文,Cipher text)  不知道解密算法的人无法获知数据的内容

数据加密 DBMS中的数据加密: 有些数据库产品提供了数据加密例行程序 有些数据库产品本身未提供加密程序,但提供了接口 数据加密功能通常也作为可选特征,允许用户自由选择: 数据加密与解密是比较费时的操作 数据加密与解密程序会占用大量系统资源 应该只对高度机密的数据加密 统计数据库安全性 统计数据库的特点 允许用户查询聚集类型的信息(例如合计、平均值等)  不允许查询单个记录信息 例:允许查询“程序员的平均工资是多少?” 不允许查询“程序员张勇的工资?” 统计数据库中特殊的安全性问题 隐蔽的信息通道 从合法的查询中推导出不合法的信息

数据库安全机制的设计目标: 试图破坏安全的人所花费的代价 >> 得到的利益