TDSQL
TMA-TDSQL-7.3
Ensure a Password Expiration Policy Is Configured
Description
A password expiration policy forces users to change passwords periodically, reducing the risk of exploitation after long-term credential leakage. Runs the mysql client against the TDSQL data node selected by TDSQL_MYSQL_OPTS (e.g. "-h10.0.0.5 -P4001 -utdsql_audit"); keep the password in ~/.my.cnf or a login path rather than MYSQL_PWD or the command line (see 1.4 and 1.5). Passes when the global default_password_lifetime is greater than 0; also review per-user password_lifetime (SELECT User, Host, password_lifetime, password_expired FROM mysql.user) for accounts created with PASSWORD EXPIRE NEVER.
How it is checked
Audit method: SQL query
out=$(mysql ${TDSQL_MYSQL_OPTS:-} -NBe "SELECT CASE WHEN @@global.default_password_lifetime > 0 THEN 'compliant' ELSE 'never expires' END" 2>/dev/null) || exit 1; printf '%s\n' "$out"- Expected output
compliant
How it is fixed
Fix method: Guidance or infrastructure patch
SET GLOBAL default_password_lifetime = 90; or per user ALTER USER '<user>'@'<host>' PASSWORD EXPIRE INTERVAL 90 DAY;
Properties
- Operating systems
- Any
- Tags
- tdsqlauthentication
- Reference
- CIS Tencent TDSQL 10.3.22 Benchmark v1.0.0 - 7.3 Ensure a Password Expiration Policy Is Configured
Check this host
Run this on a machine you are allowed to audit. The scan is read-only.
tmaegis scan --target tdsql