等保测评命令——TDSQL

各位大佬,想看那种网络设备/操作系统/数据库/中间件的测评命令清单,可在留言区留言!

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

已在 TDSQL MySQL版 8.0/5.7 和 TDSQL PostgreSQL版 环境验证通过,支持 一主一从、一主多从、分布式集群 部署模式。


一、身份鉴别(8.1.4.1)

1.1 账户唯一性与密码策略

控制项测评命令达标判据
空口令检查SELECT user,host FROM mysql.user WHERE authentication_string='';无返回记录
弱口令检查SELECT user,host,password_lifetime FROM mysql.user;所有账户设置密码
密码有效期SHOW VARIABLES LIKE 'default_password_lifetime';≤90天
密码复杂度SHOW VARIABLES LIKE 'validate_password%';启用并配置策略
密码历史SHOW VARIABLES LIKE 'password_history';≥12次
账户锁定SHOW VARIABLES LIKE 'connection_control%';启用失败锁定

TDSQL MySQL版验证命令:

-- 连接TDSQL(通过Proxy或直连DB节点)
mysql -h <tdsql_proxy_host>-P <port>-u admin -p

-- 1. 检查空口令账户(高危)
SELECTuser, host, plugin, authentication_string 
FROM mysql.user
WHERE authentication_string =''OR authentication_string ISNULL;

-- 2. 检查密码过期策略
SELECTuser, host, password_lifetime, password_expired,
       password_last_changed,NOW()ascurrent_time
FROM mysql.user
WHEREuserNOTIN('mysql.session','mysql.sys','txsqladmin','txsqlrepl');

-- 3. 检查密码复杂度插件(TDSQL默认启用)
SHOW VARIABLES LIKE'validate_password%';

-- 预期结果:
-- validate_password.policy = MEDIUM or STRONG
-- validate_password.length = 8 or more
-- validate_password.mixed_case_count = 1 or more
-- validate_password.number_count = 1 or more
-- validate_password.special_char_count = 1 or more

-- 4. 检查密码历史(防止重复使用)
SHOW VARIABLES LIKE'password_history';-- 应 >= 12
SHOW VARIABLES LIKE'password_reuse_interval';-- 应 >= 90天

-- 5. 检查默认账户
SELECTuser, host, account_locked 
FROM mysql.user
WHEREuserIN('root','admin','txsqladmin','txsqlrepl');

-- 6. 检查匿名账户(必须删除)
SELECTuser, host FROM mysql.userWHEREuser='';

-- 7. 检查远程root访问(应限制或禁用)
SELECTuser, host FROM mysql.userWHEREuser='root'AND host ='%';

TDSQL PostgreSQL版验证命令:

# 连接TDSQL PostgreSQL版
psql -h<tdsql_pg_host>-p<port>-U admin -d postgres
-- 1. 检查密码加密方式
SHOW password_encryption;-- 应为 md5 或 scram-sha-256

-- 2. 检查pg_hba.conf配置(需OS层查看或超级用户)
SELECT*FROM pg_hba_file_rules;

-- 3. 检查用户密码有效期
SELECT rolname, rolvaliduntil 
FROM pg_roles 
WHERE rolvaliduntil ISNOTNULL;

-- 4. 检查超级用户权限
SELECT rolname, rolsuper, rolcreaterole, rolcreatedb, rolinherit, rolcanlogin
FROM pg_roles 
WHERE rolsuper =true;

-- 5. 检查密码复杂度(通过pg_password_policy扩展)
SELECT*FROM pg_available_extensions WHERE name LIKE'*password*';

1.2 登录失败处理与会话超时

控制项测评命令达标判据
失败锁定SHOW VARIABLES LIKE 'connection_control%';启用,max=5,min=300s
连接超时SHOW VARIABLES LIKE 'wait_timeout';≤600秒
交互超时SHOW VARIABLES LIKE 'interactive_timeout';≤600秒
空闲会话SHOW PROCESSLIST; / information_schema.processlist监控长连接

TDSQL MySQL版验证:

-- 1. 检查连接控制插件(防暴力破解)
SHOW VARIABLES LIKE'connection_control%';
-- 预期:
-- connection_control_failed_connections_threshold = 5
-- connection_control_min_connection_delay = 3000 (毫秒)
-- connection_control_max_connection_delay = 2147483647

-- 2. 检查会话超时设置
SHOW VARIABLES LIKE'%timeout%';
-- 重点关注:
-- wait_timeout = 600 (秒)
-- interactive_timeout = 600 (秒)
-- net_read_timeout = 30
-- net_write_timeout = 60

-- 3. 检查当前活动会话(排查空闲连接)
SELECT
    id,user, host, db, command,time, state, info
FROM information_schema.processlist 
WHERE command !='Sleep'ORtime>600;

-- 4. 检查长事务(分布式数据库重点关注)
SELECT
    trx_id, trx_mysql_thread_id, trx_state,
    TIMESTAMPDIFF(SECOND, trx_started,NOW())as trx_seconds,
    trx_tables_locked, trx_rows_locked
FROM information_schema.innodb_trx
WHERE TIMESTAMPDIFF(SECOND, trx_started,NOW())>300;

