- 重大漏洞資訊Heartbleed
漏洞說明
2014年4月8日,OpenSSL發布HeartBleed之重大安全通告(CVE-2014-0160)。OpenSSL TLS/DTLS傳輸安全層之Heartbeat擴充功能中,因Heartbeat服務未對輸入進行適當驗證(缺少邊界檢查),故受到攻擊時,攻擊者可於未經授權之情況下讀取過量資料,而造成記憶體內容外洩之問題。當攻擊者攻擊一個有此漏洞之伺服器時,該漏洞允許攻擊者從伺服器記憶體中讀取最多64KB之資料,且不會留下任何痕跡。記憶體內容可能包含機敏資訊,如帳密、信用卡資料及機密文件等。
CVE編號
可能風險
攻擊者利用該漏洞無需通過權限或身分驗證,即可讀取伺服器記憶體,竊取SSL私密金鑰、Session cookie或使用者帳號密碼等機敏資訊。
攻擊者可針對由OpenSSL保護之網路通信進行解密、偽冒或進行中間人攻擊,以竊取E-mail、文件及通訊內容等,進而入侵伺服器取得機敏資訊。
檢測方式
針對CVE-2014-0160可能產生之資安影響,提供下列檢測與改善建議供各機關參考。
一、自行檢視OpenSSL版本
1.使用OpenSSL
可利用OpenSSL指令檢視版本,輸入openssl version
2.使用dpkg (Debian / Ubuntu 系列)
可利用dpkg檢視所使用的OpenSSL版本,輸入dpkg -l openssl
3.使用rpm(RedHat / CentOS / Fedora 系列)
可利用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即可直接進行檢測(使用外部檢測,需自行承擔風險),網站如下圖所示:
三、使用python程式檢測
檢測方法
確認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為範例。
檢測結果
如存在CVE-2014-0160漏洞則會印出SSL服務記憶體內的資訊,此時可以利用python ssltest.py 192.168.10.128 | more逐頁檢視。
四、使用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漏洞
檢測工具
檢測前置作業
- 蒐集機關「內部IP」與「網段」資訊
- 下載檢測工具(MD5: 042614283fb5c89e0105b037eca049f2)
- 將檢測工具置於Windows平台電腦
- 請確認該電腦可連線至檢測之內部IP與網段
檢測方法
檢查單一IP(不指定port)
- 點擊程式檔案後,選擇1
- 輸入單一IP
- 選擇是否指定Port(如不選擇或預設為443)
檢查單一IP(指定port)
- 點擊程式檔案後,選擇1
- 輸入單一IP
- 選擇Y後輸入指定的Port
掃描整個網段(不指定port)
- 點擊程式檔案後,選擇2
- 輸入掃描的起始IP與結束IP
- 選擇是否指定Port(如不選擇或預設為443)
掃描整個網段(指定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 如下圖。

- Yum更新(RedHat / CentOS / Fedora 系列)
利用yum update 套件清單 - 更新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





![指令格式:python ssltest.py [IP或DN] (-p [Port])](https://download.nics.nat.gov.tw/api/v4/file-service/UploadFile/attachfilenew/4412.png)








