Перейти к содержимому

MySQL

Проба на сыром TCP, не HTTP — address это host или host:port, без схемы https:///http:// (предупреждать о её отсутствии тут не о чем; см. Конфигурацию). Порт по умолчанию — 3306, если не указан.

MySQL сообщает свою версию сама, без запроса, в начальном handshake-пакете, ещё до какого-либо шага аутентификации — поэтому этой пробе никогда не нужен credential, чтобы её увидеть.

targets:
- id: mysql-main
product: mysql
address: db.example.com:3306

Отсутствует — версия читается прямо из handshake, ещё до точки, где credential вообще имел бы значение.

Начиная с 2.2.1 проба отвечает на приветствие одноразовым логином (имя пользователя enodia, без пароля) и читает отказ сервера. До 2.2.0 включительно она разрывала соединение сразу после приветствия, что сервер считает прерванным подключением до аутентификации; достаточное их число с одного хоста срабатывает на max_connect_errors, и тогда сервер отказывает этому хосту с ERR 1129 Host '…' is blocked — всем клиентам на нём, а не только enodia. Отклонённый логин засчитывается как неудачная аутентификация, которая к блокировке не добавляется. Если сервер журналирует неудачные логины, каждый прогон оставляет строку Access denied for user 'enodia'. Если 2.2.0 уже успела заблокировать хост, снимите блокировку через FLUSH HOSTS (MySQL 8.0 также принимает TRUNCATE TABLE performance_schema.host_cache).

MariaDB выдаёт себя версией в handshake: MariaDB 10.x маскирует её префиксом 5.5.5- для старых MySQL-клиентов (5.5.5-10.11.19-MariaDB-ubu2204), а MariaDB 11.0+ присылает её без маски, но с тегом (11.4.13-MariaDB-ubu2404). product: mysql, указанный на сервер MariaDB, распознаёт оба вида и намеренно отказывает, называя в ошибке настоящую версию MariaDB, а не молча записывая её как факт про MySQL. Начиная с 2.1, у MariaDB есть своя проба — для неё используйте product: mariadb.

Сверяется с NVD и БДУ ФСТЭК, если настроен блок cve:.

endoflife:mysql.