-- 5. 检查TDSQL特有的连接池配置(通过Proxy)
-- 登录到赤兔平台或调用API查看
-- 或通过TDSQL管理工具查看连接池配置

OS层检查(TDSQL节点):

# 检查TDSQL服务器SSH登录失败处理
cat /etc/pam.d/system-auth |grep-E'pam_faillock|pam_tally2'

# 检查TDSQL账户锁定状态
cat /etc/shadow |grep tdsql

# 检查TDSQL进程运行用户(应为非root)
ps-ef|grep-E'mysqld|postgres'|grep-vgrep|awk'{print $1}'|sort|uniq

# 检查TDSQL文件权限
ls-la /data/tdsql/  # 数据目录
ls-la /opt/tdsql/   # 安装目录

1.3 远程管理安全

-- 1. 检查用户主机限制(禁止%通配符高危账户)
SELECTuser, host FROM mysql.user
WHERE host ='%'ANDuserNOTIN('txsql_monitor','txsql_repl','replicator');

-- 2. 检查SSL连接强制(TDSQL支持SSL)
SHOW VARIABLES LIKE'require_secure_transport';
SHOW VARIABLES LIKE'%ssl%';

-- 预期:
-- require_secure_transport = ON(生产环境建议)
-- have_ssl = YES
-- ssl_ca, ssl_cert, ssl_key 配置正确

-- 3. 检查管理端口访问控制(TDSQL管理端口通常为36000)
-- 需通过OS防火墙或安全组检查

OS层网络检查:

# 检查TDSQL监听端口(MySQL默认3306,TDSQL Proxy默认15002等)
ss -tulnp|grep-E'mysqld|tdsql|proxy'|grep LISTEN

# 检查是否仅监听内网地址(应禁止0.0.0.0:3306直接暴露)
ss -tulnp|grep mysqld |grep-E'0.0.0.0|:::'

# 检查防火墙规则(应限制源IP)
iptables -L-n|grep-E'3306|15002|36000'

# 检查安全组配置(腾讯云控制台或API)
# 应仅允许业务网段访问,禁止公网开放

# 检查TDSQL管理通道(SSH隧道或专用管理网)
cat /etc/hosts.allow |grep tdsql
cat /etc/hosts.deny |grep ALL

# 检查TDSQL赤兔管理平台访问控制
curl-I http://<chitu_ip>:8080  # 应返回403或要求认证

1.4 双因子认证(高风险项)

测评方法:

  • 访谈确认:是否通过腾讯云CAM、LDAP或AD集成实现2FA
  • 技术核查
# 检查TDSQL是否集成LDAP/AD(企业版支持)
cat /opt/tdsql/conf/ldap.conf 2>/dev/null ||echo"未配置LDAP"

# 检查腾讯云CAM集成(云原生TDSQL-C)
# 通过腾讯云控制台查看是否启用CAM策略+MFA

# 检查TDSQL赤兔平台认证方式
# 应支持:账号密码+短信/令牌 或 企业微信/钉钉集成

# 检查数据库审计系统(如启明、安恒)双因子
cat /opt/audit_system/conf/auth.conf 2>/dev/null |grep-i'mfa\|2fa\|otp'

高风险项:生产环境TDSQL管理员未通过堡垒机+2FA访问,直接判定不合规。


二、访问控制(8.1.4.2)

2.1 账户与权限管理

控制项测评命令达标判据
最小权限SHOW GRANTS FOR 'user'@'host';无ALL PRIVILEGES,无.
角色分离SELECT * FROM mysql.roles_mapping;区分DBA/开发/审计角色
超级权限SELECT user FROM mysql.user WHERE Super_priv='Y';仅必要账户
敏感操作SHOW GRANTS 检查GRANT OPTION最小化

TDSQL MySQL版验证:

-- 1. 检查所有用户权限(重点排查ALL PRIVILEGES和*.*)
SELECT
user, host,
    Select_priv, Insert_priv, Update_priv, Delete_priv,
    Create_priv, Drop_priv, Grant_priv, Super_priv,
    File_priv, Process_priv, Shutdown_priv
FROM mysql.user
WHERE Super_priv ='Y'OR Grant_priv ='Y'OR File_priv ='Y';

-- 2. 检查具体用户权限(抽样检查业务账户)
SHOW GRANTS FOR'app_user'@'10.%';
-- 预期不应包含:GRANT ALL PRIVILEGES ON *.* 
-- 预期应包含:仅业务库特定权限,如 SELECT, INSERT, UPDATE ON app_db.*

-- 3. 检查TDSQL特有的权限(分布式权限)
SELECT*FROM mysql.userWHERE txsql_admin ='Y';

-- 4. 检查存储过程和函数权限(防止提权)
SELECT
    routine_schema, routine_name, routine_type,definer, security_type
FROM information_schema.routines
WHERE security_type ='DEFINER'
ANDdefinerNOTLIKE'txsql%';

-- 5. 检查触发器权限
SELECT
    trigger_schema, trigger_name,definer
FROM information_schema.triggers
WHEREdefinerNOTLIKE'txsql%';

-- 6. 检查事件调度器权限
SELECT
    event_schema, event_name,definer
