人大金仓数据库KingbaseES 安全功能入门学习

关键字:

安全、身份鉴别、用户管理、审计

一、安装前准备

1.1 软件环境要求

金仓数据库管理系统KingbaseES V8.0支持微软Windows 7、Windows XP、Windows 2003、 Windows
2008等32位及64位发行版本。

1.2 安装包准备

准备需要安装的金仓数据库管理系统KingbaseES安装程序和jdk1.8及以上的jdk环境。

1.3 注意事项

1.3.1 安装用户

在安装金仓数据库管理系统KingbaseES V8.0时,安装用户对于安装路径需有“读”、“写”、“执行”的权限。Windows
10及以上的操作系统,需要使用管理员身份安装。

1.3.2 安装目录

金仓数据库管理系统KingbaseES安装过程中有默认的安装目录C:\Program Files\Kingbase\ES\V8。

安全功能入门学习

一、身份鉴别

1.1密码复杂度检查

1.功能打开:

在data/kingbase.conf的shared_preload_libraries 中增加passwordcheck ,重启数据库

system创建extension:create extension passwordcheck;

system打开功能:

alter system set passwordcheck.enable=on; 
select sys_reload_conf(); 

2.参数:

1).passwordcheck.password_length :口令最小长度,取值范围[8,63],默认值8

2).passwordcheck.password_condition_digit:口令至少包含几个数字,取值范围[2,61],默认值2

3).passwordcheck.password_condition_letter:口令至少包含几个字母,取值范围[2,61],默认值2

4).passwordcheck.password_condition_punct:口令至少包含几个特殊字符,取值范围[0,59],默认值0,其中特殊符号为除空白符、英文字母、单引号和数字外的所有可见字符

3.功能关闭:

1.system直接关闭:

a)Alter system set passwordcheck.enable=off;

b)Select sys_reload_conf();

2.system执行:

a)drop extension passwordcheck;

b)shared_preload_libraries 中删除passwordcheck ,重启数据库

尝试了一下去掉拓展passwordcheck后,设置密码:

file

修改数据库密码:ALTER USER test PASSWORD ‘123’;

1.2密码有效期

1.功能打开:

1.在kingbase.conf的shared_preload_libraries 中增加identity_pwdexp ,重启数据库

2.system创建extension:create extension identity_pwdexp;

2.参数:

1.identity_pwdexp.password_change_interval
:密码有效期,单位是天,取值范围[0,INT_MAX],默认值7,0是关闭该功能无限制

设置有效期0,失败,自动设置为30

2.identity_pwdexp.max_password_change_interval
:最大密码有效期,单位是天,取值范围[1,INT_MAX],默认值30,此参数用于限制密码有效期的设置范围,当设置的密码有效期大于最大密码有效期时,系统会报错提示。

设置最大值intmax2147483647成功

file

设置有限期1,最大值1失败 设置有限期30,最大值30成功

file

3.功能关闭:

1.system直接关闭:

a)Alter system set identity_pwdexp.password_change_interval =0;

b)Select sys_reload_conf();

2.system执行:

a)drop extension identity_pwdexp;

b)从shared_preload_libraries 中删除identity_pwdexp ,重启数据库

1.3用户登录(异常登录和解除锁定)

1.3.1异常登录

1.功能打开:

1.在kingbase.conf的shared_preload_libraries 中增加sys_audlog ,重启数据库

2.system创建extension:create extension sys_audlog;

2.参数:

1.sys_audlog.user_logonlog_level
:取值范围[0,2],默认值0,0是不记录任何用户登录信息,1表示只记录用户登录成功信息,2表示记录用户成功失败信息

2.sys_audlog.error_user_connect_times
:允许用户连续登录失败的最大次数,用户登录失败的次数大于超过该值,用户自动锁定,取值范围[0,INT_MAX],默认值0

