细节
  360在内部信息安全实践历程中,“360信息安全部”逐步秉承最佳安全实践,在https等ssl领域逐渐做出了明显的变化。
  比如重要系统中禁止不安全的加密套件使用,来减少ssl的攻击面。
  我们在今天的内部运维修复中发现了个有趣的现象或者说尝试,我们想去确定禁止不安全的加密套件会对今天的两个高危漏洞有什么影响。
       

OpenSSL CVE


  0800漏洞官方已经描述了如果是cipher none的话,能保证是不受影响的,或者说这是一个缓解措施。
  但是0703就不一样了,我们花了几个小时尝试去证明如果ciphernone的话确实也是不受影响的。
  0703过程大略如下:
      

OpenSSL CVE


  这个过程由于client可以指定不安全的算法(RC4-MD5 SSLv2 Kx=RSA(512) Au=RSA Enc=RC4(40) Mac=MD5 export)
  导致密文部分只有40bit
  client 根据 cr, mk = mkc||mks, 和收到的 verify msg,可计算出 server key
  
  所以我们认为攻击的条件依然需要类似RC4_128_WITH_MD5 的套件。
  a、关键是 client 指定了 export cipher,导致 mks 只有5个字节
  b、不止 RC4_128_WITH_MD5 一个 export,默认情况,openssl 编译出来共有两个 exportcipher:
      

OpenSSL CVE


  c、计算出的 server_key 是 session key,双方可以互相计算
       

OpenSSL CVE


  d、server 回应的 verify msg 中大有玄机,是最终利用的关键,与sslv2标准有关,且听下回分解吧。
  3. 结尾
  虽然能表明“360信息安全部”的安全实践能有效抵挡 CVE-2016-0703的攻击,但在此依然希望大家按照官方的建议去升级对应的补丁。
  gl!
  
  漏洞编号:CVE-2016-0703
  漏洞说明:
  受影响的服务版本:
  Apache: 非2.4.x版本
  Nginx: 0.7.64、0.8.18及更早版本
  Postfix: 早于2.9.14、2.10.8、2.11.6、3.0.2的版本 (在2015.07.20之前发布)
  Openssl: 1.0.2a、1.0.1m、1.0.0r、0.9.8zf及更早版本
  检测方式
  OpenSSL版本检测:
  使用OpenSSL并支持SSLv2协议的服务器可接受指向长度非零非导出密钥组件的SSLv2连接握手,攻击者可利用这个缺陷解密已经建立的加密会话。
  漏洞等级:高
  漏洞编号: CVE-2016-0800
  漏洞说明:地址
  SSLv2协议中存在一个填充内容缺陷,攻击者可以利用这个缺陷解密使用新版SSL/TLS协议会话中由RSA算法加密的内容。通过这种利用方式,可造成DROWN攻击(Decrypting RSA usingObsolete and Weakened eNcryption)
  漏洞等级:高
  受影响的服务版本:
  Apache: 非2.4.x版本
  Nginx: 0.7.64、0.8.18及更早版本
  Postfix: 早于2.9.14、2.10.8、2.11.6、3.0.2的版本 (在2015.07.20之前发布)
  Openssl: 1.0.2a、1.0.1m、1.0.0r、0.9.8zf及更早版本
  检测方式
  OpenSSL版本检测:
       

OpenSSL CVE


  修复步骤
  (1). 升级OpenSSL软件包
  CentOS、redhat 可以通过以下命令来升级
       

OpenSSL CVE


        

OpenSSL CVE