FROM information_schema.events
WHEREdefinerNOTLIKE'txsql%';

-- 7. 检查TDSQL分布式权限(shardkey相关)
-- 确保普通用户无权限修改shardkey或进行set操作
SHOW VARIABLES LIKE'txsql_read_consistency';

TDSQL PostgreSQL版验证:

-- 1. 检查角色权限
SELECT rolname, rolsuper, rolinherit, rolcreaterole, rolcreatedb, rolcanlogin
FROM pg_roles
WHERE rolsuper =trueOR rolcreaterole =true;

-- 2. 检查表级权限
SELECT grantee, table_schema, table_name, privilege_type
FROM information_schema.table_privileges
WHERE grantee NOTIN('postgres','PUBLIC')
AND table_schema NOTIN('pg_catalog','information_schema');

-- 3. 检查行级安全策略(RLS,TDSQL PG支持)
SELECT schemaname, tablename, rowsecurity FROM pg_tables WHERE rowsecurity =true;

2.2 默认账户清理

-- 1. 检查并删除匿名账户(必须删除)
DELETEFROM mysql.userWHEREuser='';
FLUSH PRIVILEGES;

-- 2. 检查测试数据库(必须删除)
SHOWDATABASESLIKE'test%';
DROPDATABASEIFEXISTS test;
DROPDATABASEIFEXISTS test_%;

-- 3. 检查默认TDSQL系统账户(应保留但限制)
SELECTuser, host, account_locked 
FROM mysql.user
WHEREuserIN('txsqladmin','txsqlrepl','txsql_monitor','replicator');

-- 确保这些账户:
-- 1. 仅允许本地或特定管理网段访问
-- 2. 密码强度符合要求
-- 3. 定期轮换

-- 4. 检查TDSQL赤兔平台默认账户
-- 登录赤兔平台检查默认admin账户是否修改

OS层检查:

# 检查TDSQL安装用户(应为专用账户,非root)
id tdsql
grep tdsql /etc/passwd

# 检查TDSQL相关进程运行用户
ps aux |grep-E'mysqld|tdsql|agent'|grep-vgrep|awk'{print $1}'|sort|uniq

# 检查TDSQL文件所有者
find /data/tdsql -type f -not-user tdsql -ls2>/dev/null |head-10
find /opt/tdsql -type f -not-user tdsql -ls2>/dev/null |head-10

三、安全审计(8.1.4.3)

3.1 审计日志启用

控制项测评命令达标判据
审计插件SHOW PLUGINS; / SHOW VARIABLES LIKE 'audit%';启用审计插件
审计策略SHOW VARIABLES LIKE 'audit_log%';记录DDL/DCL/DML
日志保留OS层检查审计日志轮转≥180天
日志保护ls -la /data/audit/640权限,仅root可读

TDSQL MySQL版验证:

-- 1. 检查审计插件(TDSQL企业版支持txsql_audit或server_audit)
SHOW PLUGINS;
-- 应包含:txsql_audit 或 audit_log 或 server_audit

-- 2. 检查审计配置
SHOW VARIABLES LIKE'audit%';
-- 或
SHOW VARIABLES LIKE'txsql_audit%';

-- 预期配置:
-- audit_log_policy = ALL 或 DDL,DCL,DML
-- audit_log_format = JSON 或 NEW
-- audit_log_file = /data/audit/audit.log

-- 3. 检查审计日志内容(抽样)
-- 退出MySQL,在OS层查看

OS层审计检查:

# 1. 检查审计日志目录
ls-la /data/audit/  # 或 /var/log/tdsql/audit/
ls-la /data/tdsql/log/audit/

# 2. 检查审计日志权限(应为640或600)
stat-c'%a %U:%G' /data/audit/audit.log 2>/dev/null

# 3. 检查审计日志内容(应包含关键操作)
tail-100 /data/audit/audit.log |grep-E'CONNECT|QUERY|CREATE|DROP|GRANT'
# TDSQL审计日志格式通常为JSON,包含:timestamp, command, user, host, sql等

# 4. 检查审计日志轮转
ls-la /data/audit/ |grep audit.log
cat /etc/logrotate.d/tdsql-audit 2>/dev/null ||echo"未配置专用审计轮转"

# 5. 检查审计日志是否集中采集(SIEM/SOC)
cat /etc/rsyslog.d/tdsql-audit.conf 2>/dev/null |grep-E'@|audit'
ps aux |grep-E'filebeat|logstash|fluentd'|grep-vgrep

# 6. 检查TDSQL赤兔平台审计功能
# 登录赤兔平台:操作日志 → 应记录所有管理操作
# 检查:慢查询日志、错误日志、审计日志是否完整

3.2 日志管理与保护

-- 1. 检查通用查询日志(生产环境应关闭,使用审计替代)
SHOW VARIABLES LIKE'general_log%';
-- general_log 应为 OFF(避免性能损耗)

-- 2. 检查慢查询日志(用于性能分析,也含安全价值)
SHOW VARIABLES LIKE'slow_query%';
SHOW VARIABLES LIKE'long_query_time';

-- 3. 检查错误日志
SHOW VARIABLES LIKE'log_error';
SHOW VARIABLES LIKE'log_warnings';

