- 重大漏洞資訊Heartbleed

漏洞說明

2014年4月8日,OpenSSL發布HeartBleed之重大安全通告(CVE-2014-0160)。OpenSSL TLS/DTLS傳輸安全層之Heartbeat擴充功能中,因Heartbeat服務未對輸入進行適當驗證(缺少邊界檢查),故受到攻擊時,攻擊者可於未經授權之情況下讀取過量資料,而造成記憶體內容外洩之問題。當攻擊者攻擊一個有此漏洞之伺服器時,該漏洞允許攻擊者從伺服器記憶體中讀取最多64KB之資料,且不會留下任何痕跡。記憶體內容可能包含機敏資訊,如帳密、信用卡資料及機密文件等。

 

CVE編號

CVE-2014-0160
 

可能風險

攻擊者利用該漏洞無需通過權限或身分驗證,即可讀取伺服器記憶體,竊取SSL私密金鑰、Session cookie或使用者帳號密碼等機敏資訊。
攻擊者可針對由OpenSSL保護之網路通信進行解密、偽冒或進行中間人攻擊,以竊取E-mail、文件及通訊內容等,進而入侵伺服器取得機敏資訊。

檢測方式

針對CVE-2014-0160可能產生之資安影響,提供下列檢測與改善建議供各機關參考。
 

一、自行檢視OpenSSL版本

1.使用OpenSSL

可利用OpenSSL指令檢視版本,輸入openssl version
 

利用OpenSSL指令檢視版本,輸入openssl version


 

2.使用dpkg (Debian / Ubuntu 系列)

可利用dpkg檢視所使用的OpenSSL版本,輸入dpkg -l openssl

 

利用dpkg檢視所使用的OpenSSL版本,輸入dpkg -l openssl


 

3.使用rpm(RedHat / CentOS / Fedora 系列)

可利用rpm檢視所使用的OpenSSL版本,輸入rpm -q openssl
 

利用rpm檢視所使用的OpenSSL版本,輸入rpm -q openssl

 

如版本為1.0.1至1.0.1f與OpenSSL 1.0.2-beta至1.0.2-beta1皆為本次受影響之版本。


 

二、使用Heartbleed Checker檢測網頁

 

檢測方法

檢測網站: https://ssl-tools.net/heartbleed-test
 

此網站由MyCERT所提供,於網站中直接輸入Domain Name即可直接進行檢測(使用外部檢測,需自行承擔風險),網站如下圖所示:
 

Heartbleed Checker檢測網頁


 

三、使用python程式檢測

 

確認python安裝版本,輸入python -V


 

檢測方法

確認python安裝版本,輸入python -V

下載python檢測程式ssltest.py : https://pastebin.com/WmxzjkXJ

 

指令格式:python ssltest.py [IP或DN] (-p [Port]),若未輸入port,預設為443,也可以指定特定SSL連接埠,如:imaps。
下圖以192.168.10.128為範例。

 

指令格式:python ssltest.py [IP或DN] (-p [Port])
 

檢測結果

如存在CVE-2014-0160漏洞則會印出SSL服務記憶體內的資訊,此時可以利用python ssltest.py 192.168.10.128 | more逐頁檢視。

 

如存在CVE-2014-0160漏洞則會印出SSL服務記憶體內的資訊

 

四、使用perl程式檢測
 

檢測方法

下載perl檢測程式check-ssl-heartbleed.pl : https://github.com/noxxi/p5-scripts/blob/master/check-ssl-heartbleed.pl

 

指令格式:perl check-ssl-heartbleed.pl [IP 或 DN]:443,也可以在網域名稱後指定特定SSL連接埠,如:imaps。
 

檢測結果

如機關存在CVE-2014-0160漏洞則在執行後會出現如下圖紅框內的結果。

 

檢測結果

 

五、使用弱點掃描軟體檢測
 

檢測方式
 

擁有Nessus軟體授權之機關可選用Plugin ID:73412進行檢測,可檢測OS如:CentOS、Debian、Fressbsd、Oracle Linux、RedHat、Amazon  Linux AMI and other platforms including Gentoo,Scientific Linux, Slackware。

 

如使用Nexpose軟體則可以參考 Nexpose針對CVE-2014-0160建置專屬template 進行檢測。

 

六、使用Metasploit檢測
 

檢測環境架設

安裝Metasploit與至github更新CVE-2014-0160的 檢測程式。
 

匯入檢測程式以KAIL為例:

#mkdir /usr/share/metasploit-framework/modules/auxiliary/scanner/ssl/

#cp openssl_heartbleed.rb /usr/share/metasploit-framework/modules/auxiliary/scanner/ssl/

 

檢測方法

利用Metasploit的msfcli檢測CVE-2014-0160漏洞。

