Heartbleed真的在天衣無縫地肆虐網(wǎng)絡嗎?媒體和很多技術網(wǎng)站似乎堅信這一點,但有些人對此持懷疑態(tài)度。現(xiàn)在世界各地的很多IT企業(yè)都在試圖從最近的Heartbleed漏洞事件中恢復過來,那么,我們可以從這次事件中學到什么呢?這個漏洞存在于公共和專用網(wǎng)絡中數(shù)千網(wǎng)站所使用的openSSL庫中,并且多年來都未被發(fā)現(xiàn)。攻擊者可以從SSL會話內(nèi)迫使web服務器泄露信息,完全繞過加密。如果你認為這還不夠糟糕的話,最初的報告稱,對TLS/DTLS heartbeat服務擴展的Heartbleed攻擊“毫無蹤跡可循”。
Heartbleed是互聯(lián)網(wǎng)中最令人毛骨悚然的安全漏洞之一,下面讓我們看看它的時間表:
· 2011年—一位德國程序員編寫的一行簡單的代碼在OpenSSL擴展中制造了一個安全漏洞。
· 2011到2014年—在這三年時間中,沒有人注意到這個漏洞;盡管該代碼是開源代碼,這仍然將影響著數(shù)百萬用戶。
· 2014年3月21日—谷歌工程師Neel Mehta和芬蘭安全公司Codenomicon獨立地發(fā)現(xiàn)了這個漏洞。
· 3月21日到4月7日—谷歌、CloudFlare、Akamai、Red Hat和Facebook完成了對其OpenSSL庫的突擊修復。
· 4月7日—MITRE組織在CVE-2014-0160中正式報告了這個Heartbleed漏洞,而OpenSSL項目立即發(fā)布了1.0.1g來修復這個漏洞代碼。
· 4月7日到現(xiàn)在—使用OpenSSL的產(chǎn)品供應商都紛紛開始發(fā)現(xiàn)、診斷和更新其產(chǎn)品。
這個漏洞是什么
讓我們明確一點:這不是SSL/TLS或者heartbeat擴展(RFC 6520)中的漏洞。該漏洞存在于該擴展的OpenSSL部署中。Heartbleed漏洞利用代碼允許攻擊者通過緩沖區(qū)溢出迫使web服務器泄露某些內(nèi)存區(qū)域的64KB數(shù)據(jù)塊。雖然我們無法預測哪些信息會被泄露,但成功的攻擊者已經(jīng)獲取了會話密鑰、密碼和其他通常應該保持保密的信息。
尋找隱藏的證據(jù)
Heartbleed真的在肆虐網(wǎng)絡而沒有留下任何蹤跡嗎?媒體和很多技術網(wǎng)站似乎堅信這一點,但有些人則持懷疑態(tài)度。Heartbleed攻擊一定會留下一些證據(jù):數(shù)據(jù)包。數(shù)據(jù)包總是可以告訴我們所發(fā)生的一切,包括在Heartbleed的情況。當然,我們首先需要獲取這些數(shù)據(jù)包。
當然,受到Heartbleed漏洞利用攻擊的服務器不太可能提供任何證據(jù)。而存儲的數(shù)據(jù)包可以告訴我們成功的Heartbleed漏洞利用的細節(jié),即使對手已經(jīng)停止了主動攻擊。
Heartbleed漏洞利用前的檢測
對網(wǎng)絡的連續(xù)監(jiān)控可以發(fā)現(xiàn)主動的Heartbleed攻擊,但更重要的是,通過足夠多的數(shù)據(jù)包捕捉數(shù)據(jù),我們可以及時發(fā)現(xiàn)攻擊,甚至在公開披露這個Heartbleed漏洞之前。對這些數(shù)據(jù)的調(diào)查可能可以發(fā)現(xiàn)是否已經(jīng)發(fā)生對存在漏洞服務器的實際攻擊。
部署在網(wǎng)絡中的Berkeley Packet F(BPF)可以自動標記來自服務器的高于正常的TLS heartbeat響應。Wireshark、tcpdump和其他工具可以分析捕捉的數(shù)據(jù)包以確認是否受到攻擊。
為什么是BPF?BPF引擎速度快,這是檢查通過現(xiàn)代網(wǎng)絡的海量流量所需要的特性。并且,BPF捕獲的數(shù)據(jù)包是通用格式,可用于數(shù)據(jù)包處理,并且可用于大多數(shù)操作系統(tǒng)和數(shù)據(jù)包分析軟件。BPF的廣泛應用是其可以檢測Heartbeat攻擊的主要原因。
BPF引擎還可以用于Linux、Mac OS、Windows(通過WinPcap),并可以放置在云計算實例中。BPF和tcpdump存在于大多數(shù)網(wǎng)絡設備中,例如防火墻、負載均衡器和應用交付控制器,并可以通過管理控制臺來訪問以進行故障排除。當然,設計用于支持網(wǎng)絡性能管理的產(chǎn)品中的數(shù)據(jù)包分析和存儲引擎幾乎都支持BPF。
對此,技術領域的很多人已經(jīng)提供了大量資源來開發(fā)可檢測Heartbleed攻擊的BPF過濾器。大多數(shù)這些過濾器從端口443/tcp(默認HTTPS端口)檢測流量。通常的大小閾值是69個字節(jié);這可以向上或向下調(diào)整以減少誤報。
總結
了解你網(wǎng)絡中的數(shù)據(jù),基本知道安全服務應如何正常運作,以及能夠檢測異常情況,可以讓你幸免于Heartbleed攻擊。數(shù)據(jù)包不會撒謊,但你必須捕捉到它們來發(fā)現(xiàn)重要信息。
數(shù)據(jù)包捕捉的數(shù)據(jù)可以作為理想的取證依據(jù),從這些信息中,你可以確定在漏洞利用橫行肆虐的那段時間發(fā)生了什么事情。在安全泄露事故中,事實永遠好過單純的猜測。