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