第20章 数据库系统安全

20.1 数据库安全概况

20.1.1 数据库安全概念

  数据库是网络信息系统的基础性软件,承载着各种各样的数据,成为应用系统的支撑平台。国外主流的数据库系统有MS SQL、MySQL、Oracle、DB2等,国产数据库系统主要有人大金仓、达梦等。数据库安全是指数据库的机密性、完整性、可用性能够得到保障,其主要涉及数据库管理安全、数据安全、数据库应用安全以及数据库运行安全。

20.1.2 数据库安全威胁

  数据库所处的环境日益开放,所面临的数据库安全威胁日益增多,主要阐述如下:
  (1)授权的误用。
  (2)逻辑推断和汇聚。
  (3)伪装。
  (4)旁路控制。
  (5)隐蔽信道。
  (6)SQL注入攻击。
  (7)数据库口令密码破解。
  (8)硬件及介质攻击。

20.1.3 数据库安全隐患

  1. 数据库用户账户和密码隐患
  2. 数据库扩展存储过程隐患
  3. 数据库系统软件和应用程序漏洞
  4. 数据库系统权限分配隐患
  5. 数据库系统用户安全意识薄弱
  6. 网络通信内容是明文传递
  7. 数据库系统安全机制不健全

20.1.4 数据库安全需求

  数据库的安全目标是保护数据库系统的安全运行及数据资源的安全性。通常来说,数据库的安全需求如下。
  1. 数据库标识与鉴别。
  2. 数据库访问控制。
  3. 数据库安全审计。
  4. 数据库备份与恢复。
  5. 数据库加密。
  6. 资源限制。
  7. 数据库安全加固。
  8. 数据库安全管理。

20.2 数据库安全机制与实现技术

  本节主要介绍数据库的安全机制以及相关实现技术,包括标识和鉴别、访问控制、安全审计、数据加密等。

20.2.1 数据库安全机制

  数据库是一个复杂性高的基础软件,其安全机制主要有标识和鉴别、访问控制、安全审计、备份与恢复、数据加密、资源限制、安全加固、安全管理等。这些安全机制用于保障数据库系统的安全运行、数据资源安全以及系统容灾备份。

20.2.2 数据库加密

  数据库加密是指对数据库存储或传输的数据进行加密处理,以密文形式存储,防止数据泄密,保护敏感数据的安全性。数据库加密方式主要分为两种类型:一是与数据库网上传输的数据,通常利用SSL协议来实现;二是数据库存储的数据,通过数据库存储加密来实现。按照加密组件与数据库管理系统的关系,数据库存储加密可以分成两种加密方式:库内加密和库外加密。库内加密是指在DBMS内部实现支持加密的模块。库外加密指在DBMS之外,由专门的加密部件完成加密/解密操作。

20.2.3 数据库防火墙

  数据库防火墙的安全作用主要如下:
  (1)屏蔽直接访问数据库的通道。
  (2)增强认证。
  (3)攻击检测。
  (4)防止漏洞利用。
  (5)防止内部高危操作。
  (6)防止敏感数据泄露。
  (7)数据库安全审计。

20.2.4 数据库脱敏

  数据库脱敏是指利用数据脱敏技术将数据库进行变换处理,在保护数据按需使用目标的同时,又能避免敏感数据外泄。数据脱敏是指按照脱敏规则对敏感数据进行的变换,去除标识数据,数据实现匿名化处理,从而实现匿名化处理,从而实现敏感数据的保护。目前,常见的数据脱敏技术方法有屏蔽、变形、替换、随机、加密,使得敏感数据不泄露给非授权用户或系统。

20.2.5 数据库漏洞扫描

  数据库漏洞扫描模拟黑客使用的漏洞发现技术,对目标数据安全性尝试进行安全探测分析,收集数据库漏洞的详细信息,分析数据库系统的不安全配置,检查有弱口令的数据库用户。

20.3 Oracle数据库安全分析与防护

  Oracle公司于1979年首先推出基于SQL标准的关系型数据库产品,可在多种硬件平台上运行,支持多种操作系统。Oracle遵守数据存取语言、操作系统、用户接口和网络通信协议的工业标准。目前,Oracle数据库系统广泛应用在国内关键信息基础设施中,因此Oracle数据库的安全非常重要。

