一、数据库安全性概述
1、数据库安全性就是指保护数据库以防止不合法使用所造成的数据泄露、更改或者破坏。
2、数据库不安全因素:
· 计算机系统安全性
· 非授权用户对数据库的恶意存取和破坏
· 数据库中重要或敏感的数据被泄露
· 安全环境的脆弱性
3、数据库安全标准
国际信息安全等级标准1:TCSEC标准。其中D为无保护级,C为自主保护级,B为强制保护级,A为验证保护级。7个安全级别。
· 国际信息安全等级标准2:通用准则CC,安全功能要求和安全保证要求 ,11个安全功能类。
cc评估保证级划分
· 中国的信息安全标准:我国的信息安全标准由以下系列: GB/T 15843.x --y(x表示部分系数,y表示年份) ,GB 15851--1995 ,GB 15852—1995
4、安全数据库:在具有关系型数据库一般功能的基础上,提高数据库安全性,达到美国TCSEC/TDI的B1(安全标记保护)级标准,或中国国家标准《计算机信息系统安全保护等级划分准则》的第三级(安全标记保护级)以上安全标准的数据库管理系统。
5、计算机系统安全模型
· 用户标识鉴定用户身份,合法用户准许进入系统
· 数据库管理系统还要进行存取控制,只允许用户执行合法操作
· 操作系统有自己的保护措施
· 数据以密文形式存储到数据库中
二、KES-V8V6安全特性
1、身份鉴别:是系统提供的最外层安全保护措施。每个用户在系统中都有一个用户标识。每个用户标识由用户名和用户标识号(口令或者说密码或UID)两部分组成,用户标识号在系统的整个生命周期内是唯一的。系统内部记录着所有合法用户的标识,系统鉴别是指由系统提供一定的方式让用户标识自己的名称或身份。每次用户要求进入系统时,由系统进行核对,通过鉴定后才提供使用数据库管理系统的权限。而对于用户身份的鉴定方法有很多种,而在一个系统中往往多种方法的结合,从而获得更强的安全性。具体方法如下:
· 静态口令鉴别(登录密码)
· 动态口令(手机验证码)
· 生物特征验证(指纹、眼膜)
· 智能卡鉴别(工牌)
· 密码复杂度检查 :数据库安全员对口令的最小长度,所包含的数字、英文字母、特殊符号的数目进行设置后,在创建和修改用户时,自动对口令进行相关方面的检查。
o 功能打开:
o 在kingbase.conf的shared_preload_libraries 中增加passwordcheck ,重启数据库
§ system创建extension:create extension passwordcheck;
§ system打开功能:
§ alter system set passwordcheck.enable=on;
§ select sys_reload_conf();
o 参数:
§ passwordcheck.password_length :口令最小长度,取值范围[8,63],默认值8
§ passwordcheck.password_condition_digit:口令至少包含几个数字,取值范围[2,61],默认值2
§ passwordcheck.password_condition_letter:口令至少包含几个字母,取值范围[2,61],默认值2
§ passwordcheck.password_condition_punct:口令至少包含几个特殊字符,取值范围[0,59],默认值0,其中特殊符号为除空白符、英文字母、单引号和数字外的所有可见字符
o 功能关闭:
§ Alter system set passwordcheck.enable=off;
§ Select sys_reload_conf();
· 密码有效期 :KES 的用户管理中含有口令有效期这一属性,用户密码过期检查就是通过设置用户密码的有效期,在用户密码过期后限制用户登录数据库,并输入新密码的功能。
o 功能打开:
§ 在kingbase.conf的shared_preload_libraries 中增加identity_pwdexp ,重启数据库
§ system创建extension:create extension identity_pwdexp;
o 参数:
§ identity_pwdexp.password_change_interval :密码有效期,单位是天,取值范围[0,INT_MAX],默认值7,0是关闭该功能无限制
§ identity_pwdexp.max_password_change_interval :最大密码有效期,单位是天,取值范围[1,INT_MAX],默认值30,此参数用于限制密码有效期的设置范围,当设置的密码有效期大于最大密码有效期时,系统会报错提示。
o 功能关闭
§ Alter system set identity_pwdexp.password_change_interval =0;
§ Select sys_reload_conf();
· 用户登录
o 帐户异常登录锁定:指如果用户连续若干次不能正确的登录数据库,那么这个用户的帐户将被系统禁用。
o 用户登录信息显示 :会在用户登录数据库时给出用户一些提示信息,如此次登录信息、最后一次成功登录信息、此次登录与上次登录之间登录失败的次数、最近一次尝试登录的信息等。
o 功能打开:
§ 在kingbase.conf的shared_preload_libraries 中增加sys_audlog ,重启数据库
§ system创建extension:create extension sys_audlog;
o 参数
§ sys_audlog.user_logonlog_level
§ sys_audlog.error_user_connect_times:允许用户连续登录失败的最大次数
§ sys_audlog.error_user_connect_interval::用户被锁定时间,
§ sys_audlog.max_error_user_connect_times:用户登录失败次数的最大值界限,
§ sys_audlog.error_user_connect_times:用户被锁定时间的最大值,取值范围[0,INT_MAX],默认值2147483647
o 关闭:
§ Alter system set sys_audlog.user_logonlog_level =0;
§ Alter system set sys_audlog.error_user_connect_times =0;
§ Select sys_reload_conf();
o 查询登录信息: System通过系统表sys_audit_userlog,查看所有用户的登录信息 ,普通用户通过视图SYS_AUDLOG.sys_user_audit_userlog查看本用户的登录信息
o 查询用户被封锁信息: 通过系统表sys_audit_blocklog,查看被封锁用户的信息
· 密码历史管理:口令的历史检查是由数据库管理员对初次设定的口令或更改过的口令使用天数进行设置后,在修改用户口令时,自动对口令已使用天数进行相关方面的检查。
2、用户管理:
· 三权分立:支持将管理特权三权分立为三个管理员,并在初始化的时候创建数据库管理员、安全管理员和审计管理员。解决数据库超级用户权力过度集中的问题
o a. 系统管理员(SYSTEM) :主要负责执行数据库日常管理的各种操作和自主存取控制。
o b. 安全管理员(SSO) :主要负责强制访问规则的制定和管理,监督审计管理员和普通用户的操作,不能创建和操作普通对象。
o c. 审计管理员(SAO) :主要负责数据库的审计,监督系统管理员和安全管理员的操作,不能创建和操作普通对象。
o 功能打开
§ 在kingbase.conf的shared_preload_libraries 中增加sepapower,重启数据库
§ system创建extension:create extension sepapower;
o 参数
§ Sepapower.separate_power_grant :表示可控制DCL语句(grant/revoke)是否由sso执行;true是sso执行,false是system执行,默认是false。
o 关闭
§ drop extension sepapower;
§ shared_preload_libraries 中删除sepapower,重启数据库
· SSO修改用户属性
3、数据访问控制
· 自主访问控制(DAC):是对主体(如用户)操作客体(如表)进行授权管理,简记为DAC。DAC 主要包括权限授予,回收及传播。
o 通过 SQL 的GRANT 语句和REVOKE 语句实现(参考手册SQL语句参考手册.pdf)
o 定义用户访问权限:定义用户可以在哪些数据库对象上进行的操作
· 强制访问控制(MAC) :KES 支持标记和强制访问控制,保护用户数据,防止非法窃取。 强制访问控制(MAC)与DAC 相比,MAC 提供更严格和灵活的控制方式。MAC 首先为所控制的主体和客体指派安全标记,然后依据这些标记进行访问仲裁。并且,只有主体标记能支配客体标记时才允许主体访问。
o 在强制访问控制中,数据库管理系统所管理的全部实体被分为主体和客体两大类
§ · 主体是系统中的活动实体,即:数据库管理系统所管理的实际用户
§ · 客体是系统中的被动实体,即:文件、基表、索引、视图
o 强制访问控制规则遵循简单保密模型,即” 向下读,区间写” 模型
4、数据访问保护
· 数据页面一致性保护 :数据页面包括CRC 校验码,在读数据时,首先完成一致性校验。若发现问题,及时报错,阻止错误蔓延,阻止错误升级。
· 数据加密,加密函数
5、数据安全传输-SSL
· KingbaseES支持通过SSL协议实现客户端和服务器之间的安全数据传输,使得数据在传输过程中难以被**、篡改、重放和伪造。
· 安全套接字(SSL,Secure Sockets Layer 安全套接层),为网络传输中的数据提供加密,并验证web服务器。SSL介于应用层和传输层之间,应用层将数据传递给SSL层,SSL对数据进行加密,并增加自己的SSL头。
6、存储加密
· KES-V8V6引入了加密框架,对用户提供的数据加密保护机制,保护存储在磁盘中的数据不被非法窃取。
· 算法:内置SM4 和RC4 算法对数据进行加密。
· 密钥:采用三级密钥结构,分别为主密钥和对象密钥和块级密钥。
· 钱包管理:使用钱包时,需要先通过钱包密码验证。创建加密对象时,钱包必须处于OPEN状态;修改钱包密码时,钱包必须处于CLOSE状态。
· 透明存储加密:指数据写到磁盘上时对其进行加密,用户重新读取时,进行解密。
7、数据库审计
· 将数据库中发生的事件记录下来,以供日后审计员分析和统计。
· 设置专门的管理员(审计员/安全员),设置审计规则和查看审计记录,符合最新标准要求。
· 支持审计日志加密存储、日志将满时自动转储、手动转储。
· 支持审计日志本地存储和远程存储。
· 支持审计入侵检测。
8、其他
· 备份恢复权限:SYSBACKUP,允许物理备份sys_basebackup 连接到目标数据库,执行物理备份操作。
· 客体重用:通过在KingbaseES 资源申请和释放(注:释放是KingbaseES 对象做判断认为可以重用对象的资源或者是可以向操作系统返回对象占用的资源)的地方清除介质上的残留信息,以达到客体重用的要求。
· 系统Any权限:通过授予用户ANY 权限,允许用户操作所有的某种类型的数据库对象的某种操作,不包括系统对象。
三、V8V6安全分析工具
抓包工具的目的:抓取信息,判断信息是否被加密
1、Tcpdump抓包工具
2、Wireshark抓包工具
3、Hexdump二进制文件查看工具
4、BenchmarkSQL工具
评论记录:
回复评论: