Ubuntu

升級 SSL 庫不能修復 heartbleed

  • May 1, 2014

我剛剛在我的 Ubuntu 12.04 伺服器上升級了 openssl 庫來修復 heartbleed 錯誤。這是我為“openssl version -a”命令得到的輸出:

OpenSSL 1.0.0g 18 Jan 2012
built on: Fri Apr 11 09:20:16 UTC 2014
platform: linux-x86_64
options:  bn(64,64) rc4(8x,int) des(idx,cisc,16,int) idea(int) blowfish(idx) 
compiler: gcc -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -Wa,--    noexecstack -m64 -DL_ENDIAN -DTERMIO -O3 -Wall -DMD32_REG_T=int -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DWHIRLPOOL_ASM
OPENSSLDIR: "/usr/local/ssl"

據我了解,“建立”日期應在 2014 年 4 月 7 日之後,這裡似乎就是這種情況。完成這些更改後,我重新啟動了 Apache,但我仍然看到我的網站容易受到 Heartbleed 錯誤的影響。

我在這裡錯過了什麼嗎?

我通過下載最新的原始碼並編譯/安裝來升級了 ssl 庫。

$$ Update $$ 在Stephan下面的評論之後,我直接使用apt-get升級了openssl。我還更新了我的 PATH 以指向新升級的 openssl 庫。

這是我在執行“openssl version -a”時看到的

OpenSSL 1.0.1 14 Mar 2012
built on: Mon Apr  7 20:33:29 UTC 2014
platform: debian-amd64
options:  bn(64,64) rc4(8x,int) des(idx,cisc,16,int) blowfish(idx) 
compiler: cc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -m64 -DL_ENDIAN -DTERMIO -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -Werror=format-security -D_FORTIFY_SOURCE=2 -Wl,-Bsymbolic-functions -Wl,-z,relro -Wa,--noexecstack -Wall -DOPENSSL_NO_TLS1_2_CLIENT -DOPENSSL_MAX_TLS1_2_CIPHER_LENGTH=50 -DMD32_REG_T=int -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/lib/ssl"

根據“建構”,該庫已更新到最新的 4 月 7 日更新檔。但是,我的網站仍然容易受到心臟出血的影響。

請幫忙!

保護自己免受 Heartbleed 影響的最簡單、最快的方法是從供應商提供的二進制包中更新 OpenSSL。除非您知道自己在做什麼,或者想花更多時間學習,否則不要從原始碼編譯。如果您需要做的只是更新軟體,那麼從原始碼編譯更具挑戰性並且浪費時間。它可以具有教育意義和啟發性。

OpenSSL 1.0.0g 18 Jan 2012
built on: Fri Apr 11 09:20:16 UTC 2014

這有些不對勁。你想要 1.0.1g 而不是 1.0.0g。但 Heartbleed 只是 OpenSSL 1.0.1 和 1.0.2 中的問題。OpenSSL 1.0.0 不易受到攻擊。您是否下載了舊的源文件?請注意,Ubuntu 並不總是準確地報告 OpenSSL 版本,您還需要更新 libssl。

據我了解,“建立”日期應在 2014 年 4 月 7 日之後,這裡似乎就是這種情況

不,再看一遍。您的“建立”日期是“2014 年 4 月 11 日 09:20:16 UTC”。那是你編譯這個源的時候嗎?

請注意,如果您從原始碼建構,則需要應用正確的標誌。閱讀http://www.openssl.org/news/secadv_20140407.txt上的安全通知

受影響的使用者應升級到 OpenSSL 1.0.1g。無法立即升級的使用者也可以使用 -DOPENSSL_NO_HEARTBEATS 重新編譯 OpenSSL。

引用自:https://serverfault.com/questions/592418