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

各位大佬,想看那种网络设备/操作系统/数据库/中间件的测评命令清单,可在留言区留言,我会以最快速度给你们总结,然后发出来!

依据 GB/T 22239-2019《信息安全技术 网络安全等级保护基本要求》第三级”安全计算环境” 条款,结合金仓数据库官方安全指南及现场测评实践,给出可直接落地的测评命令清单。

适用版本:KingbaseES V8R3 / V8R6 / V8R9


一、身份鉴别(8.1.4.1)

1.1 数据库账户与口令策略

控制项测评命令达标判据
超级管理员账户ksql -U system -W -c "SELECT * FROM sys_user WHERE usesysid=10;"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.conf | grep listen_addresses非’*’或限定IP
端口检查ss -tulnp | grep 54321默认54321,可修改
SSL连接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-E'listen_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-c"SHOW krb_server_keyfile;"# Kerberos
ksql -U system -W-c"SHOW ldapserver;"# LDAP

# 检查审计是否记录认证事件
ksql -U system -W-c"SHOW sysaudit.enable;";
ksql -U system -W-c"SHOW sysaudit.log_connections;";

二、访问控制(8.1.4.2)

2.1 账户权限管理

控制项测评命令达标判据
超级用户数量ksql -U system -W -c "SELECT usename FROM sys_user WHERE usesuper='t';"≤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-c"SELECT current_user;"

# 查看审计管理员(sao)配置  
ksql -U sao -W-c"SELECT 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 grantee='PUBLIC';
-- 应回收PUBLIC对敏感表的权限

2.2 敏感数据访问控制

# 查看行级安全策略(RLS)配置
SELECT schemaname, tablename, rowsecurity FROM sys_tables WHERE rowsecurity=true;

# 查看具体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.3)

3.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 spcname='sysaudit';

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-c"SELECT * FROM sysaudit.sysaudit_log LIMIT 5;"

四、入侵防范(8.1.4.4)

4.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-i"sm2\|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 --help | grep 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-E'sys_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-c"SELECT * 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-c"SELECT usename, usesuper FROM sys_user WHERE usesuper='t';"2>/dev/null

echo"--- 密码策略 ---"
ksql -U system -W-c"SHOW passwordcheck.enable;"2>/dev/null
ksql -U system -W-c"SHOW passwordcheck.min_length;"2>/dev/null

echo"--- 登录失败锁定 ---"
ksql -U system -W-c"SHOW sysaudit.login_lock;"2>/dev/null
ksql -U system -W-c"SHOW sysaudit.login_lock_max_failed;"2>/dev/null

echo"--- SSL配置 ---"
ksql -U system -W-c"SHOW 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-c"SHOW sepofpowers;"2>/dev/null

echo"--- 角色列表 ---"
ksql -U system -W-c"SELECT rolname FROM sys_roles WHERE rolname !~ '^pg_';"2>/dev/null

echo"--- 敏感权限检查 ---"
ksql -U system -W-c"SELECT grantee, privilege_type FROM information_schema.table_privileges WHERE grantee='PUBLIC' LIMIT 5;"2>/dev/null
echo""

echo"===== 3 安全审计 ====="
echo"--- 审计开关 ---"
ksql -U system -W-c"SHOW sysaudit.enable;"2>/dev/null
ksql -U system -W-c"SHOW sysaudit.log;"2>/dev/null

echo"--- 审计日志路径 ---"
ksql -U system -W-c"SHOW sysaudit.log_directory;"2>/dev/null
ls-ld$(ksql -U system -W-c"SHOW 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-c"SELECT version();"2>/dev/null |head-1

echo"--- 危险扩展 ---"
ksql -U system -W-c"SELECT extname FROM sys_extension WHERE extname IN ('dblink', 'file_fdw', 'postgres_fdw');"2>/dev/null

echo"--- 资源限制 ---"
ksql -U system -W-c"SHOW max_connections;"2>/dev/null
ksql -U system -W-c"SHOW statement_timeout;"2>/dev/null
echo""

echo"===== 5 可信验证 ====="
echo"--- 透明加密 ---"
ksql -U system -W-c"SHOW transparent_encrypt;"2>/dev/null
ksql -U system -W-c"SHOW transparent_encrypt_algorithm;"2>/dev/null

echo"--- 数据校验 ---"
ksql -U system -W-c"SHOW checksums;"2>/dev/null
echo""

echo"===== 6 备份恢复 ====="
echo"--- 归档模式 ---"
ksql -U system -W-c"SHOW archive_mode;"2>/dev/null
ksql -U system -W-c"SHOW archive_command;"2>/dev/null

echo"--- 备份文件检查 ---"
ls /backup/kingbase/ 2>/dev/null |head-5||echo"备份目录未找到,请核查备份策略"

echo"--- 备份计划任务 ---"
crontab-l2>/dev/null |grep-E'kingbase|sys_dump|sys_basebackup'||echo"未找到数据库备份任务"
echo""

echo"===== 7 国密支持(V8R6+) ====="
echo"--- SSL算法 ---"
ksql -U system -W-c"SHOW ssl_ciphers;"2>/dev/null |grep-i sm

echo"--- 加密算法 ---"
ksql -U system -W-c"SHOW 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.conf | grep listen_addresses'*'修改为具体IP或localhost
未启用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 extname='dblink';"存在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(企业版)原生TDE(SM4/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 / 国产化芯片(飞腾/鲲鹏/龙芯/海光/兆芯/申威)

声明:来自汪汪虚拟空间,仅代表创作者观点。链接:https://eyangzhen.com/6826.html

汪汪虚拟空间的头像汪汪虚拟空间

相关推荐

添加微信
添加微信
Ai学习群
返回顶部