关于心脏出血漏洞分析报告。
这两天(汗!其实是昨天)最火的莫过于心脏出血这个漏洞了,网上也有分析报告,看了一下,晕乎乎的,有木有人能解析一下这个心脏出血漏洞的成因到底是代码编辑上的问题呢还是设计上的问题。。。
附:心脏出血漏洞分析报告:http://www.oschina.net/news/50563/openssl-hole
心脏出血词条(百度百科):http://baike.baidu.com/link?url=EIOophPMYa9EwZPUBm0tIYEKrBROvhyl9HsL2knyetGMqLLjfnPv7ZieHgVF03Ne7fpDO2yOJw0QpJPQGkeG_SM8ghDijKFbdngc8jXjOoe
来自 科创茶话
2014-4-11 19:46:30
1楼
很简单也很低级的漏洞。
SSL通过heartbeat确认client依然在线,heartbeat第2和3字节(共16位)表示请求数据大小,结果服务器端的OpenSSL没有检查这两位的大小是否超过数据的大小,直接用memcpy把按照heartbeat请求的数据大小把需要发送的内存区域拷贝到了发送buffer,由于用了指针和memcpy,如果实际数据只有一点点,最多可以把65535Bytes的数据都拷贝到发送buffer,直接发送掉了,不留任何log,这65535Bytes数据可都是服务器上的内存里的东西啊,很多都没有任何加密。
折叠评论
加载评论中,请稍候...
折叠评论
独孤青冥(作者)
2楼
justinpiggy 发表于 2014-4-11 19:46
很简单也很低级的漏洞。
SSL通过heartbeat确认client依然在线,heartbeat第2和3字节(共16位)表示请求数 ...


额。。也就是说我可以通过这个漏洞不停的抓取服务器内存上64k大小的数据,运气好的话就能抓到关键数据咯。。这应该算是设计上的漏洞吧。。
折叠评论
加载评论中,请稍候...
折叠评论
3楼
本帖最后由 justinpiggy 于 2014-4-11 21:39 编辑

独孤青冥 发表于 2014-4-11 21:27
额。。也就是说我可以通过这个漏洞不停的抓取服务器内存上64k大小的数据,运气好的话就能抓到关键数据咯 ...


对的,可以不留痕迹地不停抓取,而且抓取到的基本上都是服务器上正在处理的数据或者密钥之类的东西,总之如果有人发现不报告,那么只要花一些时间,这些使用OpenSSL的网站都能随意进出了。

不懂你的设计上漏洞,这个属于编程时候不够严谨(C的指针请小心使用),归类为缓冲区溢出,整体设计也有一定问题,本来SSL的规范要求这个heartbeat的Payload不超过16KB,如果做了这个限制,那么损失能适当减小一些,可惜OpenSSL也没有加入这个检测。
折叠评论
加载评论中,请稍候...
折叠评论

想参与大家的讨论?现在就 登录 或者 注册

{{submitted?"":"投诉"}}
请选择违规类型:
{{reason.description}}
支持的图片格式:jpg, jpeg, png