openssl升級版本,防止 Heartbleed 漏洞

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
說明這個版本已經修復了這個漏洞。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章