20-数据库系统安全
20.1 概况
1)概念
数据库安全是指数据库的机密性、完整性、可用性能够得到保障,其主要涉及数据库管理安全、数据安全、数据库应用安全以及数据库运行安全。
2)威胁
- 授权的误用
- 逻辑推断和汇聚:利用逻辑推理,把不太敏感的数据结合起来可以推断出敏感信息。进行逻辑推断也可能要用到某些数据库系统以外的知识。与逻辑推断紧密相关的是数据汇聚安全问题,即个别的数据项是不敏感的,但是当足够多的个别数据值收集在一起时,就成为敏感的数据集。
- 伪装
- 旁路控制:在数据库设置后门,绕过数据库系统的安全访问控制机制
- 隐蔽信道:通常储存在数据库中的数据经由合法的数据信道被取出。与正常的合法信道相反,隐蔽信道利用非正常的通信途径传输数据以躲避数据库安全机制的控制,如共享内存、临时文件。
- SQL 注入攻击
- 数据库口令密码破解:撞库
- 硬件及介质攻击
3)隐患
数据库用户账号和密码隐患
数据库系统扩展存储过程隐患
数据库系统软件和应用程序漏洞
数据库系统权限分配隐患
数据库系统用户安全意识薄弱
网络通信内容是明文传递
数据库系统安全机制不健全
4)需求
数据库标示与鉴别
数据库访问控制
数据库安全审计
数据库备份与恢复
数据库加密
资源限制
数据库安全加固
数据库安全管理
20.2 机制与实现技术
1)安全机制
数据库系统是一个复杂性高的基础性软件,其安全机制主要有标识和鉴别、访问控制、安全审计、备份与恢复、数据加密、资源限制、安全加固、安全管理等。这些安全机制用于保障数据库系统的安全运行、数据资源安全以及系统容灾备份。
2)加密
数据库加密是指对数据库存储或传输的数据进行加密处理,以密文形式存储或传输,防止数据泄密,保护敏感数据的安全性。数据库加密方式主要分为两种类型:一是与数据库网上传输的数据,通常利用SSL协议来实现;二是数据库存储的数据,通过数据库存储加密来实现。按照加密组件与数据库管理系统的关系,数据库存储加密可以分成两种加密方式:库内加密和库外加密。库内加密是指在 DBMS内部实现支持加密的模块。
库外加密指在 DBMS 范围之外,由专门的加密部件完成加密/解密操作。
数据库存储加密的常用技术方法有基于文件的数据库加密技术、基于记录的数据库加密技术、基于字段的数据库加密技术。其中,基于文件的数据库加密技术将数据库文件作为整体,对整个数据库文件进行加密,形成密文来保证数据的机密性。基于记录的数据库加密技术将数据库的每一个记录加密成密文并存放于数据库文件中。基于字段的数据库加密技术加密数据库的字段,以不同记录的不同字段为基本加密单元进行加密。
3)防火墙
通过 SOL协议分析,根据预定义的禁止和许可策略让合法的 SOL操作通过,阻断非法违规操作,形成数据库的外围防御圈,实现 SOL 危险操作的主动预防、实时审计。面对来自外部的入侵行为,数据库防火墙提供SOL注入禁止和数据库虚拟补丁包功能。通过虚拟补丁包,数据库系统不用升级、打补丁,即可完成对主要数据库漏洞的防控。
4)脱敏
:指利用数据脱敏技术将数据库中的数据进行变换处理,在保持数据按需使用目标的同时,又能避免敏感数据外泄。数据脱敏指按照脱敏规则对敏感数据进行的变换,去除标识数据,数据实现匿名化处理,从而实现敏感数据的保护。目前,常见的数据脱敏技术方法有屏蔽、变形、替换、随机、加密,使得敏感数据不泄露给非授权用户或系统。
5)漏洞扫描
数据库漏洞扫描模拟黑客使用的漏洞发现技术,对目标数据库的安全性尝试进行安全探测分析,收集数据库漏洞的详细信息,分析数据库系统的不安全配置,检有弱口令的数据库用户。通过数据库漏洞扫描,跟踪监控数据库安全危险状态变化,建立数据库安全基线,防止数据库安全危险恶化。
20.3 mysql 数据安全分析与防护
1)概况
2)安全分析
用户身份认证
访问授权
安全审计
3)最佳实践
- 形成 沙箱 保护机制
- 关闭 mysql 的远程连接
- 禁止 mysql 导入本地文件
- 修改 mysql root用户ID和密码
- 删除 mysql 默认用户和db
- 更高 mysql root 用户名
- 建立应用程序独立使用数据库和用户账号
- 安全监测
- 安全备份
4)漏洞修补
MySOL 的安全漏洞主要类型是拒绝服务、代码执行、溢出、逃避、特权获取等。因此,要及时安装 MySQL 漏洞补丁包,防止漏洞被利用。