過去一個星期,全球有超過50萬臺使用特定版本的OpenSSL作為網站傳輸加密工具時,都可能因為一個會外洩記憶體中機敏資料的Heartbleed(心臟淌血)漏洞,讓企業的網站機敏資料直接曝光、無所隱藏,網站安全形同虛設。

這種原本應該是確保網站傳輸安全的OpenSSL加密鎖,卻因為漏洞導致無法發揮功用,也讓許多網站IT和資安人員在面對網站安全的議題時,就好像在走鋼索一樣,深怕一個不小心,就會跌入萬丈深淵、死無翻身之地。

造成這些網站IT人員緊張的原因就是因為OpenSSL的Heartbleed漏洞,漏洞編號CVE-2014-0160。而這個漏洞已經默默的存在超過2年4個月了,直到美國時間4月7日由資安公司Codenomicon及Google安全部門的Neel Mehta,正式對外揭露這個OpenSSL漏洞的存在,而許多全球大型的知名網站,包括Google網站和各種服務、雅虎和Facebook等,都受到Heartbleed漏洞的影響。

根據Netcraft最新統計,全球有66%的網站都使用SSL加密機制,但是使用開放源碼OpenSSL加密套件的網站伺服器,包括Apache和Nginx伺服器,所占的比例大約2成(17.5%)。也就是說,全公司10臺伺服器,包括各種硬體設備在內,若有使用SSL加密,可能就有2臺是使用OpenSSL加密機制。

面對這波來勢洶洶的OpenSSL的加密風險,資安教父Bruce Schneier甚至在他的網站上公開表示,「這是一個災難性的漏洞,如果從1~10要評分的話,他給11分。」他進一步指出,這個漏洞讓網路上的每個人,都可以讀取藉由OpenSSL加密傳輸、保護的系統內容,只要是重要的機敏資訊,都可能因此隨機外洩。

而駭客透過Heartbleed這個漏洞,則有機會取得暫時存放在伺服器記憶體中的機敏資料,例如帳號、密碼、Session、Cookies、加密私鑰甚至是信用卡資料等。也因此,只要是使用OpenSSL作為傳輸加密的網站或是各種設備,都必須確認OpenSSL版本的安全性,都不可掉以輕心。

連「鎖」都不安全了,如何確保網站門戶安全

許多人在瀏覽網站時,經常會看到網址輸入列前面有Https或者是有一個鎖頭的標誌,Https中的s表示安全(Secure),也意味著網站在資料傳輸的過程中,都會採用SSL加密的方式以保護傳輸的內容。

在SSL的加密方案中,除了使用微軟網站加密工具外,還有許多利用開源工具架設的網站伺服器,例如Apache或者是Nginx,或是郵件伺服器、即時通訊伺服器,以及其他使用開源套件,來確保硬體產品安全性,像是VPN(虛擬私有通道)、視訊設備、UTM、防火牆等產品,都可能會選擇使用開放源碼的OpenSSL確保傳輸安全。

由於OpenSSL是相當受歡迎的網路加密軟體函式庫,通常網際網路上的資料傳輸都透過SSL/TLS加密來提供資料的安全與隱私性,保護使用者在瀏覽網站以及一些VPN的資料安全。

而SSL就是「安全插槽層」(Secure Sockets Layer)的縮寫,這是最早由網景公司(Netscape)所制定的一種安全傳輸協定,該通訊協定主要在網路的傳輸中對通訊資料進行加密,確保資料不會被第三方所存取。

至於TLS是「傳輸層安全」(Transport Layer Security)的縮寫,也是網際網路工程工作小組(IETF)將SSL標準化與修改之後的安全傳輸加密協定。

只不過,當這把確認網站傳輸安全的鎖,卻因為有一個Heartbleed漏洞的存在,使得其中幾款型號的鎖(OpenSSL),變得容易被駭客打開,也就無法確保網站門戶的安全。

確認受影響的OpenSSL版是2012年3月14日之後推出的1.0.1版~1.0.1f版,以及1.0.2-beta~1.0.2-beta1等版本。

因為OpenSSL使用範圍甚廣,所有使用OpenSSL的服務,包括:HTTPS、SMTPS、IMAPS、POP3S等,以及其他使用OpenSSL作為傳輸加密服務的各種作業系統也都受到影響,相關的作業系統包括Red Hat Enterprise Linux 6.5 、Debian Wheezy、Ubuntu 12.04.4 LTS、CentOS 6.5、Fedora 18、OpenBSD 5.3、FreeBSD 10.0、NetBSD 5.0.2以及OpenSUSE 12.2等版本。

至於其他OpenSSL更早的版本,包括OpenSSL 0.9.8版、OpenSSL 1.0.0版,以及在2014年4月7日釋出的OpenSSL 1.0.1g版,則是不受到Heartbleed漏洞的影響的版本。

Heartbleed漏洞會導致記憶體機敏資料外洩

造成OpenSSL出現Heartbleed漏洞,和OpenSSL在2011年12月推出一個Heartbeat(心跳)擴充服務有直接關係,而心跳服務則被內建在2012年之後所釋出的各種OpenSSL版本。