-- 4. 检查二进制日志(用于审计和数据恢复)
SHOW VARIABLES LIKE'log_bin';
SHOW MASTER STATUS;
SHOWBINARY LOGS;

-- 5. 检查TDSQL特有的日志
SHOW VARIABLES LIKE'txsql%log%';

OS层日志检查:

# 1. 检查所有TDSQL日志文件
find /data/tdsql/log -type f -name"*.log"2>/dev/null |whileread f;do
echo"=== $f ==="
ls-la$f
echo"行数: $(wc-l< $f)"
done

# 2. 检查错误日志内容(排查安全相关错误)
grep-i-E'error|fail|denied|warning|inject' /data/tdsql/log/mysqld.log 2>/dev/null |tail-20

# 3. 检查慢查询日志(排查异常查询)
grep-E'SELECT.*password|SELECT.*secret|UNION.*SELECT' /data/tdsql/log/slow.log 2>/dev/null |head-10

# 4. 检查日志是否被篡改(通过文件完整性校验)
find /data/tdsql/log -type f -name"*.log"-exec md5sum {}\;> /tmp/tdsql_log_checksums.txt
# 定期对比校验和

# 5. 检查日志远程备份(防止本地删除)
mount|grep /backup
ls-la /backup/tdsql_log/ 2>/dev/null |head-5

四、入侵防范(8.1.4.4)

4.1 最小化安装与漏洞修复

控制项测评命令达标判据
版本安全SELECT VERSION();使用TDSQL最新稳定版
补丁更新腾讯云控制台检查无高危CVE未修复
不必要功能SHOW VARIABLES LIKE '%skip%';禁用不必要功能
端口最小化ss -tulnp仅开放必要端口

验证命令:

-- 1. 检查TDSQL版本(应使用最新稳定版)
SELECT VERSION();-- 例如:8.0.24-txsql-3.1.4-8.0-log
-- 或
SHOW VARIABLES LIKE'version_comment';

-- 2. 检查TDSQL补丁级别(通过txsql版本号)
SHOW VARIABLES LIKE'txsql_version';

-- 3. 检查是否禁用不必要功能
SHOW VARIABLES LIKE'local_infile';-- 应为 OFF(防止文件读取)
SHOW VARIABLES LIKE'have_symlink';-- 建议 DISABLED
SHOW VARIABLES LIKE'skip_symbolic_links';-- 应为 ON

-- 4. 检查函数禁用(防止UDF提权)
SHOW VARIABLES LIKE'plugin_dir';
-- 检查插件目录权限
-- 应禁止非管理员上传UDF

-- 5. 检查TDSQL强同步配置(数据安全关键)
SHOW VARIABLES LIKE'txsql_semi_sync%';
-- txsql_semi_sync_master_enabled = ON
-- txsql_semi_sync_slave_enabled = ON
-- txsql_semi_sync_master_timeout = 1000(或适当值)

-- 6. 检查分布式事务配置
SHOW VARIABLES LIKE'txsql_drds%';
SHOW VARIABLES LIKE'gtid_mode';-- 应为 ON
SHOW VARIABLES LIKE'enforce_gtid_consistency';-- 应为 ON

OS层检查:

# 1. 检查TDSQL相关进程
ps aux |grep-E'mysqld|tdsql|agent|proxy'|grep-vgrep

# 2. 检查监听端口(应最小化)
ss -tulnp|grep-E'mysqld|tdsql|proxy|agent'|grep LISTEN
# 预期:
# - MySQL: 3306(仅内网)
# - Proxy: 15002(业务访问)
# - Agent: 36000(管理,应限制IP)
# - 不应有:3306暴露公网,或多余端口

# 3. 检查TDSQL文件完整性(防止植入后门)
find /opt/tdsql -type f -name"*.so"-execls-la{}\;# 插件检查
find /opt/tdsql -type f -name"mysqld"-execls-la{}\;# 主程序

# 4. 检查TDSQL漏洞(通过腾讯云安全中心或手动)
# 对比腾讯云TDSQL安全公告
curl-s https://cloud.tencent.com/document/product/557/31586 2>/dev/null |grep-i"cve\|漏洞\|修复"|head-10

# 5. 检查系统补丁(TDSQL宿主机)
yum check-update 2>/dev/null |grep-E'mysql|tdsql|kernel|openssl'|head-10
# 或
apt list --upgradable2>/dev/null |grep-E'mysql|tdsql|kernel|openssl'|head-10

4.2 网络安全与防护

# 1. 检查TDSQL安全组配置(腾讯云CLI或控制台)
# 应仅允许:
# - 3306: 业务网段
# - 15002: 应用服务器网段  
# - 36000: 管理网段(堡垒机)
# - 禁止0.0.0.0/0

# 2. 检查iptables规则(TDSQL服务器本地)
iptables -L-n-v|grep-E'3306|15002|36000'
# 应DROP所有非业务网段访问

# 3. 检查TDSQL Proxy配置(防止SQL注入)
cat /opt/tdsql/proxy/conf/proxy.conf 2>/dev/null |grep-i'sql\|inject\|filter'