20.3.2 Oracle数据库安全分析

  Oracle数据库提供认证、访问控制、特权管理、透明加密等多种安全机制和技术。
  (1)用户认证。
  (2)访问控制。
  (3)保险库。
  (4)安全审计和数据库防火墙。
  (5)高级安全功能。

20.3.3 Oracle安全最佳实践

  (1)增强Oracle数据库服务器的操作系统安全。最小化系统服务,安装最新补丁,关闭不需要的网络通信端口。
  (2)最小化安装Oracle。
  (3)安装最新的安全补丁。
  (4)删除或修改默认的用户名和密码。
  (5)启用认证机制。
  (6)设置好的口令密码策略。
  (7)设置最小化权限。
  (8)限制连接Oracle的IP地址。
  (9)传输加密。
  (10)启用Oracle审计。
  (11)定期查看Oracle漏洞发布信息,及时修补漏洞。
  (12)实施Oracle灾备计划。

20.3.4 Oracle漏洞修补

20.4 MS SQL数据库安全分析与防护

20.4.1 MS SQL Server概况

  Microsoft SQL Server起源于Sybase,是基于Windows NT结构的大型关系型数据库管理系统,是业界领先的数据库管理系统之一,应用非常广泛,是微软的核心产品组成部分。

20.4.2 MS SQL安全分析

  MS SQL Server提供的安全机制主要包括如下几个方面:
  (1)用户身份认证。
  (2)访问控制。
  (3)数据库加密。
  (4)备份、恢复机制。
  (5)安全审计。

20.4.3 MS SQL Server安全最佳实践

  1. 设置好的数据库密码安全策略
  2. 加强扩展存储过程管理,删除不必要的存储过程
  3. 网上数据加密传输
  4. 修改数据库默认的TCP/IP端口号
  5. 对SQL数据库访问的网络连接进行IP限制
  6. 启用SQL Server日志审计,记录所有的用户访问和分析安全事件日志
  7. 定期查看MS SQL Server漏洞发布信息,及时修补漏洞。
  8. 保证MS SQL Server安全检测,制定安全容灾备份计划。

20.4.4 MS SQL Server漏洞修补

20.5 MySQL数据库安全分析与防护

20.5.1 MySQL概况

  MySQL是网络化的关系型数据库系统,具有功能强、使用简便、管理方便、运行速度快等优点,用户可利用许多语言编写访问MySQL数据库的程序,特别是与PHP、Apache组合,广泛应用在互联网领域。

20.5.2 MySQL安全分析

   MySQL提供的安全机制主要包括如下内容:

  • 用户身份认证
  • 访问授权
  • 安全审计

20.5.3 MySQL安全最佳实践

  1. MySQL安装
  建立单独启动MySQL的用户和组。安装最新的MySQL软件包,选择合适的静态参数编译MySQL数据库。
  2. 建立MySQL Chrooting运行环境
  形成“沙箱”保护机制,增强系统抗渗透能力。
  3. 关闭MySQL的远程连接
  关闭MySQL的默认监听端口3306,避免增加MySQL的远程攻击风险。由于MySQL本地程序可以通过mysql.sock来连接,不需要远程连接,且MySQL的备份通常使用SSH来执行。
  4. 禁止MySQL导入本地文件
  5. 修改MySQL的root用户ID和密码
  6. 删除MySQL的默认用户和db
  7. 更改MySQL的root用户名,防止口令暴力破解
  8. 建立应用程序独立使用数据库和用户帐号
  9. 安全监测
  10. 安全备份

20.6 国产数据库安全分析与防护

20.6.1 国产数据库概况

  国产数据库是指由国家自主研发力量研制的数据库系统,具有较强的可控性和安全性。现已形成神舟数据、人大金仓、达梦等传统数据库以及中科院软件所安捷实时数据库。

20.6.2 国产数据库安全分析

  国产数据库系统主要面临的安全风险分析如下。
  1. 国产数据库安全漏洞
  2. 国产数据库依赖第三方系统组件的安全
  3. 国产数据库系统安全配置的安全
  4. 国产数据库支持平台的安全

20.6.3 国产数据库安全增强措施

  1. 国产数据库安全漏洞挖掘及扫描
  2. 国产数据库加密
  3. 国产安全数据库