3.sys_audlog.error_user_connect_interval:用户被锁定时间,若用户被锁定的时间超过了该参数,则该用户可自动解锁,单位是分钟,取值范围[0,INT_MAX],默认值0
,即0时关闭自动解锁功能,需手动解锁。

4.sys_audlog.max_error_user_connect_times:用户登录失败次数的最大值界限,
sys_audlog.error_user_connect_times的最大值,取值范围[0,INT_MAX],默认值2147483647

file

3.功能关闭:

1.system直接关闭:

a)Alter system set sys_audlog.user_logonlog_level =0;

b)Alter system set sys_audlog.error_user_connect_times =0;

c)Select sys_reload_conf();

2.system执行:

a)drop extension sys_audlog;

从shared_preload_libraries 中删除sys_audlog ,重启数据库。

1.3.2解除锁定

1.超过时间间隔自动解除用户封锁。

2.用户可由具有alter user 权限的用户通过SQL 语句进行手动解锁,解锁后用户登录的信息自动删除。语句: alter user username
with login;

注意:

  1. 超过时间间隔后自动解锁用户需要登录成功,若达到解锁时间后重新登录且再次失败,用户会继续锁定。

  2. 登录时若不加-W 时会自动进行一次不带密码的登录尝试,因此会多增加一次失败记录,且在解锁用户时使用不加-W 的方式登录,会导致再次被锁定,因此在解锁用户时注意加-W 参数进行登录尝试。

1.3.3 system删除登录信息

1.通过时间:SYS_AUDLOG.SYS_DEL_USER_LOGONLOG_BEFORE_DAYS(int)

2.通过用户名:SYS_AUDLOG.SYS_DEL_USER_LOGONLOG_BY_NAME(cstring);

3.通过IP:SYS_AUDLOG.SYS_DEL_USER_LOGONLOG_BY_IP(cstring)

3.查询登录信息:

1.System通过系统表sys_audit_userlog,查看所有用户的登录信息

file

2.普通用户通过视查看本用户的登录信息

file

普通用户查看系统表可以看见所有用户的登录信息

file

普通用户查看系统视图结果显示关系不存在,无对应视图。

file

关于-W加错误密码

在配置文件中将本地修改为trust,但在登录数据库时使用-W加错误密码,后需要输入正确密码,并且之后切换为sso、sao时需要输入密码

在配置文件中将本地修改为trust,但在登录数据库时使用-W加正确密码,后不需要输入正确密码,并且之后切换为sso、sao时也不需要输入密码

1.4密码历史管理

口令的历史检查是由数据库管理员对初次设定的口令或更改过的口令使用天数进行设置后,在修改用户口令时,自动对口令已使用天数进行相关方面的检查。如果口令不满足指定的条件,那么更改口令将不成功。

1.功能打开

1.在kingbase.conf的shared_preload_libraries 中增加passwordhistory ,重启数据库

2.system创建extension:create extension passwordhistory;

3.system打开功能:

a)alter system set passwordhistory.enable=on;

b)sys_reload_conf();

2.参数

passwordhistory.password_time:设置口令历史天数,默认0,0是永久限制

3.功能关闭

1.system直接关闭:

a)alter system set passwordhistory.enable =off;

b)select sys_reload_conf();

2.system执行:

a)drop extension passwordhistory;

b)从shared_preload_libraries 中删除passwordhistory,重启数据库

二、用户管理

2.1三权分立

a. 系统管理员(SYSTEM)

主要负责执行数据库日常管理的各种操作和自主存取控制。(数据库管理员用户不能创建和修改安全员和审计员,也不能将一个普通用户修改为安全员或者审计员)

b. 安全管理员(SSO)

主要负责强制访问规则的制定和管理,监督审计管理员和普通用户的操作,不能创建和操作普通对象。(安全管理员只能创建和修改安全员并且不能将安全员修改为非安全员)

c. 审计管理员(SAO)

主要负责数据库的审计,监督系统管理员和安全管理员的操作,不能创建和操作普通对象。(审计管理员只能创建和修改审计员并且不能将审计员修改为非审计员。)