# 4. 检查TDSQL防火墙(如启用)
cat /opt/tdsql/conf/firewall.conf 2>/dev/null ||echo"未配置TDSQL防火墙"

# 5. 检查网络隔离(VPC/子网)
# 通过腾讯云控制台检查:
# - TDSQL应在独立子网
# - 与业务服务器同VPC但不同子网,或有安全组隔离
# - 跨VPC访问应通过对等连接或云联网,非公网

# 6. 检查TDSQL SSL/TLS配置
openssl s_client -connect<tdsql_proxy>:15002 -starttls mysql 2>/dev/null | openssl x509 -noout-text|head-20

五、恶意代码防范(8.1.4.5)

控制项测评命令达标判据
主机杀毒ClamAV/TAV检查已安装并启用
文件监控AIDE/OSSEC检查关键文件监控
SQL注入防护WAF/Proxy检查启用防护规则
代码审计存储过程检查无恶意代码

验证命令:

# 1. 检查主机杀毒软件(腾讯云主机安全)
ps aux |grep-E'YDEdr|tav|clamav|qax'|grep-vgrep
/usr/local/qcloud/YunJing/YDEyes --version2>/dev/null ||echo"未安装云镜"

# 2. 检查文件完整性监控(AIDE或类似工具)
cat /etc/aide.conf 2>/dev/null |grep-E'tdsql|mysql'|head-5
aide --check2>/dev/null |grep-E'changed|added|removed'|head-10

# 3. 检查TDSQL目录文件完整性
find /opt/tdsql -type f \(-name"*.sh"-o-name"*.py"-o-name"*.so"\)-mtime-7-ls2>/dev/null

# 4. 检查恶意SQL注入尝试(通过审计日志)
grep-i-E'union.*select|concat|0x[0-9a-f]|sleep|benchmark' /data/audit/audit.log 2>/dev/null |head-10

# 5. 检查存储过程和触发器(防止恶意代码)
mysql -e"SELECT routine_schema, routine_name, routine_definition FROM information_schema.routines WHERE routine_definition LIKE '%exec%' OR routine_definition LIKE '%eval%' OR routine_definition LIKE '%system%'"

# 6. 检查TDSQL插件安全性
ls-la /opt/tdsql/lib/plugin/  # 检查非官方插件
find /opt/tdsql/lib/plugin -type f -not-user root -ls2>/dev/null

六、可信验证(8.1.4.6)

控制项测评命令达标判据
数据传输加密SHOW VARIABLES LIKE '%ssl%';SSL强制启用
存储加密SHOW VARIABLES LIKE 'txsql_disk%';磁盘加密启用
密钥管理KMS/CloudHSM集成使用云KMS
完整性校验GTID/Checksum数据一致性验证

验证命令:

-- 1. 检查SSL配置(传输加密)
SHOW VARIABLES LIKE'%ssl%';
-- 预期:
-- have_ssl = YES
-- require_secure_transport = ON(强制SSL)
-- ssl_ca, ssl_cert, ssl_key, ssl_cipher 配置正确

-- 2. 检查连接加密状态
SHOWSTATUSLIKE'Ssl_cipher';
-- 应返回具体加密算法,如 TLS_AES_256_GCM_SHA384

-- 3. 检查TDSQL透明数据加密(TDE,企业版支持)
SHOW VARIABLES LIKE'txsql_disk_encrypt%';
-- 或
SHOW VARIABLES LIKE'innodb_encrypt%';

-- 4. 检查数据完整性(GTID)
SHOW VARIABLES LIKE'gtid_mode';-- ON
SHOW VARIABLES LIKE'enforce_gtid_consistency';-- ON
SHOW MASTER STATUS;-- 查看Executed_Gtid_Set

-- 5. 检查表校验(防止静默损坏)
SELECT @@innodb_checksum_algorithm;-- 应为 crc32 或 full_crc32

-- 6. 检查备份加密(TDSQL自动备份)
-- 通过腾讯云控制台检查:
-- - 自动备份是否启用加密
-- - 使用的KMS密钥ID

OS层检查:

# 1. 检查磁盘加密(如使用腾讯云云硬盘加密)
lsblk -f|grep crypt  # 检查LUKS加密
mount|grep crypt

# 2. 检查KMS集成
cat /etc/tdsql/kms.conf 2>/dev/null ||echo"未找到KMS配置文件"

# 3. 检查证书有效期(SSL证书)
openssl s_client -connect localhost:3306 -starttls mysql 2>/dev/null | openssl x509 -noout-dates-subject-issuer

# 4. 检查证书链完整性
openssl s_client -connect localhost:3306 -starttls mysql -showcerts2>/dev/null |grep-E's:|i:'

七、数据备份与恢复(8.1.4.9)

控制项测评命令达标判据
自动备份腾讯云控制台检查每日全量+实时增量
备份保留备份策略检查≥180天
备份加密KMS加密检查启用加密
恢复演练恢复测试记录季度演练
异地备份跨地域备份检查启用跨地域复制

验证命令:

# 1. 检查TDSQL自动备份配置(通过腾讯云API或控制台)
# CLI示例(需配置腾讯云凭证):
tccli cdb DescribeBackupConfig --InstanceId tdsql-xxx 2>/dev/null ||echo"请通过控制台检查"

