Openssl多个安全补丁简易分析危害及修复方案

时间:2014-06-17 18:33:20来源:作者:点击:

0x00 概述


心脏出血(CVE-2014-0160)后,Openssl 拿出专项资金进行了代码审计,于6月5号晚发布了所发现的漏洞公告。

https://www.openssl.org/news/secadv_20140605.txt

总结如图:

enter image description here

两个高危漏洞2014-0224中间人攻击(截获明文) 和2014-0195(DTLS 特定包代码执行) 3个拒绝服务 1个缓存区注入 1个特殊漏洞

0x01 详情


1. CVE-2014-0224 ChangeCipherSpec 注入

漏洞作者:KIKUCHI Masashi

漏洞原理

enter image description here

按照TLS的协议 在固定的时间顺序内服务端发送和接收ChangeCipherSpec(更改密钥规格)数据,但是实际上openssl的实现:

服务端在发送时是按照时间线的顺序发送,接收时却没有检查顺序,导致攻击者可以构造伪造的ChangeCipherSpec(比如使用空的主密钥),导致可以中间人攻击解密两端加密信息。

更多详情: http://ccsinjection.lepidum.co.jp/blog/2014-06-05/CCS-Injection-en/index.html

Poc

https://gist.github.com/rcvalle/71f4b027d61a78c42607https://gist.github.com/rcvalle/585e12e4d5d3b658cd3d#

影响版本:

客户端所有版本都存在。服务端已知的受影响版本OpenSSL 1.0.1 和1.0.2-beta1.

漏洞产生必须客户端和服务端都使用了受影响版本的openssl。

2. CVE-2014-0195 DTLS碎包代码执行

漏洞作者:Jüri Aedla(Pwn2Own的火狐溢出执行获胜者)

漏洞原理:

为了避免被IP分片,在DTLS存在一个数据包处理机制:

对所有大的UDP包进行分割,每个分割后的DTLS片段有三个标志字段:

总消息长度
帧偏移量
帧大小长度

每个DTLS分包后的总消息长度是固定不变的。

OPENSSL把每个收到的DTLS包判断(帧大小长度<总的长度)就会把这段长度的数据复制到缓冲区。

[1]   

您可能感兴趣的文章

无相关信息

文章评论