戴夫寇爾執行長翁浩正表示,OpenSSL是一個用C語言撰寫的函式庫,根據Github上面的提交記錄,OpenSSL出問題的那行程式碼是在2011年12月31日22時59分57秒所提交的。

「Heartbeat是一個確認網站服務是否持續運作的服務,」翁浩正進一步解釋,當確認Heartbeat服務執行的封包回傳時,伺服器原本也應該要先確認封包大小以及使用者的權限後,再進行Heartbeat驗證。

不過,他指出,出現Heartbleed漏洞的OpenSSL版本,在執行Heartbeat服務時,因為函式庫沒有事先檢查所需要的回傳資料大小,可能是為了加快SSL溝通的速度,一律都傳回64KB大小的資料,而所回傳的資料,也並沒有驗證使用者是否有權限可以接收。

也就是說,當執行Heartbeat服務時,假設,如果原先只需回傳2KB的資料,但因為沒有事先確認原本所需資料的大小,當OpenSSL函式庫預設回傳64KB的資料,執行Heartbeat服務的伺服器就會把暫存在記憶體中其他62KB的資料,一併回傳。

翁浩正說:「這是一個撰寫C語言時,不應該出現的基本程式設計錯誤。」這種確認欄位資料的檢查,其實是所有程式撰寫時的基本功夫,不論是有心或是無意導致這樣的漏洞,會導致Heartbeat預設回傳64KB資料時,造成網站機敏資料外洩。

更讓人擔心的是,因為外洩資料的過程都無從察覺也沒有記錄,對於多數使用有Heartbleed漏洞的OpenSSL來做網站或產品加密的企業和廠商,甚至無法評估過去有多少外洩資料被駭客攔截並再利用。

外洩帳號、密碼是基本款,駭客也可取得加密私鑰

如果,這時候有駭客利用一些概念驗證(PoC)工具,例如「ssltest.py」以及「check-ssl-heartbleed.pl」,用來檢測網站伺服器是否有Heartbleed漏洞時,在檢測的同時,就可以同時獲取伺服器記憶體中的資訊,其中也包括各種可能的機敏資料。

翁浩正表示,因為有許多會員制或者是提供網路交易的網站或平臺,為了確保使用者登入網站時,帳號和密碼資料傳輸的安全,都可能使用有Heartbleed漏洞的OpenSSL做傳輸加密,所外洩暫存在記憶體中的機敏資料,除了使用者和管理員的帳號和密碼外,還可能包括:SSL加密私鑰、Session Cookie,甚至是信用卡資料等。

而他說,戴夫寇爾運用上述PoC工具來檢測網站的Heartbleed漏洞時,就已經可以輕易擷取到使用者的帳號和密碼等機敏資訊;如果外洩的資料中包含了網站管理員的帳號與密碼,駭客就可以利用這些資訊登入網站,如入無人之境。

不僅帳號、密碼容易取得,連加密私鑰都可以利用Heartbleed漏洞取得。資安專家也是臺灣駭客年會召集人蔡松廷表示,駭客所攔截到暫存在記憶體中的資料,機敏程度有多高,其實是非常碰運氣的,主要還是看前一刻在執行的服務是什麼,才可能暫存在記憶體中。

他說,這就像是買刮刮樂一樣,當駭客的運氣普通時,就只會攔截到使用者帳號、密碼;運氣好一點時,或許有機會取得信用卡資料;如果運氣再更好一點,甚至可以取得SSL加密私鑰。當然,取得SSL加密私鑰的難度,就像是得到第一特獎一樣的難。翁浩正則說,一般而言,想要從記憶體中的暫存資料取得SSL的加密私鑰,最容易出現網站重新開機或重新啟用服務過後,有加密私鑰存放在記憶體中,才可能透過Heartbleed漏洞被外洩。

已經有資安業者CloudFlare證實,透過這個Heartbleed漏洞,的確可以取得伺服器的SSL加密私鑰,只不過,要經過多少次的隨機嘗試,才能夠從暫存的記憶體中取得加密私鑰資訊就非常碰運氣,有研究員嘗試了250萬次才能得到加密私鑰;但也有研究員大約花9小時的時間,只嘗試了10萬次,就拿到網站加密私鑰。

當伺服器SSL加密私鑰被駭客取得後,駭客就可以偽造一個不只外觀一樣,連驗證的加密私鑰都有效的網站,來接收使用者各種登入和傳送的訊息,此時,駭客所偽冒的假網站,就和真實網站一樣真實。

使用VPN服務風險最高,使用者務必小心

由於OpenSSL也用於許多產品中,蔡松廷認為,除了使用者帳號、密碼以及加密私鑰外洩外,這一波對企業造成最大風險的產品,則是使用Heartbleed漏洞的OpenSSL做傳輸加密的VPN產品。

他強調,許多企業為了簡化員工登入各種網站的繁瑣程度,都會採用單一登入(SSO)機制,而通常登入VPN的帳號、密碼,也和企業內AD或LDAP的帳號、密碼一致,「當駭客可以取得企業內AD或LADP的帳號、密碼時,就可以登入企業內部系統、竊取企業機敏資料。」蔡松廷說。