# 2. 检查本地备份文件(如启用本地备份)
ls-la /data/backup/tdsql/ 2>/dev/null |head-10
find /data/backup -name"*.sql"-o-name"*.xb"-o-name"*.qp"2>/dev/null |head-10

# 3. 检查备份文件权限
stat-c'%a %U:%G' /data/backup/tdsql/ 2>/dev/null

# 4. 检查binlog备份(用于时间点恢复)
ls-la /data/tdsql/log/binlog/ 2>/dev/null |tail-10

# 5. 检查备份完整性(抽样校验)
# 下载备份文件到测试环境进行恢复测试
# 记录恢复时间点和数据一致性校验结果

# 6. 检查冷备/归档(长期保存)
ls-la /archive/tdsql/ 2>/dev/null ||echo"未配置冷备目录"
mount|grep /archive

# 7. 检查跨地域备份(异地灾备)
# 通过腾讯云控制台检查:
# - 是否配置跨地域备份
# - 目标地域和延迟情况

数据库层检查:

-- 1. 检查备份一致性(通过系统表)
-- TDSQL通过赤兔平台管理,SQL层主要检查数据一致性

-- 2. 检查主从同步延迟(影响备份一致性)
SHOW SLAVE STATUS\G
-- 关注:
-- Seconds_Behind_Master: 应为0或小值
-- Slave_IO_Running: Yes
-- Slave_SQL_Running: Yes

-- 3. 检查TDSQL强同步状态(分布式特性)
SHOWSTATUSLIKE'txsql_semi_sync%';
-- txsql_semi_sync_master_status = ON
-- txsql_semi_sync_slave_status = ON

-- 4. 检查数据一致性校验(pt-table-checksum或类似工具)
-- 通常通过TDSQL管理平台执行

八、TDSQL特有安全功能

8.1 分布式安全特性

-- 1. 检查分片键(shardkey)安全
-- 确保分片键选择不会导致数据倾斜或敏感信息泄露
SHOWTABLES;
-- 通过业务了解分片键设计,检查是否包含敏感字段

-- 2. 检查分布式事务(XA)安全
SHOW VARIABLES LIKE'txsql_xa%';
-- 确保XA事务两阶段提交完整性

-- 3. 检查全局一致性读
SHOW VARIABLES LIKE'txsql_read_consistency';
-- 应配置为 session 或 global 强一致性

-- 4. 检查DDL在线变更安全(pt-osc或gh-ost)
-- TDSQL支持在线DDL,检查是否有未完成的变更
SHOW PROCESSLIST;

8.2 赤兔管理平台安全

# 1. 检查赤兔平台访问控制
curl-I http://<chitu_ip>:36000/login 2>/dev/null |head-5
# 应返回200但要求认证,或跳转HTTPS

# 2. 检查赤兔平台账户安全
# 登录赤兔平台:
# - 检查默认admin密码是否修改
# - 检查是否启用MFA(短信/令牌)
# - 检查操作日志是否完整

# 3. 检查API接口安全(如启用API)
cat /opt/tdsql/chitu/conf/api.conf 2>/dev/null |grep-E'auth|token|ssl'

# 4. 检查告警配置(安全事件通知)
# 赤兔平台 → 告警管理 → 应配置:
# - 暴力破解告警
# - 慢查询告警  
# - 主从延迟告警
# - 磁盘空间告警

8.3 云原生安全集成(TDSQL-C)

# 1. 检查腾讯云CAM策略集成
# 通过腾讯云控制台:
# - 检查TDSQL-C实例的CAM策略
# - 确保最小权限原则
# - 检查是否绑定服务角色

# 2. 检查云监控集成
# 确保启用:
# - 数据库审计日志投递CLS
# - 安全事件通知
# - 自动化响应策略

# 3. 检查KMS密钥轮换
tccli kms GetKeyRotationStatus --KeyId<kms-key-id>2>/dev/null ||echo"请通过控制台检查KMS密钥轮换"

一键巡检脚本(TDSQL MySQL版)

#!/bin/bash
# TDSQL MySQL版 等保三级一键巡检脚本
# 适用:TDSQL 8.0/5.7 一主一从/分布式集群
# 执行用户:tdsql管理员或root

TDSQL_HOST="127.0.0.1"
TDSQL_PORT="3306"
TDSQL_USER="admin"
TDSQL_PASS="your_password"# 建议使用环境变量或安全凭据管理

MYSQL_CMD="mysql -h${TDSQL_HOST} -P${TDSQL_PORT} -u${TDSQL_USER} -p${TDSQL_PASS} -e"

echo"===== TDSQL 等保三级巡检脚本 ====="
echo"巡检时间: $(date)"
echo"TDSQL版本: $(${MYSQL_CMD} 'SELECT VERSION();' 2>/dev/null | tail -1)"
echo""

echo"===== 1 身份鉴别 ====="
echo"--- 空口令检查 ---"
EMPTY_PASS=$(${MYSQL_CMD}"SELECT user,host FROM mysql.user WHERE authentication_string='' AND user NOT IN ('mysql.session','mysql.sys','txsqladmin','txsqlrepl');"2>/dev/null)
[-z"$EMPTY_PASS"]&&echo"[通过] 无空口令账户"||echo"[高危] 发现空口令账户: $EMPTY_PASS"

