CVE-2015-0204 OpenSSL FREAK Attack漏洞检测方法及修复建议

  小狼    编号: 050003    奖励 70 积分   2015.03.05   OpenSSL FREAK 中间人攻击

0x01 前言

 

临近元宵佳节之际,OpenSSL又因为FREAK attack(also known as the Factoring Attack on RSA-EXPORT Keys vulnerability or CVE-2015-0204)漏洞吵得沸沸扬扬的。 苹果和谷歌均在本周二表示,它们正在修复近期发现的“FREAK”信息安全漏洞,这一漏洞已经影响了诸多移动设备和Mac电脑。

 

该漏洞是由于OpenSSL库里的s3_clnt.c文件中,ssl3_get_key_exchange函数,允许客户端使用一个弱RSA秘钥,向SSL服务端发起RSA-to-EXPORT_RSA的降级攻击,以此进行暴力破解,得到服务端秘钥。此问题存在于OpenSSL版本0.9.8zd之前, 或1.0.0p之前的1.0.0,或1.0.1k之前的1.0.1。

 

 

Q:好吧,听起来很严重,那么FREAK攻击为什么会存在呢?

A:美国在上世纪90年代早期施行的出口限制政策, ,它禁止了美国的软件制造商向海外出口带有高级加密功能的产品,只允许所谓”出口级”加密算法销售,换句话说就是弱加密了. 当出口限制政策放宽后,由于有些软件仍旧依赖于旧版加密协议,出口版产品的加密功能依然没有得到升级。FREAK使得攻击者能够将安全性很强的加密连接降级成“出口级”,从而使其易于攻破。

 

Q:他们为什么要在美国以外地区使用弱加密算法?

A:你认为为什么?NSA需要监视他们。强大的加密算法被禁止出口为战争的武器。

 

Q:出口哇!情况真的如此吗?

A:幸运的是没有,除非你的加密数据是针对所谓流氓国家或恐怖组织。美国政府意识到,禁止强加密是对技术公司生长抑制。当然,在此期间,弱“出口级”加密算法破解是不是一个很有难度的挑战呢?实际上曾经它是几乎无法破解,但是在当前时代,你不需要像NSA那样强大计算能力就可以做到, 根据密码学家Matthew Green研究得出,你可能需要75台普通PC机器用大约七个小时就可以破解掉;而如果租用亚马逊的EC2云服务总花费不会超过100美元。

 

 

这就是华盛顿邮报不得不说: 包括印有“锁”图标表示通过SSL技术保护的连接 - - 加密的网站超过三分之一被证明容易受到攻击,在最近进行的试验由密歇根大学计算机科学的研究人员J. Alex Halderman和Zakir Durumeric.。列表中包括新闻机构,零售商和金融服务网站如americanexpress.com。这1400万个网站在世界范围内提供加密,超过500万个网站仍然存在风险,截至星期二上午,Halderman说。

 

目前Debian\Ubuntu\RedHat等主流发行版本均已经修复,攻击POC也未正式公布出来,所以大家可以安心修复。

 

0x02 影响版本范围

 

软件版本OpenSSL:

 

1.0.1j

1.0.1i

1.0.1h

1.0.1g

1.0.1f

1.0.1e

1.0.1d

1.0.1c

1.0.1b

1.0.1a

1.0.0o

1.0.0n

1.0.0m

1.0.0l

1.0.0k

1.0.0j

1.0.0i

1.0.0h

1.0.0g

1.0.0f

1.0.0e

1.0.0d

1.0.0c

1.0.0b

1.0.0a

0.9.8zc

 

0x03 检测是否存在该漏洞

 

https远程检查方法(看一个网站是脆弱的RSA弱密钥攻击,你可以使用OpenSSL命令):

 

openssl s_client -connect www.fbi.gov:443 -cipher EXPORT

 

 

如果你看到"alert handshake failure"这句话就说明该网站是安全的.

 

