信息安全工程师软考(20):数据库系统安全
数据库安全概述
安全概念
- CIA特性:数据库安全的核心是保障机密性(Confidentiality)、完整性(Integrity)、可用性(Availability)
- 四大组成部分:包含数据库管理安全、数据安全、数据库应用安全以及数据库运行安全四个维度
安全威胁
- 授权的误用:合法用户越权获取资源,包括窃取存储介质或修改破坏数据
- 逻辑推断和汇聚:通过大数据分析将非敏感数据组合推断出敏感信息
- 伪装攻击:假冒用户身份获取访问权限
- 旁路控制:设置后门绕过认证机制
- 隐蔽信道:通过共享内存/临时文件等非正常途径传输数据
- SQL注入:利用未检查的输入执行恶意SQL命令
- 口令破解:通过字典或暴力猜解密码,包括"撞库"攻击手法
- 物理攻击:直接破坏存储介质或硬件设备
安全隐患
- 数据库用户账户和密码隐患
- 数据库系统扩展存储过程的隐患(缓存/索引)
- 数据库系统软件和应用程序漏洞
- 数据库系统权限分配隐患(最小特权)
- 用户安全意识薄弱
- 网络通信内容明文传输
- 安全机制不够健全
数据库安全机制与实现技术
安全机制
- 标识与鉴别:支持多重认证机制和秘密验证
- 安全审计:提供审计事件选择、查阅限制等功能
- 访问控制:包含会话控制、权限分级设置
- 加密机制:支持算法参数配置和密钥管理
- 资源限制:防止DoS攻击,可设置存储配额
- 安全加固:包含漏洞修补和弱口令限制
数据库加密
- 传输加密:通过SSL等协议保障网络传输安全
- 存储加密:
- 库内加密:由DBMS内置加密模块实现
- 库外加密:通过独立加密组件完成
- 数据库加密方法:
- 文件级加密:整个数据库文件加密
- 记录级加密:按行加密
- 字段级加密:按列加密
数据库防火墙
- 核心功能:通过策略控制实现SQL操作过滤,形成外围防御圈
- 虚拟补丁:无需重启数据库即可防护漏洞
数据库防火墙安全作用
- 通道屏蔽:阻断直接访问和隐蔽通道
- 双重认证:叠加防火墙和数据库自身认证
- 攻击防护:可阻断SQL注入和缓冲区溢出
- 操作管控:限制无WHERE的删除/更新等高危操作
- 数据防泄:控制敏感数据查询量和下载行为
- 审计追踪:记录IP、用户名、操作命令等详细信息
数据库脱敏
- 利用数据脱敏技术将数据进行变换处理,在保持数据按需使用目标的同时,又能避免敏感数据外泄
- 常见技术:屏蔽、变形、替换随机、加密
漏洞扫描
可通过专用漏扫设备或数据库审计系统实现
- 弱口令检测
- 权限检查
- 补丁审计
主流数据库安全分析与防护
Oracle数据库安全分析与防护
- 用户认证
- 集成认证:除本地认证外,支持操作系统认证、网络认证、多级认证和SSL认证
- 本地认证:采用"用户名+口令"方式,具有口令加密、账户锁定、口令生命期和复杂度验证功能
- 管理员认证:要求特别认证,支持强认证、操作系统认证和口令文件认证
- 网络认证:支持第三方认证、PKI认证和远程认证
- 访问控制
- 细粒度控制:针对select/insert/update/delete等操作可设置不同策略
- 双重机制:集成网络访问控制和数据对象授权控制
- 保险库
- 核心功能:防止未授权变更、多因素可信授权、职责隔离、最小化特权
- 控制方式:通过安全域和命令规则控制特权,可阻止drop table/alter system等危险操作
- 安全审计和数据库防火墙
- 审计类型:登录尝试、数据库活动、对象存取三类审计
- 防火墙功能:SQL语法分析引擎,支持白名单/黑名单/例外名单策略
- 响应措施:可允许/记录/警告/替换/阻止SQL语句
- 高级安全功能
- 透明加密:自动加密敏感数据
- 数据屏蔽:保护数据隐私
- Oracle安全最佳实践
- 系统层面:增强OS安全、最小化服务、安装补丁、关闭不必要端口
- 安装配置:最小化安装、删除默认账户、启用认证机制、设置强密码策略
- 网络防护:限制连接IP、传输加密
- 运维管理:启用审计、定期漏洞检查、实施灾备计划
MS SQL数据库安全分析与防护
-
用户身份认证
- 认证方式:支持Windows认证和混合认证
-
访问控制
- 角色类型:固定服务器角色、固定数据库角色、应用角色
- 控制机制:基于角色的访问控制(RBAC)
-
数据库加密
- 加密方式:Transact-SQL函数、非对称/对称密钥、证书、透明数据加密
- 密钥体系:服务主密钥→数据库主密钥→数据库加密密钥三级结构
- 透明加密:MSSQL 2008起支持,对不同敏感数据使用不同密钥,有三种密钥类型
- 服务主密钥
- 数据库主密钥
- 数据库密钥
-
备份恢复
-
备份类型:
- 静态备份(停机)和动态备份(不停机)
- 四种方案:文件/文件组备份、事务日志备份、完全备份、差异备份
-
恢复模型:简单恢复、完全恢复、批量日志记录恢复
-
备份策略对比:
- 完全备份:数据量最大,恢复最快
- 增量备份:数据量最小,恢复最慢
- 差异备份:介于两者之间
-
-
安全审计
-
标准审计功能,记录用户访问和安全事件
-
最佳实践
- 密码管理:设置强密码策略,修改默认sa密码
- 存储过程:删除不必要的扩展存储过程
- 传输安全:使用SSL替代明文TDS协议
- 网络防护:修改默认1433端口,限制访问IP
- 运维监控:启用日志审计,定期漏洞检查
MySQL安全分析与防护
- 认证方式:用户名/口令认证
- 授权机制:5个授权表(user/db/host/tables_priv/columns_priv)
- 权限管理:grant/revoke命令创建/删除用户权限
- 最佳实践
- 安装配置:专用用户组运行、最新软件包、关闭远程连接(3306端口)
- 权限控制:删除test数据库、修改root用户名、应用专用账户
- 操作限制:禁止LOAD DATA LOCAL INFILE命令
- 运维保障:安全监控、定期备份
国产数据库安全分析与防护
- 标准依据:GB/T 20273-2019《信息安全技术数据库管理系统安全技术要求》
- 安全等级:分为五个等级,规定相应技术要求
- 国产数据库依赖第三方系统组件的安全
- 组件风险:如OpenSSL漏洞影响数据传输安全
- 国产数据库系统安全配置的安全
- 常见问题:弱口令、过多开放端口、非安全远程工具
- 国产数据库支持平台的安全
- 平台依赖:受操作系统安全影响,可能导致数据泄露
- 安全增强措施
- 技术手段:漏洞挖掘扫描、数据加密
- 产品选择:采用通过认证的安全数据库产品