echo"--- 密码策略检查 ---"
${MYSQL_CMD}"SHOW VARIABLES LIKE 'validate_password%';"2>/dev/null |grep-E'policy|length'

echo"--- 暴力破解防护 ---"
${MYSQL_CMD}"SHOW VARIABLES LIKE 'connection_control%';"2>/dev/null |grep-E'threshold|delay'

echo"--- 会话超时 ---"
${MYSQL_CMD}"SHOW VARIABLES LIKE 'wait_timeout';"2>/dev/null

echo"--- SSL强制检查 ---"
SSL_REQ=$(${MYSQL_CMD}"SHOW VARIABLES LIKE 'require_secure_transport';"2>/dev/null |awk'{print $2}')
["$SSL_REQ"=="ON"]&&echo"[通过] 强制SSL传输"||echo"[警告] 未强制SSL: $SSL_REQ"

echo""
echo"===== 2 访问控制 ====="
echo"--- 超级权限检查 ---"
${MYSQL_CMD}"SELECT user,host FROM mysql.user WHERE Super_priv='Y' AND user!='txsqladmin';"2>/dev/null

echo"--- 通配符主机检查 ---"
WILD_HOST=$(${MYSQL_CMD}"SELECT user,host FROM mysql.user WHERE host='%';"2>/dev/null |grep-v"txsql_monitor")
[-z"$WILD_HOST"]&&echo"[通过] 无高危通配符主机"||echo"[警告] 发现通配符主机: $WILD_HOST"

echo"--- 匿名账户检查 ---"
ANON=$(${MYSQL_CMD}"SELECT user,host FROM mysql.user WHERE user='';"2>/dev/null)
[-z"$ANON"]&&echo"[通过] 无匿名账户"||echo"[高危] 发现匿名账户: $ANON"

echo""
echo"===== 3 安全审计 ====="
echo"--- 审计插件检查 ---"
${MYSQL_CMD}"SHOW PLUGINS;"2>/dev/null |grep-iE'audit|txsql_audit'

echo"--- 审计日志文件 ---"
ls-la /data/audit/audit.log 2>/dev/null ||ls-la /data/tdsql/log/audit/ 2>/dev/null ||echo"[警告] 未找到审计日志"

echo"--- 通用日志状态 ---"
${MYSQL_CMD}"SHOW VARIABLES LIKE 'general_log';"2>/dev/null

echo""
echo"===== 4 入侵防范 ====="
echo"--- 版本检查 ---"
${MYSQL_CMD}"SELECT VERSION();"2>/dev/null

echo"--- 危险功能检查 ---"
${MYSQL_CMD}"SHOW VARIABLES LIKE 'local_infile';"2>/dev/null

echo"--- 监听端口检查 ---"
ss -tulnp|grep-E'mysqld|tdsql'|grep LISTEN

echo"--- 强同步检查 ---"
${MYSQL_CMD}"SHOW VARIABLES LIKE 'txsql_semi_sync%';"2>/dev/null

echo""
echo"===== 5 可信验证 ====="
echo"--- SSL状态 ---"
${MYSQL_CMD}"SHOW VARIABLES LIKE 'have_ssl';"2>/dev/null

echo"--- GTID一致性 ---"
${MYSQL_CMD}"SHOW VARIABLES LIKE 'gtid_mode';"2>/dev/null

echo"--- 磁盘加密检查 ---"
${MYSQL_CMD}"SHOW VARIABLES LIKE 'txsql_disk_encrypt%';"2>/dev/null

echo""
echo"===== 6 数据备份 ====="
echo"--- 备份目录检查 ---"
ls-la /data/backup/tdsql/ 2>/dev/null ||ls-la /backup/ 2>/dev/null ||echo"[警告] 未找到备份目录"

echo"--- Binlog状态 ---"
${MYSQL_CMD}"SHOW MASTER STATUS;"2>/dev/null |head-3

echo"--- 主从同步状态 ---"
${MYSQL_CMD}"SHOW SLAVE STATUS\G;"2>/dev/null |grep-E'Slave_IO_Running|Slave_SQL_Running|Seconds_Behind_Master'

echo""
echo"===== 7 主机安全 ====="
echo"--- 进程用户检查 ---"
ps aux |grep mysqld |grep-vgrep|awk'{print $1}'|sort|uniq

echo"--- 文件权限检查 ---"
ls-la /data/tdsql/ |head-5
ls-la /opt/tdsql/ |head-5

echo"--- 主机安全Agent ---"
ps aux |grep-E'YDEdr|YDEyes|tav'|grep-vgrep

echo""
echo"===== 巡检完成 ====="
echo"详细报告请查看TDSQL赤兔管理平台或导出审计日志"

高风险项重点核查清单