搞笑的是FBI网站也是最近才修复的,而美国国家安全局NSA还未修复哦~

 

 

事实证明了美国国家安全局对自己是要求第一时间可以被破解的=。=

 

 

RedHat系列检查:

 

rpm -qa|grep openssl

 

 

Debian\Ubuntu系列检查:

 

dpkg -l|grep openssl

 

 

该版本已经修复,详细请见官方资料如下:

 

 

0x04 临时修复方案

 

如果因为生产环境无法直连外网或是变更配置管理等原因而不便更新补丁,可以采取以下临时修复方法:

 

1.禁用出口级弱加密算法在命令行使用

openssl ciphers MEDIUM  

 

2.禁止apache服务器使用出口级加密算法

vi /etc/httpd/conf.d/ssl.conf

 

增加如下配置

SSLCipherSuite HIGH:!aNULL:!MD5:!EXP

 

需要重启apache服务

/etc/init.d/httpd restart

 

3.关于nginx加密算法

 

1.0.5及以后版本,默认SSL密码算法是HIGH:!aNULL:!MD5

 

0.7.65、0.8.20及以后版本,默认SSL密码算法是HIGH:!ADH:!MD5

 

0.8.19版本,默认SSL密码算法是ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM

 

0.7.64、0.8.18及以前版本,默认SSL密码算法是ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP

 

低版本的nginx或没注释的可以直接修改域名下ssl相关配置为

ssl_ciphers         HIGH:!aNULL:!MD5;

 

需要nginx重新加载服务

/etc/init.d/nginx reload

 

0x05在线修复方案

 

CentOS, Red Hat, Fedora等系列衍生版本(RHN建议):

 

将更新升级所有已安装的包,谨慎操作

yum update

 

只升级更新OpenSSL软件包

yum update openssl

 

 

修复完毕请重启相关的web服务

service httpd restart

 

还需要重启其他与OpenSSL相关的服务。

Lsof |grep libssl |awk '{print $1}'| sort |uniq(查看与OpenSSL库相关的服务)


条件允许的话建议申请时间窗口直接重启系统.

reboot

 

Debian, Ubuntu等系列衍生版本:

 

sudo apt-get upgrade (这将升级所有已安装的包,谨慎操作)
sudo apt-get install openssl

 

修复完毕请重启相关的web服务

service httpd restart

 

还需要重启其他与OpenSSL相关的服务。

Lsof |grep libssl |awk '{print $1}'| sort |uniq(查看与OpenSSL库相关的服务)

 

条件允许的话建议申请时间窗口直接重启系统.

reboot

 

OpenSuSE使用下面的命令:

zypper update

 

0x06 离线修复方案

 

Centos6.5离线补丁修复方案:

 

先检查本地openssl包安装了哪些相关包

rpm -qa|grep openssl

 

然后,到阿里源下载对应版本

cat > update.txt << EOF
http://mirrors.aliyun.com/centos/6.6/updates/x86_64/Packages/openssl-1.0.1e-30.el6_6.5.x86_64.rpm
http://mirrors.aliyun.com/centos/6.6/updates/x86_64/Packages/openssl-devel-1.0.1e-30.el6_6.5.x86_64.rpm
EOF

 

进行后台断点下载补丁包

wget -b -i update.txt -c

 

使用yum本地安装

yum localinstall openssl -*

 

或是rpm安装

rpm -ivUh openssl -*

 

Red Had系列衍生版本

使用方法参考上文【Centos6.5离线补丁】的修补方法

 

0x07 参考来源

 

https://access.redhat.com/security/cve/CVE-2015-0204

http://www.ubuntu.com/usn/usn-2459-1/

https://security-tracker.debian.org/tracker/CVE-2015-0204

http://support.novell.com/security/cve/CVE-2015-0204.html

http://www.washingtonpost.com/blogs/the-switch/wp/2015/03/03/freak-flaw-undermines-security-for-apple-and-google-users-researchers-discover/

 

 



全部评论 (0)

登录注册