数据库安全概述

安全概念

  • CIA特性:数据库安全的核心是保障机密性(Confidentiality)、完整性(Integrity)、可用性(Availability)
  • 四大组成部分:包含数据库管理安全、数据安全、数据库应用安全以及数据库运行安全四个维度

安全威胁

  • 授权的误用:合法用户越权获取资源,包括窃取存储介质或修改破坏数据
  • 逻辑推断和汇聚:通过大数据分析将非敏感数据组合推断出敏感信息
  • 伪装攻击:假冒用户身份获取访问权限
  • 旁路控制:设置后门绕过认证机制
  • 隐蔽信道:通过共享内存/临时文件等非正常途径传输数据
  • SQL注入:利用未检查的输入执行恶意SQL命令
  • 口令破解:通过字典或暴力猜解密码,包括"撞库"攻击手法
  • 物理攻击:直接破坏存储介质或硬件设备

安全隐患

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

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

安全机制

  • 标识与鉴别:支持多重认证机制和秘密验证
  • 安全审计:提供审计事件选择、查阅限制等功能
  • 访问控制:包含会话控制、权限分级设置
  • 加密机制:支持算法参数配置和密钥管理
  • 资源限制:防止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漏洞影响数据传输安全
  • 国产数据库系统安全配置的安全
    • 常见问题:弱口令、过多开放端口、非安全远程工具
  • 国产数据库支持平台的安全
    • 平台依赖:受操作系统安全影响,可能导致数据泄露
  • 安全增强措施
    • 技术手段:漏洞挖掘扫描、数据加密
    • 产品选择:采用通过认证的安全数据库产品