第20章 数据库系统安全
20.1 数据库安全概况
20.1.1 数据库安全概念
主流的数据库系统有 MSSQL、 MySQL 、Oracle 、 DB2等,数据库安全是指数据库的机密性、完整性、可用性能够得到保障,其主要涉及数据库管理安全、数据安全、数据库应用安全以及数据库运行安全。
20.1.2 数据库安全威胁
(1) 授权的误用 (Misuses of Authority) 合法用户越权获得他们不应该获得的资源,窃取程序或存储介质,修改或破坏数据。
(2) 逻辑推断和汇聚 (Logical Inference and Aggregation)逻辑推理,把不太敏感的数据结合起来可以推断出敏感信息。
(3) 伪装(Masquerade) 。攻击者假冒用户身份获取数据库系统的访问权限。
(4) 旁路控制 (Bypassing Controls) 在数据库设置后门,绕过数据库系统的安全访问控制机制。
(5) 隐蔽信道(Covert Channels) 。通常储存在数据库中的数据经由合法的数据信道被取出。与正常的合法信道相反,隐蔽信道利用非正常的通信途径传输数据以躲避数据库安全机制的控制,如共享内存、临时文件。
(6) SQL 注入攻击(SQL Injection) 。攻击者利用数据库应用程序的输入未进行安全检查的漏洞,欺骗数据库服务器执行恶意的 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 协议来实现;二是数据库存储的数据,通过数据库存储加密来实现。按照加密组件与数据库管理系统的关系,数据库存储加密可以分成两种加密方式:库内加密和库外加密。
20.2.3 数据库防火墙
其通过 SQL 协议分析,根据预定义的禁止和许可策略让合法的 SQL 操作通过,阻断非法违规操作,形成数据库的外围防御圈,实现 SQL 危险操作的主动预防、实时审计。面对来自外部的入侵行为,数据库防火墙提供 SQL 注入禁止和数据库虚拟补丁包功能。通过虚拟补丁包,数据库系统不用升级、打补丁,即可完成对主要数据库漏洞的防控。
数据库防火墙的安全作用主要如下:
(1) 屏蔽直接访间数据库的通道。
(2) 增强认证。
(3) 攻击检测。
(4) 防止漏洞利用。
捕获和阻断数据库漏洞攻击行为,如利用SQL 注入特征库可以捕获和阻断数据库 SQL 注入行为。实现虚拟化补丁,保护有漏洞的数据库系统。
(5) 防止内部高危操作。
通过数据库防火墙可以限定更新和删除影响行、限定无 Where 的更新和删除操作、限定 drop 、truncate 等高危操作避免大规模损失。
(6) 防止敏感数据泄露。
(7) 数据库安全审计。
20.2.4 数据库脱敏
常见的数据脱敏技术方法有屏蔽、变形、替换、随机、加密,使得敏感数据不泄露给非授权用户或系统。
4346 6454 0020 5379
4493 9238 7315 5787
4297 8296 7496 8724
通过替换脱敏后,物品标识数据变成以下形式:
4346 XXXX XXXX 5379
4493 XXXX XXXX 5787
4297 XXXX XXXX 8724
20.2.5 数据库漏洞扫描
数据库漏洞扫描模拟黑客使用的漏洞发现技术,对目标数据库的安全性尝试进行安全探测分析,收集数据库漏洞的详细信息,分析数据库系统的不安全配置,检查有弱口令的数据库用户。通过数据库漏洞扫描,跟踪监控数据库安全危险状态变化,建立数据库安全基线,防止数据库安全危险恶化。
-----------------
20.3 Oracle 数据库安全分析与防护
20.3.1 Oracle 概况
20.3.2 Oracle 数据库安全分析
Oracle 数据库提供认证、访问控制、特权管理、透明加密等多种安全机制和技术。
(1) 用户认证。Oracle 数据库的认证机制多样,除了Oracle 数据库认证外,还集成支持操作系统认证、网络认证、多级认证、 SSL 认证。
(2) 访问控制。
Oracle 数据库内部集成网络访问控制和数据对象授权控制。比如,可以配置 Oracle 的限制访问数据库机器的 IP 地址。Oracle 数据库提供细粒度访问控制(Fine-GrainedAccess Control) ,如针对 select
、insert 、update 、delete 等操作,可以使用不同的策略。
(3) 保险库。
Oracle 数据库建立数据库保险库(Database Vault, DV) 机制,该机制用于保护敏感数据,具有防止数据系统未授权变更、多因素可信授权、职责隔离、最小化特权的功能。
(4) 安全审计和数据库防火墙。
Oracle 数据库防火墙提供了 SQL 语法分析引擎,检查进入数据库的 SQL 语句,精确地确定是否允许、记录、警告、替换或阻止 SQL 。Oracle 数据防火墙支持臼名单、黑名单和基于例外名单的策略。
(5) 高级安全功能。
Oracle 数据库提供透明数据加密(Transparent Data Encryption) 和数据屏蔽(Data Masking) 机制,以保护数据安全。
20.3.3 Oracle 安全最佳实践
(1) 增强 Oracle 数据库服务器的操作系统安全。最小化系统服务,安装最新补丁,关闭不需要的网络通信端口。
(2) 最小化安装 Oracle,删除不必要的组件。采用满足需求的最小安装。
(3) 安装最新的安全补丁。
(4) 删除或修改默认的用户名和密码。
(5) 启用认证机制。
(6) 设置好的口令密码策略。
(7) 设置最小化权限。
(8) 限制连接 Oracle 的 IP 地址。
(9) 传输加密。
(10) 启用Oracle 审计。
(11) 定期查看 Oracle 漏洞发布信息,及时修补漏洞。
(12) 实施 Oracle 灾备计划。
-----------------
20.4 MS SQL 数据库安全分析与防护
20.4.2 MS SQL 安全分析
(1) 用户身份认证。
(2) 访问控制。
(3) 数据库加密。
(4) 备份、恢复机制。
SQL Server 有四种备份方案:文件和文件组备份、事务日志备份、完全备份、差异备份。而恢复机制有三种模型:简单恢复、完全恢复和批量日志记录恢复。
(5) 安全审计。
20.4.3 MS SQL Server 安全最佳实践
1. 设置好的数据库密码安全策略
数据库账号的密码设置简单或为空对于数据库系统的安全威胁极大
2. 加强扩展存储过程管理,删除不必要的存储过程
SQL Server 的系统存储过程容易被利用来提升权限或进行破坏。
3. 网上数据加密传输
SQL Server 使用明文传输数据,容易导致数据库敏感数据网上泄露,建议使用 SSL 协议。
4. 修改数据库默认的 TCP/IP 端口号
更改 SQL Server 原默认的 1433 端口,减少攻击者获取数据库端口信息。
5. 对 SQL 数据库访问的网络连接进行IP 限制
通过防火墙或 Windows 操作系统的安全功能对 SQL 数据库 IP 连接进行限制,只保证授权的 IP 能够访问,降低数据库的网络安全威胁来源。
6. 启用 SQL Server 日志审计,记录所有的用户访问和分析安全事件日志加强数据库日志的记录
7. 定期查看 MS SQL Server 漏洞发布信息,及时修补漏洞
8. 保证 MS SQL Server 的操作系统安全
9. MS SQL Server 安全检测,制定安全容灾备份计划
-----------------
20.5 MySQL 数据库安全分析与防护
20.5.2 MySQL 安全分析
MySQL 提供的安全机制主要包括如下内容:
• 用户身份认证。
• 访问授权。
MySQL 具有 5 个授权表:user 、db 、host 、tables_priv 和 columns_priv 。通过授权表,MySQL 提供非常灵活的安全机制。MySQL 具有 grant 和 revoke 命令,可以用来创建和删除用户权限,便于分配用户权限。MySQL 管理员可以用grant 和revoke 来创建用户、授权和撤权、删除用户。
• 安全审计。
20.5.3 MySQL 安全最佳实践
1. MySQL 安装
2. 建立 MySQL Chrooting 运行环境
3. 关闭 MySQL 的远程连接
关闭 MySQL 的默认监听端口 3306,
避免增加 MySQL 的远程攻击风险。
4. 禁止 MySQL 导入本地文件
5. 修改 MySQL 的 root 用户 ID 和密码
/usr/local/mysql/bin/mysql -u root
mysql> SET PASSWORD FOR root@localhost=PASSWORD('new_password');
6. 删除 MySQL 的默认用户和 db
7. 更改 MySQL 的 root 用户名,防止口令暴力破解
mysql> update user set user="mydbadmin" where user="root";
mysql> flush privileges
8. 建立应用程序独立使用数据库和用户账号
9. 安全监测
10. 安全备份
-----------------
20.6 国产数据库安全分析与防护
20.6.1 国产数据库概况
国产数据库是指由国家自主研发力量研制的数据库系统,具有较强的可控性和安全性。现已形成神舟数据、人大金仓、达梦等传统数据库以及中科院软件所安捷实时数据库。国产数据库产品已经广泛使用在国家电网、国土资源、审计、铁路系统、电力、银行、通信等关键信息基础设施领域。
20.6.2 国产数据库安全分析
1.国产数据库安全漏洞
因为数据库的复杂性和软件编程安全问题,国产数据库的设计和代码实现可能存在安全漏洞,导致国产数据库面临安全风险。
2. 国产数据库依赖第三方系统组件的安全
国产数据库所依赖的第三方系统组件存在安全漏洞引发的安全风险问题。
3. 国产数据库系统安全配置的安全
对国产数据库系统的安全敏感配置不当,构成系统安全威胁。
4. 国产数据库支持平台的安全
国产数据库受制于操作系统而产生的安全问题。
20.6.3 国产数据库安全增强措施
1. 国产数据库安全漏洞挖掘及扫描
2. 国产数据库加密
3. 国产安全数据库
如果觉得《【第20章】数据库系统安全 (软考:信息安全工程师)笔记》对你有帮助,请点赞、收藏,并留下你的观点哦!