您的位置:首页 > 运维架构

openssl漏洞补丁修复

2014-04-11 14:36 239 查看
CVE-2014-0160漏洞背景

2014年4月7日OpenSSL发布了安全公告,在OpenSSL1.0.1版本中存在严重漏洞(CVE-2014-0160)。OpenSSL Heartbleed模块存在一个BUG,问题存在于ssl/dl_both.c文件中的心跳部分,当攻击者构

造一个特殊的数据包,满足用户心跳包中无法提供足够多的数据会导致memcpy函数把SSLv3记录之后的数据直接输出,该漏洞导致攻击者可以远程读取存在漏洞版本的OpenSSL服务器内存中多达64K

的数据。

在目前已有的资料中,国内外同行已经称本漏洞为 “击穿心脏”、“毁灭级”、“今年最严重”的漏洞。由于SSL协议是网络加密登陆认证、网络交易等的主流安全协议,而OpenSSL又是主流的SSL

搭建平台。因此这些称呼好不为过,建议各网络服务提供者、管理机构和用户高度注意本漏洞的处理情况,希望广大用户做出相应的对策。

OpenSSL受影响版本的分布

根据已经公开的信息,该漏洞影响分布情况如下。

1、OpenSSL 1.0.1f (受影响)

2、OpenSSL 1.0.2-beta (受影响)

3、OpenSSL 1.0.1g (不受影响)

4、OpenSSL 1.0.0 branch (不受影响)

5、OpenSSL 0.9.8 branch (不受影响)

处置建议如下

3.1 针对网络管理员,可以做的事情包括

鉴于本漏洞的严重程度,如果确定本漏洞存在,对一般性的网络服务者,暂停服务进行处置是一种较好的应对策略。

如果确定本漏洞存在,又必须保证服务不能停止,可以在漏洞修补过程中,暂时停止https服务,改用http服务,但这会带来相关认证信息明文传输的风险,具体利害需要做出谨慎的判断权衡。

具体修补方式为:

OpenSSL版本升级到最新的1.0.1g

重新生成你的私钥

请求和替换SSL的证书

也可以使用-DOPENSSL_NO_HEARTBEATS参数重新编译低版本的OpenSSL以禁用Heartbleed模块,最新版本升级地址为:https://www.openssl.org/source/. (OpenSSL官方)

3.2 针对普通网络用户,我们郑重提出的建议包括

鉴于本漏洞的严重程度,在不能确定你所网站和服务修补了本漏洞的情况下,在未来2~3天内(2014年4月9日日起)不登陆,不操作是一种较好的应对策略(这些操作包括网购、网银支付等)。

如果你必须进行操作,可以关注这些网站和服务的修改情况。

一些手机客户端的登陆,是对SSL的封装,因此手机登录也不安全。

其他安全企业团队会公布目前仍有问题的站点、或没有问题的站点情况,请予以关注。

下面是centos系统或redhat系统的修复方法:

总之我都是把版本升级到官网最新的版本:openssl-1.0.1g(2014.4.7更新的)

先进行支撑包的安装:
yum install -y zlib
openssl升级步骤:
0. 首先通过 #openssl version –a 查看系统中存在的OpenSSL版本号
下载最新版本的openssl源码包
# wget ftp://ftp.openssl.org/source/openssl-1.0.1g.tar.gz 2. 安装openssl
1. tar xzvf openssl-1.0.1g.tar.gz

2. cd openssl-1.0.1g

3. ./config shared zlib

4. make

5. make install

6. mv /usr/bin/openssl /usr/bin/openssl.OFF

7. mv /usr/include/openssl /usr/include/openssl.OFF

8. ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl

9. ln -s /usr/local/ssl/include/openssl /usr/include/openssl

配置库文件搜索路径

10. echo “/usr/local/ssl/lib” >> /etc/ld.so.conf

11. ldconfig -v

3 查看openssl版本号,验证安装正确性
1、#openssl version -a

penSSL 1.0.1g 7 Apr 2014
built on: Fri Apr 11 13:49:37 CST 2014
platform: linux-x86_64
options: bn(64,64) rc4(16x,int) des(idx,cisc,16,int) idea(int) blowfish(idx)
compiler: gcc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -Wa,--noexecstack -m64 -DL_ENDIAN -DTERMIO -O3 -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m
-DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM
OPENSSLDIR: "/usr/local/ssl"

下面是我自己写的一个小脚本:

#cat openssl-update.sh

yum install -y zlib
echo "*****************************************************************************************************************************"
openssl version -a
cd /root
wget http://www.openssl.org/source/openssl-1.0.1g.tar.gz tar xzvf openssl-1.0.1g.tar.gz
cd openssl-1.0.1g
./config shared zlib
make
make install
mv /usr/bin/openssl /usr/bin/openssl.OFF
mv /usr/include/openssl /usr/include/openssl.OFF
ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/ssl/include/openssl /usr/include/openssl
echo “/usr/local/ssl/lib” >> /etc/ld.so.conf
ldconfig -v
echo "*****************************************************************************************************************************"
openssl version -a

#chmod +x openssl-update.sh
#./openssl-update.sh >>openssl-update.log

这是我自己的愚见,有问题可以探讨
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: