當資安核爆發生時
Published by Yi-Lang Tsai under 資訊安全, 資訊技術 on 4/15/2014 05:00:00 上午
最近最熱門的資安議題,就屬OpenSSL所導致的致命弱點,可以讓攻擊者利用這個弱點取得目標主機記憶體中的機敏資料,Heartbleed Bug (CVE-2014-0160)可以稱得上是目前影響範圍最大的弱點之一,關於這個弱點的詳細資料,可以參考http://heartbleed.com/網站上的資訊,大多數的網站為了在通訊過程能夠確保資料傳遞的安全,都會啟用https的加密方式,尤其是對於網站提供用者登入或是具備網站後台的登入畫面,都會採用加密的通訊協定,希望在網路上的通訊無法被側錄與解析出其中的內容,一個多年來被公認是安全的處理方式,就在Openssl.org發佈了以下的弱點消息,一多之間成了許多系統與網站管理人最急需解決的資安問題,從1.0.1到1.0.2-beta都存在這個嚴重的漏洞,這幾天在資安領域投入了像核爆般的震撼,許多資安研究人員與駭客忙了起來,前者是為了把問題解決,後者是為了找出有問題的網站,大家都在比時間與速度,看誰能夠取得網站的機敏資料:
OpenSSL Security Advisory [07 Apr 2014]
========================================
TLS heartbeat read overrun (CVE-2014-0160)
==========================================
A missing bounds check in the handling of the TLS heartbeat extension can be
used to reveal up to 64k of memory to a connected client or server.
Only 1.0.1 and 1.0.2-beta releases of OpenSSL are affected including
1.0.1f and 1.0.2-beta1.
Thanks for Neel Mehta of Google Security for discovering this bug and to
Adam Langley and Bodo Moeller for
preparing the fix.
Affected users should upgrade to OpenSSL 1.0.1g. Users unable to immediately
upgrade can alternatively recompile OpenSSL with -DOPENSSL_NO_HEARTBEATS.
1.0.2 will be fixed in 1.0.2-beta2.
上述這段簡短的公告,揭漏這個核爆級的資安問題,主要在於目前許多的網路服務,採用了OpenSSL的套件,以增強通訊上的安全,而這個關鍵點卻出了資安的大漏洞,影響的層面之廣可想而知,攻擊者可以使用這個漏洞,讀取目標主機的記憶體中64KB的資料,再利用傳送Heartbeat的封包,利用memcpy控制變數來複製錯誤的記憶體資料,而取得其中的機敏資料,這些資料可以包括了使用者的登入資訊、連線的Cookie等,當取得使用者的登入資訊後,攻擊者可以利用這些資訊假冒身份登入系統。
【電腦環境運作的檢測工具】
以下為目前主要在一般電腦上執行此漏洞檢測的平台,可以將測試的目標主機透過這些平台進行遠端的分析,以驗證目前目標主機所使用的系統環境,以及是否存在此漏洞。
網址:https://gist.github.com/search?q=ssltest.py
【行動版的檢測工具】
行動裝置是目前的主要的發展趨勢,許多人會在行動裝置上安裝許多的應用軟體,因此如果想要檢測Heartbleed的漏洞,也可以使用行動裝置上的應用軟體(APP)進行自我檢測。
【反向測試工具】
Heartbleed的漏洞影響的並不止於伺服器端的資訊外洩,對於使用者端也會造成部份的影響,因此在檢測的過程中,務必需要使用反向測試的工具,測試本身目前的環境是否存在同樣的問題。
【解決方案】
要解決這個問題,最好的方式就是將目前系統上所使用的OpenSSL昇級至1.0.1g的版本,能夠儘快的把這個已知的大漏洞修補好,另外再使用檢測工具以及反向檢測工具,同時驗證伺服器端與使用者端是否仍然存在漏洞所衍生出來的風險。
下載OpenSSL的位址:
http://www.openssl.org/source/
如果無法立即進行版本的昇級,建議可以加入-DOPENSSL_NO_HEARTBEATS參數後,重新編譯OpenSSL。
OpenSSL Security Advisory [07 Apr 2014]
========================================
TLS heartbeat read overrun (CVE-2014-0160)
==========================================
A missing bounds check in the handling of the TLS heartbeat extension can be
used to reveal up to 64k of memory to a connected client or server.
Only 1.0.1 and 1.0.2-beta releases of OpenSSL are affected including
1.0.1f and 1.0.2-beta1.
Thanks for Neel Mehta of Google Security for discovering this bug and to
Adam Langley
preparing the fix.
Affected users should upgrade to OpenSSL 1.0.1g. Users unable to immediately
upgrade can alternatively recompile OpenSSL with -DOPENSSL_NO_HEARTBEATS.
1.0.2 will be fixed in 1.0.2-beta2.
上述這段簡短的公告,揭漏這個核爆級的資安問題,主要在於目前許多的網路服務,採用了OpenSSL的套件,以增強通訊上的安全,而這個關鍵點卻出了資安的大漏洞,影響的層面之廣可想而知,攻擊者可以使用這個漏洞,讀取目標主機的記憶體中64KB的資料,再利用傳送Heartbeat的封包,利用memcpy控制變數來複製錯誤的記憶體資料,而取得其中的機敏資料,這些資料可以包括了使用者的登入資訊、連線的Cookie等,當取得使用者的登入資訊後,攻擊者可以利用這些資訊假冒身份登入系統。
【電腦環境運作的檢測工具】
- 檢查套件的版本
可以輸入 sudo apt-cache showpkg openssl 指令,就可以知道目前系統上所使用的版本。
...
blinc-server-maker, openssl 0.9.8
openvpn, openssl
openssl-blacklist, openssl 0.9.8g-9
...
- Heartbleed test
- eartbleed test
- LastPass Heartbleed checker
- Qualys SSL Labs Server Test
- Chromebleed擴充功能
- ssltest.py Test
#!/usr/bin/python
# Quick and dirty demonstration of CVE-2014-0160 by Jared Stafford (jspenguin@jspenguin.org)
# The author disclaims copyright to this source code.
import sys
import struct
import socket
import time
import select
import re
from optparse import OptionParser
options = OptionParser(usage='%prog server [options]', description='Test for SSL heartbeat vulnerability (CVE-2014-0160)')
options.add_option('-p', '--port', type='int', default=443, help='TCP port to test (default: 443)')
def h2bin(x):
return x.replace(' ', '').replace('\n', '').decode('hex')
hello = h2bin('''
16 03 02 00 dc 01 00 00 d8 03 02 53
43 5b 90 9d 9b 72 0b bc 0c bc 2b 92 a8 48 97 cf
bd 39 04 cc 16 0a 85 03 90 9f 77 04 33 d4 de 00
00 66 c0 14 c0 0a c0 22 c0 21 00 39 00 38 00 88
---
- 美麗島雲端安全科技OpenSSL Heartbleed Tester
- Mass scanning tools
網址:https://gist.github.com/search?q=ssltest.py
【行動版的檢測工具】
行動裝置是目前的主要的發展趨勢,許多人會在行動裝置上安裝許多的應用軟體,因此如果想要檢測Heartbleed的漏洞,也可以使用行動裝置上的應用軟體(APP)進行自我檢測。
- Bluebox Security Heartbleed Scanner
- Heartbleed Detector
- CMSecurity Heartbleed Detector
- Heartbleed Pulse
【反向測試工具】
Heartbleed的漏洞影響的並不止於伺服器端的資訊外洩,對於使用者端也會造成部份的影響,因此在檢測的過程中,務必需要使用反向測試的工具,測試本身目前的環境是否存在同樣的問題。
- Reverse Heartbleed
- Heartbleed Tester for Client
要解決這個問題,最好的方式就是將目前系統上所使用的OpenSSL昇級至1.0.1g的版本,能夠儘快的把這個已知的大漏洞修補好,另外再使用檢測工具以及反向檢測工具,同時驗證伺服器端與使用者端是否仍然存在漏洞所衍生出來的風險。
下載OpenSSL的位址:
http://www.openssl.org/source/
如果無法立即進行版本的昇級,建議可以加入-DOPENSSL_NO_HEARTBEATS參數後,重新編譯OpenSSL。