创建超级用户,显示不能加参数

file

创建角色:

CREATE ROLE name LOGIN;
 CREATE USER name;
 CREATE USER name ACCOUNT UNLOCK;

创建超级管理员:

CREATE ROLE name SUPERUSER;

注意当开启sso_update后,上述第一句第3、4句不可用,只能先CREATE USER name;创建角色,再alter user 【username】
with superuser;修改权限。

2.2自主访问控制和强制访问控制的区别:

| 自主访问控制| 强制访问控制
—|—|—
简称| DAC| MAC
访问控制对象| 由属主自己(或数据库管理员)决定是否将自己客体的访问权或部分访问权授予其他主体| 由数据库安全员指定主体对客体的访问范围。
访问控制客体| TABLE、VIEW、SEQUENCE、DATABASE、TABLESPACE、PROCEDURE、FUNCTION等|
强制访问控制的客体是表中的数据
总结| 先进行自主访问控制判断,之后进行强制访问控制判断,只有都通过,才能访问客体|

三、加密

3.1储存加密-钱包

1.使用前提:

在kingbase.conf的shared_preload_libraries 中增加sysencrypt,并重启数据库

使用说明:创建加密对象前需要打开钱包,钱包默认密码为123456

打开钱包:OPENUP WALLET WITH PASSWORD “123456”;

关闭钱包:CLOSEUP WALLET WITH PASSWORD “123456”;

2.支持的加密对象:

•表空间加密:

用户不指定密钥

CREATE TABLESPACE ENC_TS_NOKEY LOCATION '@testtablespace@' with (encryption = true);
CREATE TABLE TEST_ENC_NOKEY(ID INT, NAME VARCHAR(100)) TABLESPACE ENC_TS_NOKEY;

用户可以指定密钥,通过enckey option来指定加密表空间的密钥

CREATE TABLESPACE ENC_TS_KEY LOCATION '@testtablespace@' with (encryption = true, enckey = 'k1ngb2se');
CREATE TABLE TEST_ENC_KEY(ID INT, NAME VARCHAR(100)) TABLESPACE ENC_TS_KEY;

•列加密

CREATE TABLE TEST_COL(ID INT ENCRYPTED, NAME VARCHAR(16) ENCRYPTED);

•备份加密

sys_dump/sys_store使用 –K 指定加密密钥,表示启用备份加密,加密算法是sm4

3.使用步骤

打开钱包 file

用户不指定密钥时创建表空间和表

file

用户指定密钥时创建表空间和表:

file
file

列加密

file

4.修改钱包密码:

手册:

file

Sso修改失败

file

System修改成功

file

四、审计

4.1分类

1.服务器事件审计:

数据库服务器的启动、数据库服务器的停止、数据库服务器配 置文件的重新加载、用户登录、用户登出。简称为:服务器级审计或服务器审计

file

2.语句级审计:

包括 DBMS 提供的 DDL、DML、DQL、DCL、TCL 等语句引发的事件

3.模式对象审计:

指在某个确定的模式对象上进行 SELECT 或 DML 操作时引发的事
件进行审计。模式对象包括表、视图、物化视图、过程、函数、序列。模式对象不包括有依附关系的对象,如 依附于表的索引、约束、触发器、分区表等。

新建语句审计动作

file

其中用户必须设置

查询动作id后删除

file

新建对象审计:

file

其中模式必须设置。

4.2审计入侵检测

①参数 sysaudit.ids 设置为true时开启入侵检测功能

②通过函数create_ids_rule和drop_ids_rule启用和删除入侵规则

③通过show_ids_rules()查看当前检测规则

④审计管理员sao可在数据库security中,查看入侵检测日志sysaudit_ids_log和检测结果sysaudit_ids_result

⑤参数sysaudit.ids_mail_enable=true开启邮件提醒

4.3审计记录转储

⑥参数 sysaudit.enable_auto_dump_auditlog=true/false开启/关闭自动转储