參數說明:

  • THREADS設定執行緒的數量
  • TLS_CALLBACK設定支援的協定,如:None, SMTP, IMAP, JABBER, POP3, FTP,HTTPS為None
  • PORT設定所要檢測的埠
  • RHOSTS設定要檢測的IP與網段

 

範例:

#msfcli auxiliary/scanner/ssl/openssl_heartbleed THREADS=256 TLS_CALLBACK=None PORT=443 RHOSTS=10.4.0.0/24 E

 

檢測結果

提供檢測圖示以確認主機是否含有CVE-2014-0160漏洞

  • 代表10.4.0.0/24網段有一台主機10.4.0.130含有CVE-2014-0160漏洞
     

確認主機是否含有CVE-2014-0160漏洞

檢測工具

檢測前置作業

  • 蒐集機關「內部IP」與「網段」資訊
  • 下載檢測工具(MD5: 042614283fb5c89e0105b037eca049f2)
  • 將檢測工具置於Windows平台電腦
    • 請確認該電腦可連線至檢測之內部IP與網段

 

檢測方法

 

檢查單一IP(不指定port)

  1. 點擊程式檔案後,選擇1
  2. 輸入單一IP
  3. 選擇是否指定Port(如不選擇或預設為443)
     

檢查單一IP(不指定port),點擊程式檔案後,選擇1,輸入單一IP,選擇是否指定Port
 

檢查單一IP(指定port)

  1. 點擊程式檔案後,選擇1
  2. 輸入單一IP
  3. 選擇Y後輸入指定的Port
     

檢查單一IP(指定port),選擇1,輸入單一IP,選擇Y後輸入指定的Port

 

掃描整個網段(不指定port)

  1. 點擊程式檔案後,選擇2
  2. 輸入掃描的起始IP與結束IP
  3. 選擇是否指定Port(如不選擇或預設為443)

 

掃描整個網段(不指定port),點擊程式檔案後,選擇2,輸入掃描的起始IP與結束IP,選擇是否指定Port

 

掃描整個網段(指定port)

  1. 點擊程式檔案後,選擇2
  2. 輸入掃描的起始IP與結束IP
  3. 選擇Y後輸入指定的Port


 

掃描整個網段(指定port),點擊程式檔案後,選擇2,輸入掃描的起始IP與結束IP,選擇Y後輸入指定的Port

 

檢測結果

檢測結果

檢測結果分為「沒有弱點」、「SSL連線錯誤」及「發現弱點」等3種狀態

  • 沒有弱點:該受測主機不存在HeartBleed弱點
  • SSL連線錯誤:無法建立與該主機的SSL連線
  • 發現弱點:該受測主機存在HeartBleed弱點
    請盡速與廠商聯繫,確認該主機使用之OpenSSL使用版本,盡速完成更新作業

修補方式:

有使用OpenSSL之伺服器進行CVE-2014-0160漏洞檢測,以掌握可能產生之影響,如為重要業務之伺服器應儘速完成修補措施,並持續追蹤機關網站是否發生使用者帳號遭受盜用之情形,視情況決定是否需要通知使用者進行密碼更換。
為避免機關遭駭客利用CVE-2014-0160漏洞而導致機敏資料外洩,國家資通安全研究院提出以下幾點改善建議以供參考。

 

一、更新OpenSSL版本

更新OpenSSL至1.0.1g與1.0.2beta-2以上之版本

  • Apt-get更新(Debian / Ubuntu 系列)
    利用apt-get update 套件清單
  • 更新openssl套件,apt-get install openssl 如下圖。
  • 更新openssl套件,apt-get install openssl
  • Yum更新(RedHat / CentOS / Fedora 系列)
    利用yum update 套件清單
  • 更新openssl套件,yum upgrade openssl 如下圖。
  • 更新openssl套件,yum upgrade openssl 如圖

 

二、更新帳號密碼

更新管理者帳號密碼,亦可考慮同步要求使用者全面更新密碼。

 

三、重新產生伺服器私密金鑰

伺服器私密金鑰可能因為此漏洞而外洩,因此,建議重新產生伺服器私密金鑰。

 

四、更換新憑證

撤銷舊有憑證,重新使用新憑證。請參考 GCA憑證申請作業與流程說明。

 

五、安裝修補程式

隨時注意CVE-2014-0160漏洞影響範圍之更新,查看供應商是否有提供修補程式,並下載與安裝修補程式。

 

緩解方式:

部署IDS規則

以Snort IDS為例,目前官方提供的 Community Rules (06 May, 2014),已包含27條規則(sid: 30510 - 30517, 30520 - 30525, 30549, 30777 - 30788)可以偵測CVE-2014-0160攻擊,可將這些規則布署至IDS中。

新聞來源:https://www.nics.nat.gov.tw/core_business/information_security_information_sharing/Critical_Vulnerability_Information/Heartbleed/
發布日期:12/11/2024