十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

等保测评命令——人大金仓数据库

等保测评命令——人大金仓数据库 依据GB/T 22239-2019《信息安全技术 网络安全等级保护基本要求》第三级安全计算环境条款结合金仓数据库官方安全指南及现场测评实践给出可直接落地的测评命令清单。适用版本KingbaseES V8R3 / V8R6 / V8R9一、身份鉴别8.1.4.11.1 数据库账户与口令策略控制项测评命令达标判据超级管理员账户ksql -U system -W -c SELECT * FROM sys_user WHERE usesysid10;system账户受控空口令检查ksql -U system -W -c SELECT usename FROM sys_user WHERE passwd IS NULL;无输出弱口令检查ksql -U system -W -c SELECT usename FROM sys_user WHERE passwd LIKE %md5% AND length(passwd)35;无输出密码复杂度ksql -U system -W -c SHOW passwordcheck.enable;on密码有效期ksql -U system -W -c SHOW passwordcheck.password_valid_until;≤90天密码历史ksql -U system -W -c SHOW passwordcheck.password_reuse_max;≥5次登录失败锁定ksql -U system -W -c SHOW sysaudit.login_lock_max_failed;≤5次锁定时间ksql -U system -W -c SHOW sysaudit.login_lock_duration;≥30分钟金仓特有配置# 连接数据库需先切换到kingbase用户 su - kingbase ksql -U system -dtest-W # 查看所有用户及状态 SELECT usename, usesuper, usecreatedb, valuntil, CASE WHEN passwd LIKE md5% THEN md5 ELSE 其他 END as pwd_type FROM sys_user; # 查看密码策略详细配置 SHOW passwordcheck; SHOW passwordcheck.min_length; -- 最小长度≥8 SHOW passwordcheck.min_upper_case; -- 大写字母≥1 SHOW passwordcheck.min_lower_case; -- 小写字母≥1 SHOW passwordcheck.min_digit; -- 数字≥1 SHOW passwordcheck.min_special; -- 特殊字符≥1 # 查看登录失败锁定配置 SHOW sysaudit.login_lock; SHOW sysaudit.login_lock_max_failed; -- 最大失败次数 SHOW sysaudit.login_lock_duration; -- 锁定时间秒 SHOW sysaudit.login_lock_auto_unlock; -- 是否自动解锁 # 查看被锁定的用户 SELECT * FROM sysaudit.sysaudit_login_lock WHERE is_locked true;1.2 远程管理与连接控制控制项测评命令达标判据监听地址cat ${KINGBASE_DATA}/kingbase.confgrep listen_addresses端口检查ss -tulnpgrep 54321SSL连接ksql -U system -W -c SHOW ssl;on客户端证书ls -la ${KINGBASE_DATA}/server.crt存在且权限600最大连接数ksql -U system -W -c SHOW max_connections;根据业务配置金仓特有配置# 查看数据库监听配置 cat${KINGBASE_DATA}/kingbase.conf |grep-Elisten_addresses|port|ssl # 查看SSL详细配置 SHOW ssl_cert_file; -- 证书路径 SHOW ssl_key_file; -- 私钥路径 SHOW ssl_ca_file; -- CA证书 SHOW ssl_crl_file; -- 吊销列表 SHOW ssl_ciphers; -- 加密算法 # 查看当前连接情况 SELECT client_addr, usename, state, backend_start, query_start FROM sys_stat_activity WHERE client_addr IS NOT NULL; # 查看认证配置文件 cat${KINGBASE_DATA}/sys_hba.conf # 核查要点 # - 拒绝trust认证方式 # - 拒绝host all all 0.0.0.0/0 md5 # - 采用hostssl强制SSL连接1.3 双因子认证高风险项# 检查是否启用证书认证 cat${KINGBASE_DATA}/sys_hba.conf |grep cert # 检查是否集成外部认证LDAP/RADIUS/AD ksql -U system -W-cSHOW krb_server_keyfile;# Kerberos ksql -U system -W-cSHOW ldapserver;# LDAP # 检查审计是否记录认证事件 ksql -U system -W-cSHOW sysaudit.enable;; ksql -U system -W-cSHOW sysaudit.log_connections;;二、访问控制8.1.4.22.1 账户权限管理控制项测评命令达标判据超级用户数量ksql -U system -W -c SELECT usename FROM sys_user WHERE usesupert;≤2个默认账户处理ksql -U system -W -c SELECT usename FROM sys_user WHERE usename IN (kingbase, system);已修改默认口令角色分离ksql -U system -W -c SELECT rolname FROM sys_roles;存在安全管理员、审计管理员权限授予ksql -U system -W -c \dp *.*最小权限原则金仓特有配置# 查看三权分立配置金仓特有安全特性 SHOW sepofpowers; -- 是否启用三权分立 # 查看安全管理员sso配置 ksql -U sso -W-cSELECT current_user; # 查看审计管理员sao配置 ksql -U sao -W-cSELECT current_user; # 查看所有角色及成员关系 SELECT r.rolname, ARRAY(SELECT b.rolname FROM sys_catalog.sys_auth_members m JOIN sys_catalog.sys_roles b ON (m.roleid b.oid) WHERE m.member r.oid) as memberof FROM sys_catalog.sys_roles r WHERE r.rolname !~ ^pg_; # 查看对象权限详情 SELECT grantor, grantee, table_schema, table_name, privilege_type FROM information_schema.table_privileges WHERE grantee NOT IN (PUBLIC, system); # 检查PUBLIC角色权限 SELECT * FROM information_schema.table_privileges WHERE granteePUBLIC; -- 应回收PUBLIC对敏感表的权限2.2 敏感数据访问控制# 查看行级安全策略RLS配置 SELECT schemaname, tablename, rowsecurity FROM sys_tables WHERE rowsecuritytrue; # 查看具体RLS策略 SELECT * FROM sys_policies; # 查看列级加密配置金仓特有 SHOW transparent_encrypt; SHOW transparent_encrypt_kms_url; # 查看数据脱敏配置金仓特有 SELECT * FROM sys_redaction_policies; SELECT * FROM sys_redaction_columns;三、安全审计8.1.4.33.1 审计服务启用控制项测评命令达标判据审计开关ksql -U system -W -c SHOW sysaudit.enable;on审计模式ksql -U system -W -c SHOW sysaudit.mode;all或std审计日志路径ksql -U system -W -c SHOW sysaudit.log_directory;非数据目录独立磁盘审计日志格式ksql -U system -W -c SHOW sysaudit.log_format;csv或json审计日志保留ksql -U system -W -c SHOW sysaudit.log_rotation_age;≥6个月金仓特有配置# 查看审计总开关 SHOW sysaudit; # 查看审计详细配置 SHOW sysaudit.log; -- 审计日志总开关 SHOW sysaudit.log_catalog; -- 是否审计系统表 SHOW sysaudit.log_level; -- 审计级别 SHOW sysaudit.log_connections; -- 审计连接 SHOW sysaudit.log_disconnections; -- 审计断开 SHOW sysaudit.log_ddl; -- 审计DDL SHOW sysaudit.log_dml; -- 审计DML SHOW sysaudit.log_select; -- 审计查询 SHOW sysaudit.log_parameter; -- 审计参数 # 查看审计规则精细化审计 SELECT * FROM sysaudit.sysaudit_rules; # 查看审计日志文件 ls-la${KINGBASE_DATA}/sysaudit/ 2/dev/null ||ls-la /var/lib/kingbase/sysaudit/ # 查看审计日志内容CSV格式 head-5${KINGBASE_DATA}/sysaudit/sysaudit-*.csv # 审计日志大小检查 du-sh${KINGBASE_DATA}/sysaudit/ # 查看审计表空间应独立表空间 SELECT spcname FROM sys_tablespace WHERE spcnamesysaudit;3.2 审计记录保护# 检查审计日志权限 ls-la${KINGBASE_DATA}/sysaudit/sysaudit-*.csv # 应640 kingbase:kingbase # 检查审计日志是否定期归档 crontab-l|grep sysaudit ls /backup/sysaudit/ 2/dev/null # 查看审计日志自动清理配置 SHOW sysaudit.log_truncate_on_rotation; SHOW sysaudit.log_rotation_age; SHOW sysaudit.log_rotation_size; # 检查审计管理员权限仅能查询审计日志不能修改 ksql -U sao -W-cSELECT * FROM sysaudit.sysaudit_log LIMIT 5;四、入侵防范8.1.4.44.1 数据库加固与漏洞修复控制项测评命令达标判据版本补丁ksql -U system -W -c SELECT version();最新稳定版本危险函数ksql -U system -W -c SELECT proname FROM sys_proc WHERE proname IN (pg_read_file, pg_ls_dir, copy_from_program);已回收权限扩展插件ksql -U system -W -c SELECT * FROM sys_extension;仅安装可信扩展外部表ksql -U system -W -c SELECT * FROM sys_foreign_data_wrapper;受控使用金仓特有配置# 查看数据库版本及补丁 SELECT version(); SHOW server_version; SHOW server_version_num; # 检查危险存储过程 SELECT proname, prosrc FROM sys_proc WHERE proname IN (pg_read_file, pg_read_binary_file, pg_ls_dir, pg_database_size, pg_relation_size, pg_size_pretty) AND prosecdef true; # 检查COPY PROGRAM权限高危命令 SHOW allow_system_table_mods; -- 应为off # 检查外部数据封装器 SELECT fdwname, fdwowner::regrole, fdwoptions FROM sys_foreign_data_wrapper; # 检查dblink和file_fdw可能用于越权访问 SELECT * FROM sys_extension WHERE extname IN (dblink, file_fdw, postgres_fdw); # 检查自定义函数安全性 SELECT n.nspname, p.proname, p.prosecdef, p.proowner::regrole FROM sys_proc p JOIN sys_namespace n ON p.pronamespace n.oid WHERE n.nspname NOT IN (pg_catalog, information_schema, sys_catalog) AND p.prosecdef true; -- 安全定义者函数需重点审查4.2 资源限制与防护# 查看资源限制配置 SHOW max_connections; -- 最大连接数 SHOW superuser_reserved_connections; -- 超级用户保留连接 # 查看用户级资源限制 SELECT rolname, rolconnlimit FROM sys_roles WHERE rolconnlimit 0; # 查看连接池配置金仓连接池 SHOW kingbasepool.max_pool; -- 连接池大小 SHOW kingbasepool.idle_timeout; -- 空闲超时 # 查看语句超时配置 SHOW statement_timeout; -- 语句执行超时 SHOW lock_timeout; -- 锁等待超时 SHOW idle_in_transaction_session_timeout; -- 事务空闲超时 # 查看并发控制 SHOW max_worker_processes; SHOW max_parallel_workers; SHOW max_parallel_workers_per_gather;五、恶意代码防范8.1.4.5# 检查数据库服务器杀毒软件 systemctl status kav || systemctl status clamav-daemon # 检查数据库文件完整性校验金仓提供 ${KINGBASE_HOME}/Install/verifychecksum -d${KINGBASE_DATA} # 检查异常SQL模式审计日志分析 ksql -U sao -W-c SELECT substr(query, 1, 50), count(*) FROM sysaudit.sysaudit_log WHERE query ~* (drop|delete|truncate|grant|revoke) AND event_time current_date - interval 7 days GROUP BY substr(query, 1, 50) ORDER BY count(*) DESC; # 检查异常登录行为 ksql -U sao -W-c SELECT client_addr, usename, count(*) as failed_count FROM sysaudit.sysaudit_log WHERE event_type CONNECT AND result failed AND event_time current_date - interval 1 day GROUP BY client_addr, usename HAVING count(*) 5; 六、可信验证8.1.4.6控制项测评命令达标判据国密算法支持ksql -U system -W -c SHOW ssl_ciphers;包含SM2/SM3/SM4透明加密ksql -U system -W -c SHOW transparent_encrypt;on加密算法ksql -U system -W -c SHOW transparent_encrypt_algorithm;SM4或AES256完整性保护ksql -U system -W -c SHOW checksums;on金仓特有配置# 查看国密支持金仓V8R6支持国密 SHOW ssl_ciphers; -- 应包含SM2/SM3/SM4 # 查看透明数据加密TDE配置 SHOW transparent_encrypt; SHOW transparent_encrypt_kms_url; -- 密钥管理服务 SHOW transparent_encrypt_algorithm; -- SM4或AES-256-CBC # 查看表空间加密状态 SELECT spcname, spcencrypt FROM sys_tablespace WHERE spcencrypt true; # 查看SSL证书国密支持 openssl s_client -connect localhost:54321 -tls1_32/dev/null |grep-ism2\|sm3\|sm4 # 查看数据完整性校验 SHOW checksums; -- 数据页校验和 SHOW ignore_checksum_failure; -- 应为off # 查看配置文件完整性 md5sum ${KINGBASE_DATA}/kingbase.conf md5sum ${KINGBASE_DATA}/sys_hba.conf md5sum ${KINGBASE_DATA}/sys_ident.conf七、数据备份与恢复8.1.4.9控制项测评命令达标判据物理备份ls -la /backup/kingbase/每日全备增量逻辑备份ls -la /backup/kingbase/dump/每周逻辑备份归档日志ksql -U system -W -c SHOW archive_mode;on备份加密sys_dump --helpgrep encrypt恢复测试cat /backup/kingbase/restore_test.log每月恢复演练金仓特有配置# 查看归档配置 SHOW archive_mode; SHOW archive_command; SHOW archive_timeout; # 查看WAL保留策略 SHOW wal_level; -- replica或logical SHOW max_wal_size; SHOW min_wal_size; # 查看备份工具 which sys_basebackup which sys_dump which sys_dumpall which sys_rman # 金仓RMAN备份工具 # 检查RMAN备份配置如果使用 cat${KINGBASE_HOME}/sys_rman/sys_rman.conf 2/dev/null # 查看备份计划任务 crontab-l|grep-Esys_dump|sys_basebackup|sys_rman # 检查备份文件权限 ls-la /backup/kingbase/ stat-c%a %U:%G /backup/kingbase/ # 验证备份有效性检查最近备份文件大小和时间 find /backup/kingbase/ -name*.backup-mtime-1-ls find /backup/kingbase/ -name*.sql-mtime-7-ls # 检查异地备份 ls /remote_backup/kingbase/ 2/dev/null ||echo需核查异地备份策略八、金仓特有安全功能8.1 安全版特性V8R6# 查看安全版功能开关 SHOW enable_mac; -- 强制访问控制MAC SHOW enable_label_security; -- 标签安全 SHOW enable_database_firewall; -- 数据库防火墙 SHOW enable_transparent_encrypt; -- 透明加密 # 查看强制访问控制策略MAC SELECT * FROM sys_mac_policy; SELECT * FROM sys_mac_label; # 查看数据库防火墙规则 SELECT * FROM sys_db_firewall_rules; SELECT * FROM sys_db_firewall_whitelist; SELECT * FROM sys_db_firewall_sqltype;8.2 性能与监控# 查看数据库性能统计 ksql -U system -W-cSELECT * FROM sys_stat_database; # 查看慢查询日志 SHOW log_min_duration_statement; -- 记录超过该值的SQL SHOW log_slow_queries; -- 慢查询开关 # 查看锁等待情况 SELECT * FROM sys_locks WHERE NOT granted; # 查看死锁检测 SHOW deadlock_timeout; SHOW log_deadlocks;一键巡检脚本金仓数据库# !/bin/bash # KingbaseES 等保三级一键巡检脚本 # 适用KingbaseES V8R3/V8R6/V8R9 # 执行用户kingbase exportKINGBASE_HOME/opt/Kingbase/ES/V8 exportKINGBASE_DATA/opt/Kingbase/ES/V8/data exportPATH$KINGBASE_HOME/bin:$PATH echo 金仓数据库等保三级巡检 echo巡检时间$(date) echo数据库版本$(ksql -U system -W -c SELECT version(); 2/dev/null | head -1) echo echo 1 身份鉴别 echo- -- 超级用户检查 --- ksql -U system -W-cSELECT usename, usesuper FROM sys_user WHERE usesupert;2/dev/null echo- -- 密码策略 --- ksql -U system -W-cSHOW passwordcheck.enable;2/dev/null ksql -U system -W-cSHOW passwordcheck.min_length;2/dev/null echo- -- 登录失败锁定 --- ksql -U system -W-cSHOW sysaudit.login_lock;2/dev/null ksql -U system -W-cSHOW sysaudit.login_lock_max_failed;2/dev/null echo--- SSL配置 --- ksql -U system -W-cSHOW ssl;2/dev/null ls-la${KINGBASE_DATA}/server.crt 2/dev/null echo- -- 监听地址 --- cat${KINGBASE_DATA}/kingbase.conf 2/dev/null |grep listen_addresses |head-1 echo echo 2 访问控制 echo- -- 三权分立 --- ksql -U system -W-cSHOW sepofpowers;2/dev/null echo- -- 角色列表 --- ksql -U system -W-cSELECT rolname FROM sys_roles WHERE rolname !~ ^pg_;2/dev/null echo- -- 敏感权限检查 --- ksql -U system -W-cSELECT grantee, privilege_type FROM information_schema.table_privileges WHERE granteePUBLIC LIMIT 5;2/dev/null echo echo 3 安全审计 echo- -- 审计开关 --- ksql -U system -W-cSHOW sysaudit.enable;2/dev/null ksql -U system -W-cSHOW sysaudit.log;2/dev/null echo- -- 审计日志路径 --- ksql -U system -W-cSHOW sysaudit.log_directory;2/dev/null ls-ld$(ksql -U system -W-cSHOW sysaudit.log_directory;2/dev/null |awk{print $1})2/dev/null echo- -- 审计日志文件 --- ls-la${KINGBASE_DATA}/sysaudit/ 2/dev/null |head-5 echo echo 4 入侵防范 echo- -- 版本信息 --- ksql -U system -W-cSELECT version();2/dev/null |head-1 echo- -- 危险扩展 --- ksql -U system -W-cSELECT extname FROM sys_extension WHERE extname IN (dblink, file_fdw, postgres_fdw);2/dev/null echo- -- 资源限制 --- ksql -U system -W-cSHOW max_connections;2/dev/null ksql -U system -W-cSHOW statement_timeout;2/dev/null echo echo 5 可信验证 echo- -- 透明加密 --- ksql -U system -W-cSHOW transparent_encrypt;2/dev/null ksql -U system -W-cSHOW transparent_encrypt_algorithm;2/dev/null echo- -- 数据校验 --- ksql -U system -W-cSHOW checksums;2/dev/null echo echo 6 备份恢复 echo- -- 归档模式 --- ksql -U system -W-cSHOW archive_mode;2/dev/null ksql -U system -W-cSHOW archive_command;2/dev/null echo- -- 备份文件检查 --- ls /backup/kingbase/ 2/dev/null |head-5||echo备份目录未找到请核查备份策略 echo- -- 备份计划任务 --- crontab-l2/dev/null |grep-Ekingbase|sys_dump|sys_basebackup||echo未找到数据库备份任务 echo echo 7 国密支持V8R6 echo--- SSL算法 --- ksql -U system -W-cSHOW ssl_ciphers;2/dev/null |grep-i sm echo- -- 加密算法 --- ksql -U system -W-cSHOW transparent_encrypt_algorithm;2/dev/null echo echo 巡检完成 高风险项重点核查清单检查项验证命令不合规判定整改建议空口令账户ksql -U system -W -c SELECT usename FROM sys_user WHERE passwd IS NULL;存在输出立即设置强口令或锁定账户密码复杂度未启用ksql -U system -W -c SHOW passwordcheck.enable;off修改kingbase.conf启用无登录失败锁定ksql -U system -W -c SHOW sysaudit.login_lock;off启用sysaudit.login_lock监听地址为*cat ${KINGBASE_DATA}/kingbase.confgrep listen_addresses*未启用SSLksql -U system -W -c SHOW ssl;off配置SSL证书并启用审计未启用ksql -U system -W -c SHOW sysaudit.enable;off修改kingbase.conf启用审计审计日志权限过大ls -la ${KINGBASE_DATA}/sysaudit/非640修改为640 kingbase:kingbase未启用归档ksql -U system -W -c SHOW archive_mode;off启用WAL归档存在危险扩展ksql -U system -W -c SELECT extname FROM sys_extension WHERE extnamedblink;存在dblink/file_fdw评估后卸载或限制使用未启用透明加密ksql -U system -W -c SHOW transparent_encrypt;off启用TDE保护敏感数据未启用三权分立ksql -U system -W -c SHOW sepofpowers;off启用sso/sao/system三权分立金仓与Oracle/MySQL对比对比项OracleMySQLKingbaseES等保支持需第三方工具企业版支持原生支持三权分立国密算法需配置部分支持原生SM2/SM3/SM4审计功能FGA企业版审计内置sysaudit透明加密TDETDE企业版原生TDESM4/AES强制访问控制OLS不支持原生MAC标签安全OLS不支持原生Label Security数据库防火墙需第三方需第三方原生内置等保合规难度高中低国产化优势测评执行要点1. 权限要求需要system数据库管理员、sso安全管理员、sao审计管理员三个账户分别验证操作系统需要kingbase用户权限2. 现场核查重点三权分立必须分别使用system、sso、sao三个账户登录验证权限隔离国密合规检查是否使用SM4算法进行透明加密审计独立性审计日志只能由sao查询system和sso应无权限修改审计配置备份加密核查sys_dump是否使用加密参数备份敏感数据3. 版本差异功能项V8R3V8R6V8R9三权分立支持增强完整国密算法基础完整完整透明加密AESSM4/AESSM4/AES强制访问控制不支持支持增强数据库防火墙不支持支持增强参考标准GB/T 22239-2019、GB/T 28448-2019、KingbaseES安全指南、GM/T 0054-2018国密数据库标准适用版本KingbaseES V8R3 / V8R6 / V8R9验证环境x86_64 / ARM64 / 国产化芯片飞腾/鲲鹏/龙芯/海光/兆芯/申威
返回列表