风险防不胜防?看YashanDB如何守护你的数据库安全(下)

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
日志服务 SLS,月写入数据量 50GB 1个月
简介: YashanDB语法上支持权限审计、行为审计和角色审计,逻辑上包括了系统级、语句级、对象级进行审计,支持对指定用户或所有用户进行审计,并支持对系统权限进行审计。审计记录保存在物理表中,拥有AUDIT_ADMIN或AUDIT_VIEWER角色权限的用户可以通过审计视图UNIFIED_AUDIT_TRAIL查看审计日志信息.

前言
上一篇文章,咱们主要讲了数据库安全机制中的 访问管理~今天继续深入聊聊 威胁监测以及 数据保护。
(二)威胁监测
安全审计
YashanDB语法上支持权限审计、行为审计和角色审计,逻辑上包括了系统级、语句级、对象级进行审计,支持对指定用户或所有用户进行审计,并支持对系统权限进行审计。审计记录保存在物理表中,拥有AUDIT_ADMIN或AUDIT_VIEWER角色权限的用户可以通过审计视图UNIFIED_AUDIT_TRAIL查看审计日志信息.
审计级别 含义
系统级 系统的启动与关闭,无需由用户进行设置,只要审计开关打开就会自动生成对应审计记录
语句级 导致影响特定类型数据库对象的特殊 SQL 或语句组的审计
对象级 审计作用在特殊对象上的语句

权限审计指的是对YashanDB的所有系统权限进行审计,当对某个系统权限启用审计策略后,只要在SQL语句或其他操作中使用了这个系统权限,就会被审计。也是语句级审计。
行为审计包括系统审计和对象审计。
系统审计:包括对象创建/删除、建库/关库、提交/回滚等所有的操作行为的审计。
对象审计:表示对某个具体对象的操作行为的审计。
此外,YashanDB提供角色审计功能,在某个角色上启用审计策略后,所有直接被赋予给该角色的系统权限就可以被审计。
审计日志被记录在系统表中,只有审计管理员可以查看和分析该表。为了降低审计对系统的影响,YashanDB支持审计日志异步入库。
为减少审计对数据库性能的影响,YashanDB默认采用异步审计的方式写审计记录(由AUDIT_QUEUE_WRITE参数控制开关)。
异步审计将审计数据信息先写入审计数据队列,当审计数据队列达到阈值(数据刷新时间间隔、数据队列满)时 ,再将数据批量插入审计记录表中。 这些阈值可通过AUDIT_FLUSH_INTERVAL和AUDIT_QUEUE_SIZE进行调整。异步审计可以减少对数据库性能的影响,但在一些异常情况下(例如数据库异常宕机)可能导致丢失部分审计数据。

反漏洞
YashanDB使用以下的机制,降低漏洞的危害。
1)安全漏洞扫描:代码安全静态扫描、开源代码扫描,并及时发布的安全补丁和更新版本,以修复已知的安全漏洞。
2)使用已经取得安全资质的硬件和操作系统。

(三)数据保护
通信加密
在数据库客户端和服务端之间,在数据库各节点之间应建立安全的通信信道,保障通信数据的机密性和完整性。YashanDB可以通过TLCP/TLS协议进行通信信道加密和服务端身份认证,可通过配置文件进行密码协议的选择和关键参数的配置。
《信息安全技术传输层密码协议(TLCP)》是2020年11月1日开始实施的一项中国国家标准,是国密版SSL。国密SSL参照了TLS规范,但和TLS并不兼容。协议架构如下所示:
图片1.png

从目前的全球竞争环境和国家的意志来看,我国大力推行TLCP标准是必然趋势,而且该协议目前也正处于国际标准化进程之中,因此YashanDB系统符合TLCP标准,有利于加强国家信息安全。