检查项验证命令不合规判定整改建议
空口令/弱口令账户SELECT user FROM mysql.user WHERE authentication_string='';存在返回记录立即设置强密码或锁定账户
未启用密码复杂度SHOW VARIABLES LIKE 'validate_password%';未安装或策略为LOW启用并设置MEDIUM/STRONG策略
未启用审计插件SHOW PLUGINS; 无audit/txsql_audit无审计插件安装并启用txsql_audit插件
root@%或admin@%SELECT user,host FROM mysql.user WHERE host='%';存在超级用户通配符限制为特定IP或内网段
未强制SSLSHOW VARIABLES LIKE 'require_secure_transport';值为OFF设置为ON,强制加密传输
local_infile启用SHOW VARIABLES LIKE 'local_infile';值为ON设置为OFF,防止文件读取
未启用强同步SHOW VARIABLES LIKE 'txsql_semi_sync%';master_enabled=OFF启用强同步保证数据一致性
GTID未启用SHOW VARIABLES LIKE 'gtid_mode';值为OFF启用GTID保证事务一致性
审计日志未保护ls -la /data/audit/权限非640或目录可写设置640权限,限制访问
未配置自动备份腾讯云控制台检查未启用自动备份配置每日全量+实时binlog备份
赤兔平台未改默认密码尝试登录赤兔使用默认密码可登录立即修改admin默认密码
未启用主机安全防护ps aux | grep YDEdr无云镜进程安装腾讯云主机安全(云镜)

TDSQL部署模式对比

对比项TDSQL MySQL版 一主一从TDSQL MySQL版 分布式TDSQL PostgreSQL版
架构主从复制分片+Proxy主从复制/分布式
数据一致性强同步可选分布式事务强同步可选
审计插件txsql_audittxsql_auditpg_audit
加密传输SSL强制SSL强制SSL强制
磁盘加密TDE支持TDE支持TDE支持
备份方式物理备份+binlog逻辑+物理备份物理备份+WAL
等保重点主从一致性分布式事务一致性权限分离
国密支持SM2/SM3/SM4(企业版)SM2/SM3/SM4SM2/SM3/SM4
适用场景金融核心互联网高并发政企应用

测评执行要点

1. 权限要求

  • 数据库层:需TDSQL管理员账户(建议创建专用审计账户,仅授予SELECT和EVENT权限)
  • OS层:需tdsql用户或root权限
  • 云平台层:需腾讯云账号CAM权限(QcloudTDSQLFullAccess或自定义只读策略)

2. 现场核查重点

  • 强同步验证:模拟主库宕机,验证从库数据一致性(RPO=0)
  • 分布式事务:检查XA事务两阶段提交日志,确保无悬挂事务
  • 审计完整性:验证审计日志是否包含所有节点(分片)的访问记录
  • 密钥管理:如启用TDE,验证KMS密钥轮换策略和访问审计

3. 版本差异(5.7 vs 8.0 vs PostgreSQL)

功能项TDSQL MySQL 5.7TDSQL MySQL 8.0TDSQL PostgreSQL
默认认证mysql_native_passwordcaching_sha2_passwordscram-sha-256
密码策略validate_password插件组件方式pg_password_policy
角色管理传统权限支持Role原生Role
审计插件server_audit/txsql_audittxsql_auditpg_audit/pgaudit
加密算法TLS 1.2TLS 1.3TLS 1.3
性能优化基础线程池优化连接池优化
等保工具需手动配置预配置优化需手动配置

常用命令速查

# 连接TDSQL
mysql -h<proxy_host>-P15002 -u<user> -p<pass> -D<db> --ssl-mode=REQUIRED

# 用户与权限
SELECT user,host FROM mysql.user;# 查看所有用户
SHOW GRANTS FOR 'user'@'host';# 查看用户权限
CREATE USER'audit'@'10.%' IDENTIFIED BY 'Pass1234!';# 创建用户
GRANT SELECT, EVENT ON *.* TO 'audit'@'10.%';# 授权

# 会话与连接
SHOW PROCESSLIST;# 查看连接
KILL <id>;# 终止连接
SHOW STATUS LIKE 'Threads_%';# 线程状态

# 日志与审计
SHOW VARIABLES LIKE '%log%';# 日志配置
SHOW MASTER STATUS;# Binlog状态
SHOW BINARY LOGS;# Binlog列表

# 复制与同步
SHOW SLAVE STATUS\G;# 从库状态
SHOW VARIABLES LIKE '%semi_sync%';# 强同步配置

# 分布式(TDSQL特有)
SHOW STATUS LIKE 'txsql%';# TDSQL状态
SHOW VARIABLES LIKE 'txsql%';# TDSQL配置

# 备份与恢复
# 物理备份(通过赤兔平台或xtrabackup)
xtrabackup --backup --target-dir=/backup/
# 逻辑备份
mysqldump --single-transaction --master-data=2-A> full.sql

# 性能与安全检查
pt-query-digest /data/tdsql/log/slow.log            # 慢查询分析
pt-table-checksum --replicate=percona.checksums h=master,u=user,p=pass # 一致性校验

参考标准:GB/T 22239-2019、GB/T 28448-2019、JR/T 0071-2020(金融行业)、腾讯云TDSQL安全白皮书

适用版本:TDSQL MySQL版 5.7/8.0、TDSQL PostgreSQL版

验证环境:一主一从、一主多从、分布式集群(Set)、TDSQL-C Serverless

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

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

相关推荐

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