TMA-MYSQL-2.12
Ensure AES Encryption Mode for AES_ENCRYPT/AES_DECRYPT is Configured Correctly
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
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.
tmaegis scan --target mysql --level 2