最新的安全漏洞 (CVE-2014-3566) 代号是 POODLE, 这是一个缩写;这个漏洞和之前的 B.E.A.S.T (Browser Exploit Against SSL TLS) 非常相似,但是目前还没有可靠的解决办法,除非完全禁用 SSLv3 的支持。简单的说,攻击者可获取你加密流中的明文数据。
还是让我们来看看如何处理吧,Mozilla Security Wiki Serverside TLS 之前建议使用严格的协议和加密方法限制,值得我们注意。
Apache
在Apache 的 SSL 配置中禁用 SSLv3 和 SSLv3:
SSLProtocol all -SSLv2 -SSLv3
Nginx
在 Nginx 只允许使用 TLS 协议:
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
MySQL
值得注意的是,除非你在 MySQL 5.6 中部署 sha256_password 插件,plugin for MySQL 5.6 就会在验证握手之前必须完成SSL/TLS连接协商,因此这种攻击向量只成为一个问题 —— 有效的登录访问的数据流。( sha256_password 提供一个选项使用 SSL/TLS 的认证)
这使得事情变得更加有趣,和 Apache 和 Nginx 不同的是,没有方法来完全启用和禁用 SSL/TLS 协议,但可以 指定 SSL 通讯的加密规范.
要在 MySQL 删除 SSLv3 的支持,你只需要确定在配置中不使用 SSLv3 加密。
在这个 bug 中你可以找到 SSLv3 加密方法列表:
openssl ciphers -v 'DEFAULT' | awk '/SSLv3 Kx=(RSA|DH|DH(512))/ { print $1 }' DHE-RSA-AES256-SHA DHE-DSS-AES256-SHA DHE-RSA-CAMELLIA256-SHA DHE-DSS-CAMELLIA256-SHA AES256-SHA CAMELLIA256-SHA EDH-RSA-DES-CBC3-SHA EDH-DSS-DES-CBC3-SHA DES-CBC3-SHA DHE-RSA-AES128-SHA DHE-DSS-AES128-SHA DHE-RSA-SEED-SHA DHE-DSS-SEED-SHA DHE-RSA-CAMELLIA128-SHA DHE-DSS-CAMELLIA128-SHA AES128-SHA SEED-SHA CAMELLIA128-SHA RC4-SHA RC4-MD5 EDH-RSA-DES-CBC-SHA EDH-DSS-DES-CBC-SHA DES-CBC-SHA EXP-EDH-RSA-DES-CBC-SHA EXP-EDH-DSS-DES-CBC-SHA EXP-DES-CBC-SHA EXP-RC2-CBC-MD5 EXP-RC4-MD5
删除 ssl-cipher 配置中的上述信息就可以禁用 SSLv3 支持。当然,确保 MySQL 服务不提供一般访问是迄今为止对抗 CVE-2014-3566 漏洞最重要的一个步骤。
你可以了解更多关于 POODLE 的资讯。
以下脚本可以识别你的服务是否提供没有密码的 SSLv3 支持:
mysql -se “SHOW STATUS LIKE ‘Ssl_cipher_list'” | sed ‘s/:/n/g’ | sed ‘s/Ssl_cipher_listss//g’ | while read sspec; do SPEC=openssl ciphers -v “$sspec” 2>/dev/null | grep -v SSLv3 | awk ‘{print $1}'; [[ "$sspec" == "$SPEC" ]] && mysql –ssl-cipher=$sspec -e QUIT 2>/dev/null && echo “$sspec OK”; done
http://www.oschina.net/question/12_175450