由于客户端在连接MySQL时SSL选项使用不当,将可能引起中间人攻击。该漏洞将导致数据库通信数据以明文形式在网络上传输。
漏洞详情
这个漏洞与客户端的”–ssl”选项有着很大关系,这个选项在受影响的版本中处于”建议使用”的级别。因此,当客户端尝试和服务器端进行初始化SSL/TLS连接时,将不会要求使用这一选项。这就帮助MITM攻击者轻易地去除了SSL/TLS保护。
这个问题同样影响到了SSL客户端的其它SSL选项上(比如’—ssl-xxx’)。Oracle MySQL的技术产品主管也在blog中对“–ssl”问题进行了具体的说明。
即使服务器选择了”REQUIRE SSL”选项,MitM攻击者仍可以代理的角色出现在客户和服务器之间。这就使得他可以对客户和代理之间的连接进行降级,从而使其间的MySQL流量处于未加密状态,尽管代理和服务器端之间的流量处于加密状态。
目前该漏洞已被标定为 CVE-2015-3152 (针对MariaDB 和Percona),另外有人指出这一漏洞和数年前ssltrip攻击有很多相似之处。
影响范围
MySQL 5.7.3以前的版本,C开发环境下的客户端库
Connector/C(libmysqlclient)、MariaDB 和 Percona服务器。
安全建议
升级MySQL到5.7.4以后的版本,对应相关的库及时的打补丁,使用“REQUIRE X509”选项,使用SSH隧道等。