TMAegisBeta
More rules for mysql

MySQL

TMA-MYSQL-2.12

Ensure AES Encryption Mode for AES_ENCRYPT/AES_DECRYPT is Configured Correctly

LowLevel 2Automatedmysql

Description

A block encryption mode with a Cipher Block Chaining (CBC) mode value and key length of 256 is recommended when using the AES_ENCRYPT() and AES_DECRYPT() functions for encryption. Passes for any aes-256-* mode (ecb, cbc, cfb1, cfb8, cfb128, ofb). 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 IF(@@global.block_encryption_mode LIKE 'aes-256-%', 'compliant', 'noncompliant')" 2>/dev/null) || exit 1; printf '%s\n' "$out"
Expected output
compliant

How it is fixed

Fix method: Guidance or infrastructure patch

Set block_encryption_mode=aes-256-cbc under [mysqld] (or SET PERSIST block_encryption_mode = 'aes-256-cbc') after confirming applications that call AES_ENCRYPT/AES_DECRYPT pass the mode they need, then restart.

Properties

Operating systems
Any
Tags
mysqldatabasecrypto
Reference
CIS Oracle MySQL Community Server 8.4 Benchmark v1.1.0 - 2.12 Ensure AES Encryption Mode for AES_ENCRYPT/AES_DECRYPT is Configured Correctly

Check this host

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

shell
tmaegis scan --target mysql --level 2