openssl升級版本,防止 Heartbleed 漏洞
貼下知乎的回答:
另外有一個測試網站是否受到影響的服務:Test your server for Heartbleed (CVE-2014-0160)
根 據頁面上的介紹,這個 OpenSSL 的實現漏洞可以在握手階段獲取到主機上的敏感內存數據,甚至包括 SSL 證書私鑰!漏洞2012年出現,昨天(2014年4月7日)纔剛剛被修復。想問一下知乎上的信息安全專業人士們,這個漏洞的可利用性和影響範圍究竟有多 大?如果是,那麼這個曾今的 0day 是否被廣泛利用?
很嚴重的漏洞,涉及開啓了Heartbeat擴展的OpenSSL版本1.0.1f, 1.0.1e, 1.0.1d, 1.0.1c, 1.0.1b, 1.0.1a, 1.0.1
http://www.openssl.org/news/vulnerabilities.html
剛纔在我們的服務器(Gentoo)上看了一下,用的正是1.0.1c的受威脅版本,不過我們並沒有開啓Heartbeat,所以並不會受到實際威脅,但還是打上了補丁,以備不時之需。
https://github.com/openssl/openssl/commit/7e840163c06c7692b796a93e3fa85a93136adbb2
如果你只是想檢測一下你的服務器受不受威脅,現在有一款現成的工具可以用
titanous/heartbleeder 路 GitHub
也可以直接使用下面的OpenSSL命令來判斷:
/usr/local/bin/openssl s_client -connect $website:443 -tlsextdebug 2>&1| grep 'TLS server extension "heartbeat" (id=15), len=1'
這個命令只告訴你是否有啓用Heartbeat,但並不能說明是否受到威脅,還需要結合OpenSSL的版本進行判斷。
Hacker News上面有人給出了這段腳本,能檢測Alexa Top Million網站開啓Heartbeat的服務器:
INPUT=websites.csv OLDIFS=$IFS IFS=, [ ! -f $INPUT ] && { echo "$INPUT file not found"; exit 99; } while read rank website do echo "checking $website for heartbeat..." echo -e "quit\n" | /usr/local/bin/openssl s_client -connect $website:443 -tlsextdebug 2>&1| grep 'TLS server extension "heartbeat" (id=15), len=1' done < $INPUT IFS=$OLDIFS
Download Alexa Top 1,000,000 Websites for Free
I wrote a bash script to check the top 1000 websites and huge percentage of them...
跑了一小會兒,但好像並沒發現什麼有價值的信息。其實Heartbeat作爲CRM在OpenSSL中用到的機會本就不多,再加上大網站的反應都很迅速,不容易出現大的紕漏。至於0Day發佈之前有沒有被人利用舊不得而知了。
現在各大發行版都已經打上補丁,請各位儘快更新。
當然,還可以參考《使用nmap 6.45掃描服務器心臟出血漏洞(heartbleed)》
我是用的Centos ,目前官方說受威脅的版本是1.0.1f, 1.0.1e, 1.0.1d, 1.0.1c, 1.0.1b, 1.0.1a, 1.0.1 。在OpenSSL 1.0.1g版本中“ Heartbleed”漏洞被修復。所有centos6.5的系統運行OpenSSL 1.0.1e (openssl-1.0.1e-16.el6_5.4) 都會受到威脅,貌似只有6.5的會受到威脅。
先查看你的openssl版本,命令如下:
#openssl version 或者 #openssl version -a //加 -a參數會顯示更詳細 又或 #yum info openssl //redhat系列的可以用 ubuntu 和debian 可以用下面的命令: #dpkg-query -l 'openssl'
好吧,哥用的就是OpenSSL 1.0.1f ,受威脅的版本。呵呵,真坑。不過沒開啓 Heartbleed ,又沒設置https訪問,沒影響,不過還是升級下。
輸入升級openssl版本的命令:
#yum clean all && yum update "openssl*" //redhat系列可用這個 ubuntu和debian可以使用下面的命令: #apt-get update #apt-get upgrade OpenSuSE使用下面的命令: #zypper update確保你安裝的是openssl-1.0.1e-16.el6_5.7版本 或者更新的版本。
然後再執行以下命令,檢查還有哪些進程仍然在使用被刪掉的舊版本openssl庫 :
#lsof -n | grep ssl | grep DEL
沒有就是正常了。有的話,那你就必須重新每個使用舊版本openssl庫的進程了。
如果可能的話,建議重新生成ssl 私鑰,改密碼之類的。
注意: 還可以用下面這條命令檢查你安裝的這個版本的openssl時候打好了補丁,因爲每次修復漏洞,打補丁後,軟件包本身都會在日誌(change-log)裏記錄這些信息。命令如下:
# rpm -q --changelog openssl-1.0.1e | grep -B 1 CVE-2014-0160 // CVE-2014-0160是這個漏洞的代碼,可以去openssl的官網查的 顯示: * Mon Apr 07 2014 Tom謾擰 Mr謾z <[email protected]> 1.0.1e-16.7 - fix CVE-2014-0160 - information disclosure in TLS heartbeat extension 說明這個版本已經修復了這個漏洞。