TMAegis
More rules for mysql

TMA-MYSQL-8.2

Ensure 'ssl_type' is Set to 'ANY', 'X509', or 'SPECIFIED' for All Remote Users

HighLevel 1Automatedmysql

Description

All network traffic must use SSL/TLS when traveling over untrusted networks. SSL/TLS should be enforced on a per-user basis for users which enter the system through the network. Counts remote accounts whose ssl_type is not ANY, X509 or SPECIFIED. Runs mysql -NBe with the client defaults: put an administrative account in ~/.my.cnf (mode 0600) or a mysql_config_editor login path, not MYSQL_PWD (see 1.4/1.6).

How it is checked

Audit method: SQL query

sql_query
out=$(mysql -NBe "SELECT COUNT(*) FROM mysql.user WHERE host NOT IN ('::1', '127.0.0.1', 'localhost') AND ssl_type NOT IN ('ANY', 'X509', 'SPECIFIED')" 2>/dev/null) || exit 1; printf '%s\n' "$out"
Expected output
0

How it is fixed

Fix method: Guidance or infrastructure patch

ALTER USER '<user>'@'<host>' REQUIRE X509; (or REQUIRE SSL / ISSUER / SUBJECT) for every remote account listed by SELECT user, host, ssl_type FROM mysql.user WHERE host NOT IN ('::1','127.0.0.1','localhost');

Properties

Operating systems
Any
Tags
mysqldatabasetlsauthentication
Reference
CIS Oracle MySQL Community Server 8.4 Benchmark v1.1.0 - 8.2 Ensure 'ssl_type' is Set to 'ANY', 'X509', or 'SPECIFIED' for All Remote Users

Check this host

Run this on a machine you are allowed to audit. The scan is read-only.

shell
tmaegis scan --target mysql