当安全协议不安全了:OpenSSL漏洞

业界 作者:Fooying 2014-04-08 15:44:05
今天是一个特别的日志,早上大家还在讨论XP停止服务的事,到处是相关的新闻和文章,到了下午,到处都是OpenSSL的漏洞消息了。  

OpenSSL与SSL安全协议

  什么是SSL安全协议,我记得在10年我写过一篇简单介绍的文章,小谈SSL安全协议(http://hi.baidu.com/fooying/item/2c4c407ee2acb1326cc37c74),大家不凡可以看看,以前的文章,大家就不要笑话了。
SSL,全称Secure Socket Layer,为Netscape所研发,用以保障在Internet上数据传输之安全,利用数据加密(Encryption)技术,可确保数据在网络上之传输过程中不会被截取及窃听。简单的说,就是加密传输的数据,避免被截取监听等。
SSL应该是大家平时接触最多的安全协议了,大家可以看访问一些网址的时候,一般是http://开头,如果发现https://开头就是采用了SSL安全协议。比如,大家在登陆微信网页版的时候就可以看到:   1     一般来说,比如nginx,可以通过以下方式就可以进行配置:
# HTTPS server # server { listen 443; server_name localhost;   ssl on; ssl_certificate /opt/nginx/sslkey/server.crt; ssl_certificate_key /opt/nginx/sslkey/server.key;   location / { root /home/workspace/; index index.asp index.aspx; } }
  大家可以看到,监听的是443端口,然后通过ssl on;来开启,同时通过ssl_certificate和sl_certificate_key配置证书和key文件,具体的就不多解释了,大家可以自己搜索下。 那么证书和key又是怎么一回事呢?接下来就要讲到OpenSSL了。   进行过nginx编译的同学都知道,在编译nginx的时候,如果想让nginx支持开启SSL,那么必须加一个--with-http_ssl_module 的配置项。那么如何让服务器支持这个配置项呢?又如何生成nginx开发SSL中所需要的证书和key文件呢?都是源于OpenSSL(http://baike.baidu.com/link?url=AjYL3O0_mqKF1KkHsDB72HPm1tXGns9prJBVkefNKywDNtdMQSEFqJSMbY3Tjino)。
OpenSSL是一个强大的安全套接字层密码库,Apache使用它加密HTTPS,OpenSSH使用它加密SSH,但是,你不应该只将其作为一个库来使用,它还是一个多用途的、跨平台的密码工具。
大家平时如果采用公私钥的方式连接服务器,也是需要用到OpenSSL的。简单的理解,OpenSSL是一个强大的支持库,更是一个强大的密码工具。虽然要支持SSL协议不一定得采用OpenSSL,但是基本大部分的都是采用OpenSSL。  

心脏出血的OpenSSL

  相信前面简单的介绍能让大家了解到OpenSSL的重要性,也明白了SSL协议是做什么的,那么大家应该就可以理解,本来采用SSL协议是为了数据传输的安全性,是为了更安全,但是OpenSSL的漏洞直接导致了本该是让为了更安全的设置变成了致命的危险。   简单介绍下漏洞,这个漏洞是昨天国外的黑客曝光的,该漏洞可以获取HTTPS服务器的随机64K内存。这个漏洞被称为heartbleed,直译的话就是心脏出血。可能有部分同学没意识到这个64K有啥用错,读取内存又有啥用?   贴几张图: 2 3     这是笔者利用poc进行的一些测试(测试poc:http://s3.jspenguin.org/ssltest.py,直接python ssltest.py domain就可以了),大家可以看到,cookie设置是明文帐号密码都直接爆出来了,有的还有代码源码(这个忘记截图了。。。)、SSL私钥(这个笔者没测试出来)等,那么影响有多大呢?看下wooyun的漏洞提交列表:   4     再给个来自zoomeye(http://www.zoomeye.org/)的统计数据:
全国443端口:1601250,有33303个受本次OpenSSL漏洞影响
看了这些,成为"心脏出血"完全不为过。今天估计又有许多运维同学可忙的了。具体的漏洞分析我也不多说了,大家可以看wooyun上的文章(http://drops.wooyun.org/papers/1381)  

安全防范

  说了这么多,可能有些同学觉得都不要去访问那些是https的网站了,其实也大可不必,官方其实已经放出补丁了,修复方法:
升级到最新版本OpenSSL 1.0.1g 无法立即升级的用户可以以段落DOPENSSL_NO_HEARTBEATS开关重新编译OpenSSL 1.0.2-beta版本的漏洞将在beta2版本修复
对于个人用户的话,大家不用太担心,虽然说影响有点大,不过像那些大网站,比如微信、淘宝等都已经修复了,实在不放心,大家可以今晚暂时不要访问就是了,不过我觉得没必要,不要像上次携程的事件一样搞的过爆了。另外,提供个在线检测的工具给大家:http://filippo.io/Heartbleed/   剩下的就不多说了,首先给那些连夜处理的运维和安全工作人员道声辛苦了。现在大家对安全越来越重视,这是好事,但是我觉得还是不要人云亦云,剩下的就是大家上网多小心些!

关注公众号:拾黑(shiheibook)了解更多

[广告]赞助链接:

四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/

公众号 关注网络尖刀微信公众号
随时掌握互联网精彩
赞助链接