⑦通过函数sysaudit.dump_auditlog和sysaudit.restore_auditlog转储和恢复审计日志

⑧通过sysaudit.show_auditlog_dump_file函数查看转储文件

更多信息,参见https://help.kingbase.com.cn/v8/index.html

接下来我将给各位同学划分一张学习计划表!

学习计划

那么问题又来了,作为萌新小白,我应该先学什么,再学什么?
既然你都问的这么直白了,我就告诉你,零基础应该从什么开始学起:

阶段一:初级网络安全工程师

接下来我将给大家安排一个为期1个月的网络安全初级计划,当你学完后,你基本可以从事一份网络安全相关的工作,比如渗透测试、Web渗透、安全服务、安全分析等岗位;其中,如果你等保模块学的好,还可以从事等保工程师。

综合薪资区间6k~15k

1、网络安全理论知识(2天)
①了解行业相关背景,前景,确定发展方向。
②学习网络安全相关法律法规。
③网络安全运营的概念。
④等保简介、等保规定、流程和规范。(非常重要)

2、渗透测试基础(1周)
①渗透测试的流程、分类、标准
②信息收集技术:主动/被动信息搜集、Nmap工具、Google Hacking
③漏洞扫描、漏洞利用、原理,利用方法、工具(MSF)、绕过IDS和反病毒侦察
④主机攻防演练:MS17-010、MS08-067、MS10-046、MS12-20等

3、操作系统基础(1周)
①Windows系统常见功能和命令
②Kali Linux系统常见功能和命令
③操作系统安全(系统入侵排查/系统加固基础)

4、计算机网络基础(1周)
①计算机网络基础、协议和架构
②网络通信原理、OSI模型、数据转发流程
③常见协议解析(HTTP、TCP/IP、ARP等)
④网络攻击技术与网络安全防御技术
⑤Web漏洞原理与防御:主动/被动攻击、DDOS攻击、CVE漏洞复现

5、数据库基础操作(2天)
①数据库基础
②SQL语言基础
③数据库安全加固

6、Web渗透(1周)
①HTML、CSS和JavaScript简介
②OWASP Top10
③Web漏洞扫描工具
④Web渗透工具:Nmap、BurpSuite、SQLMap、其他(菜刀、漏扫等)

那么,到此为止,已经耗时1个月左右。你已经成功成为了一名“脚本小子”。那么你还想接着往下探索吗?

阶段二:中级or高级网络安全工程师(看自己能力)

综合薪资区间15k~30k

7、脚本编程学习(4周)
在网络安全领域。是否具备编程能力是“脚本小子”和真正网络安全工程师的本质区别。在实际的渗透测试过程中,面对复杂多变的网络环境,当常用工具不能满足实际需求的时候,往往需要对现有工具进行扩展,或者编写符合我们要求的工具、自动化脚本,这个时候就需要具备一定的编程能力。在分秒必争的CTF竞赛中,想要高效地使用自制的脚本工具来实现各种目的,更是需要拥有编程能力。

零基础入门的同学,我建议选择脚本语言Python/PHP/Go/Java中的一种,对常用库进行编程学习
搭建开发环境和选择IDE,PHP环境推荐Wamp和XAMPP,IDE强烈推荐Sublime;

Python编程学习,学习内容包含:语法、正则、文件、 网络、多线程等常用库,推荐《Python核心编程》,没必要看完

用Python编写漏洞的exp,然后写一个简单的网络爬虫

PHP基本语法学习并书写一个简单的博客系统

熟悉MVC架构,并试着学习一个PHP框架或者Python框架 (可选)

了解Bootstrap的布局或者CSS。

阶段三:顶级网络安全工程师

如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!

学习资料分享

当然,只给予计划不给予学习资料的行为无异于耍流氓,这里给大家整理了一份【282G】的网络安全工程师从入门到精通的学习资料包,可点击下方二维码链接领取哦。

  • 11
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值