存储加密
数据加密对于数据库安全具有十分重要的意义,是一种主动保护技术。关于存储加密的模型,通常有多种实现方式,比如应用系统加密、前置代理加密、后置代理加密、透明加密、文件加密、磁盘加密等等。YashanDB平衡了各种技术的优缺点,采用了表空间透明加密TDE,这种技术的优点是:
1)对于数据库用户和应用程序是透明的。
2)不对数据库功能有任何影响。
3)性能损耗极小,通常可以忽略
TDE要求在数据库写入存储介质时自动加密,从存储读取至数据库buffer内时解密,对应用程序是透明的,数据库层的访问控制、SQL查询等都不会改变。
YashanDB采用国密SM4的加密算法进行表空间数据加密,用户无需指定策略,在保证密文的破解难度外,同时兼顾了加解密对数据库的低性能损耗,可适用于大数据量的表空间加密。对某个表空间是否启用加密,需要在创建时就确定,且不可更改。
对于分区表,YashanDB支持各分区可以任意存储在加密或非加密的表空间,即可对表进行部分数据加密。
备份加密
YashanDB支持在备份时指定加密策略,保障备份集数据的安全。用户可依据自身需求选择不同的加密算法,YashanDB提供AES128、AES192、AES256和SM4四种流行的加密算法供选择。
备份加密的密钥采用与YashanDB用户口令一致的策略,并使用与其相同的密钥保护机制,保证在没有明文密码的情况下永远不会被破解,进一步保障了数据的安全。
密钥管理
密钥管理是指对加密系统中使用的密钥进行全面管理和保护的过程和实践。在
计算机安全和信息安全领域中,加密算法通常使用密钥来对数据进行加密和解密,而密钥管理则涉及生成、存储、分发、轮换、撤销和销毁这些密钥的活动。
YashanDB支持软件硬件统一的密钥管理框架,并采用三级密钥管理体系,这可以在一定程度上提高加密系统的安全性和合规性,同时也能够提供更大的灵活性和管理便利性。
备份和恢复
对数据库的备份分为冷备和热备,其中冷备表示将数据库关闭后,通过操作系统命令进行文件系统的复制,热备表示在数据库正常运行期间所进行的在线备份,YashanDB所支持的备份功能为热备。以备份集的形式持久化,恢复则是使用备份集还原出数据库文件,恢复到备份时的状态。管理员应定期执行备份,可有效避免意外场景下的数据损坏。
数据库备份又分为全量备份和增量备份:
1)全量备份:对某一时间点上的所有数据进行完全复制,不依赖之前的备份集。一个全量备份集可以恢复出所有数据
2)增量备份:在有全量备份基线(level0)的情况下,增量备份(level1)只备份上一次备份后,发生过变化的数据。增量备份可以减少备份时间,减少磁盘占用,但是恢复时,需要按增量备份集链逐个恢复。
3)累计增量备份:第一次增量备份,必须是LEVEL 0,即全量备份。后续每次备份自上一次完全备份之后有变化的数据。
YashanDB支持如下方式的数据备份:
1)使用BACKUP DATABASE语句发起备份操作,备份集将生成在数据库服务端。
2)使用yasrman工具发起远程备份操作(对分布式可以发起多节点的统一备份操作),备份集可以选择生成在工具端或者数据库服务端。
用户可以选择任一种方式进行备份操作,两种方式均支持如下备份策略:
1)支持选择全量备份和增量备份。
2)支持选择对备份集数据进行压缩。
3)支持选择对备份集数据进行加密。

YashanDB支持按指定时间点恢复 Point-in-Time Recovery,恢复操作需要指定时间点或者SCN。约束条件是:
1)从备份结束时间到指定TIME或SCN的归档日志都在
2)TIME或SCN要大于备份结束时间(精确点,是指data文件备份结束时间,但data文件备份结束时间<备份结束时间)
3)指定时间点恢复会有1s误差
4)指定时间点比最后一条日志的时间都大时,不报错,即时间太大,回放不到指定时间不报错,与oracle保持一致
5)需要回放的归档,resetid需要和备份集reset id相同,否则restore阶段无法注册不同reset id的归档

安全销毁
安全销毁又叫剩余信息保护或者客体重用:在普通的环境下,数据库客体(主要指数据库对象、数据文件、缓存区)回收后不做处理,直接分配给新来的请求,但是有些攻击者会利用这一点编写特殊的非法进程通过数据库管理系统的内存泄露来获取数据库系统的信息。
YashanDB通过两者手段实现了基本的剩余信息保护:
1)在释放表空间内存之前,将对应内存区域清空(置零)
2)在删除表空间文件之前,将文件内容用零值覆盖。
总结和展望
YashanDB能够建立相对整安全保护机制,保护数据和数据库管理系统,不因偶然和恶意的原因而遭到泄漏、破坏和滥用,保障数据和系统的保密性、完整性、可用性和可审查性。随着数据安全形势的变化和客户安全需求的更新,YashanDB的安全规划和安全能力建设仍然一直在路上。