升級OpenSSL最新版本才是最佳解決之道

翁浩正指出,所有使用OpenSSL提供Https加密服務的網站,例如網路銀行、各種社交網站、電子商務網站,以及有會員機制的網站在內,都在這波攻擊範圍內。他說:「要修補有Heartbleed漏洞的OpenSSL,升級到OpenSSL 1.0.1g版和1.0.2-beta2版,是最根本的解決之道。」至於採用舊版本的OpenSSL,雖然不會受到Heartbleed漏洞的影響,但舊版本仍有其他加密的漏洞,仍不可掉以輕心。

相較於國外,臺灣有許多企業架設的網站伺服器,多是採用微軟解決方案,在這一波Heartbleed漏洞的風波中,可以倖免於難。其他政府機關,像是財政部財政資訊中心在面對即將來臨的報稅季節,也要求清查所使用SSL憑證的安全性。可以作為網路報稅之用的內政部自然人憑證,所使用中華電信開發的HiSecure加密模組,雖然有使用OpenSSL,但使用版本是1.0.0a,並不在此次有Heartbleed漏洞的版本範圍中。

至於,行政院資通安全辦公室副主任吳啟文則表示,目前已經針對OpenSSL的Heartbleed漏洞發布公告及資安警訊通知各機關,已經有包括網擎資訊Mail 2000 v6 SP3受到影響,也已經通告20多個使用機關。他說,後續將使用工具直接於GSN進行掃描,以整體掌握政府機關受影響的網站數量。

負責Muzik Online所有技術服務的總工程師曾義峰表示,他在第一時間得知這個漏洞後,就開始等官方釋出的修補程式,在修補完所有的系統後,也完成測試和驗收。

曾義峰在這個過程中,也觀察到各家作業系統廠商的緊急應變速度。他說,以OpenSSL的Heartbleed漏洞揭露時間2014年4月6日 0時為基準點,作業系統RedHat在2014年4月7日上午07時47分00秒正式修復,是所有作業系統廠商中,最快完成修補的廠商,這個速度也比OpenSSL在2014年4月7日16時釋出正式修補程式還早。

依據各家官方源庫或官方部落格公布的修復時間為參考基準,其他在4月7日完成漏洞修補的作業系統包括:OpenBSD、Arch Linux、Debian、FreeBSD和Ubuntu等;在4月8日才完成修補的作業系統則包括:Fedora、CentOS、OpenSUSE、Scentific和Gentoo等。

另外,根據SANS(美國系統網路安全研究院)所做的資安研究報告,這一波使用有Heartbleed漏洞的OpenSSL的產品,包括各家網路和資安設備廠商在內,例如:思科、Juniper、Fortinet、F5、Novell、Aruba和Check Point等,都嚴重影響企業網路安全的部署。

翁浩正指出,現在有許多臺灣企業面臨到困境則是,各種使用有問題OpenSSL加密的網路或者是資安設備,因為已經過保固期,難以直接更新產品的韌體,一定要請原廠協助升級或更新才行。

對於無法更新的作業系統或者是產品等,蔡松廷表示,還是可以依賴網路閘道端的防火牆和入侵偵測防禦(IPS)等產品,攔下有問題的Heartbeat封包,確保企業網站和相關產品的安全性。翁浩正則指出,若企業使用Snort IDS,官方已經釋出 SID 30510 到 30517 來偵測,並且在 Community Rules中也有包含更新版本,也可以藉此防禦駭客利用Heartbleed漏洞的攻擊。

企業可參考8大自保原則

要防範駭客利用Heartbleed漏洞攻擊,翁浩正建議,所有的企業都可以參考下列8大步驟做自我檢視。首先,確認自己的OpenSSL版本是否在受害範圍;其次,使用ssltest.py等檢測工具,檢測該網站或產品是否含有Heartbleed漏洞;第三點,更新OpenSSL至1.0.1g版或1.0.2-beta2版;第四點,重開所有與OpenSSL函式庫相關的服務。

第五點,因為Heartbleed漏洞已經存在超過2年,在無法確認加密私鑰是否外洩的前提下,企業必須重新產生SSL加密私鑰,接下來,就必須做到第六點,將網站舊憑證撤銷,確保安全性。第七點,必須清除所有目前網頁伺服器上的Session;最後一點則是,包括管理員和使用者都應該更換密碼,並且定期追蹤帳號是否有被盜用的跡象。

雖然這次Heartbleed的漏洞都產生在伺服器端,但目前許多對外揭露的災情,都仍只是冰山一角。對於個人端的防護,除了要變更受駭網站所使用的密碼外,為了避免駭客利用資訊拼圖方式,從單一網站的帳號密碼,可以取得登入其他網站的資訊,各個網站的密碼也應該避免相同。

再者,這波包括Android手機也在受駭的範圍內,也可以利用檢查Heartbleed漏洞的App,對於手機內的作業系統和App做一次檢查。

戴夫寇爾執行長翁浩正表示,該公司資安研究員利用工具登入Yahoo信箱時,在第一次嘗試時,就已經取得使用者的帳號及密碼。(已遮罩)


Advertisement

更多 iThome相關內容