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.gz2. 安裝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 2014built on: Fri Apr 11 13:49:37 CST 2014platform: linux-x86_64options: 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_ASMOPENSSLDIR: "/usr/local/ssl"
下面是我自己寫的一個小指令碼:#cat openssl-update.sh
yum install -y zlib echo "*****************************************************************************************************************************"openssl version -acd /rootwget http://www.openssl.org/source/openssl-1.0.1g.tar.gztar 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 -vecho "*****************************************************************************************************************************"openssl version -a
#chmod +x openssl-update.sh#./openssl-update.sh >>openssl-update.log
這是我自己的愚見,有問題可以探討