相关文章
|
3天前
|
存储 SQL 安全
风险防不胜防?看YashanDB如何守护你的数据库安全(下)
YashanDB语法上支持权限审计、行为审计和角色审计,逻辑上包括了系统级、语句级、对象级进行审计,支持对指定用户或所有用户进行审计,并支持对系统权限进行审计。审计记录保存在物理表中,拥有AUDIT_ADMIN或AUDIT_VIEWER角色权限的用户可以通过审计视图UNIFIED_AUDIT_TRAIL查看审计日志信息。
15 2
|
3天前
|
存储 安全 网络安全
风险防不胜防?看YashanDB如何守护你的数据库安全(上)
数据库作为信息系统的核心,不仅承载着海量的关键数据,还负责向各类用户提供高效、可靠的信息服务,数据库的安全性显得尤为关键,已成为信息安全体系的重中之重。
12 0
|
3月前
|
运维 监控 安全
【YashanDB知识库】ycm托管数据库时报错OM host ip:127.0.0.1 is not support join to YCM
总之,解决“OM host ip: 127.0.0.1 is not supported to join to YCM”的关键在于理解集群管理对IP地址的使用要求,并据此做出相应的配置调整,确保集群的稳定性和数据一致性。
28 1
|
5月前
|
存储 缓存 NoSQL
Redis内存管理揭秘:掌握淘汰策略,让你的数据库在高并发下也能游刃有余,守护业务稳定运行!
【8月更文挑战第22天】Redis的内存淘汰策略管理内存使用,防止溢出。主要包括:noeviction(拒绝新写入)、LRU/LFU(淘汰最少使用/最不常用数据)、RANDOM(随机淘汰)及TTL(淘汰接近过期数据)。策略选择需依据应用场景、数据特性和性能需求。可通过Redis命令行工具或配置文件进行设置。
116 2
|
5月前
|
SQL 安全 网络安全
"守护数据王国,揭秘SQL权限管理与安全配置秘籍!从创建用户到加密技术,全方位打造铜墙铁壁,让你的数据库安全无忧,远离黑客侵扰!"
【8月更文挑战第31天】数据库是信息系统的核心,存储了大量敏感数据,因此确保其安全至关重要。本文详细介绍了SQL权限管理与安全配置的方法,包括理解权限类型、创建用户和角色、分配权限、实施密码策略、使用加密技术、配置防火墙、定期审计备份及防止SQL注入等,帮助你全面保护数据库安全。通过这些步骤,你可以有效管理和配置数据库权限,防范潜在威胁,确保数据隐私和完整性。
123 0
|
27天前
|
存储 Oracle 关系型数据库
数据库传奇:MySQL创世之父的两千金My、Maria
《数据库传奇:MySQL创世之父的两千金My、Maria》介绍了MySQL的发展历程及其分支MariaDB。MySQL由Michael Widenius等人于1994年创建,现归Oracle所有,广泛应用于阿里巴巴、腾讯等企业。2009年,Widenius因担心Oracle收购影响MySQL的开源性,创建了MariaDB,提供额外功能和改进。维基百科、Google等已逐步替换为MariaDB,以确保更好的性能和社区支持。掌握MariaDB作为备用方案,对未来发展至关重要。
55 3
|
27天前
|
安全 关系型数据库 MySQL
MySQL崩溃保险箱:探秘Redo/Undo日志确保数据库安全无忧!
《MySQL崩溃保险箱:探秘Redo/Undo日志确保数据库安全无忧!》介绍了MySQL中的三种关键日志:二进制日志(Binary Log)、重做日志(Redo Log)和撤销日志(Undo Log)。这些日志确保了数据库的ACID特性,即原子性、一致性、隔离性和持久性。Redo Log记录数据页的物理修改,保证事务持久性;Undo Log记录事务的逆操作,支持回滚和多版本并发控制(MVCC)。文章还详细对比了InnoDB和MyISAM存储引擎在事务支持、锁定机制、并发性等方面的差异,强调了InnoDB在高并发和事务处理中的优势。通过这些机制,MySQL能够在事务执行、崩溃和恢复过程中保持
63 3
|
27天前
|
SQL 关系型数据库 MySQL
数据库灾难应对:MySQL误删除数据的救赎之道,技巧get起来!之binlog
《数据库灾难应对:MySQL误删除数据的救赎之道,技巧get起来!之binlog》介绍了如何利用MySQL的二进制日志(Binlog)恢复误删除的数据。主要内容包括: 1. **启用二进制日志**:在`my.cnf`中配置`log-bin`并重启MySQL服务。 2. **查看二进制日志文件**:使用`SHOW VARIABLES LIKE &#39;log_%&#39;;`和`SHOW MASTER STATUS;`命令获取当前日志文件及位置。 3. **创建数据备份**:确保在恢复前已有备份,以防意外。 4. **导出二进制日志为SQL语句**:使用`mysqlbinlog`
84 2
|
1月前
|
关系型数据库 MySQL 数据库
Python处理数据库:MySQL与SQLite详解 | python小知识
本文详细介绍了如何使用Python操作MySQL和SQLite数据库,包括安装必要的库、连接数据库、执行增删改查等基本操作,适合初学者快速上手。
260 15
|
1月前
|
SQL 关系型数据库 MySQL
数据库数据恢复—Mysql数据库表记录丢失的数据恢复方案
Mysql数据库故障: Mysql数据库表记录丢失。 Mysql数据库故障表现: 1、Mysql数据库表中无任何数据或只有部分数据。 2、客户端无法查询到完整的信息。