关于 MySQL 和 MariaDB SSL 连接漏洞的信息
上周,报告了 MySQL 和 MariaDB 的 SSL 连接安全漏洞。该漏洞指出,由于 MariaDB 和 MySQL 在启用 SSL 支持时未强制使用 SSL,因此可能发起中间人攻击 (MITM)。MITM 攻击可以捕获安全连接并将其变为不安全的连接,从而暴露服务器之间来回传输的数据。
MariaDB 中问题的解决方案可通过 MariaDB 跟踪系统 (JIRA) 中的相应工单查看:https://mariadb.atlassian.net/browse/MDEV-7937
此漏洞影响 MariaDB 和 MySQL 数据库服务器的客户端库。但是,该漏洞不影响所有用于建立与服务器的 SSL 连接的库、驱动程序或连接器。
当通过客户端库 libmysqlclient 连接到服务器时,存在此漏洞。此客户端库随数据库服务器提供,是 MySQL 中相应客户端库的分支。该客户端库被可能是最常用的工具——MySQL 命令行工具使用,MariaDB 附带了该工具的分支版本。
除了 libmysqlclient,MariaDB 项目还提供以下连接器
- MariaDB Connector/C,https://mariadb.com/kb/en/mariadb/mariadb-connector-c/
- MariaDB Connector/J (Java 客户端),https://mariadb.com/kb/en/mariadb/about-the-mariadb-java-client/
- MariaDB Connector/ODBC,https://mariadb.com/kb/en/mariadb/mariadb-connector-odbc/
一个相关的问题是,如果服务器无法加载证书或密钥文件,则只会记录警告信息启动,并且 SSL 将被禁用。Apache、Sendmail、Dovecot 等如果配置了 SSL,在无法加载时会启动失败。MariaDB 的这种行为可能会导致开发者误以为系统正在使用 SSL 运行,除非他每次手动检查连接状态以确认。