信息來(lái)源:FreeBuf
近期,Google和荷蘭國(guó)家數(shù)學(xué)和計(jì)算機(jī)中心(Centrum Wiskunde & Informatica,CWI)的研究人員完成了針對(duì)第一例SHA-1的碰撞攻擊,創(chuàng)造了兩個(gè)hash值完全相同但內(nèi)容截然不同的文件。然而,在真實(shí)的信息安全世界中,這種攻擊又會(huì)怎樣對(duì)個(gè)人和組織機(jī)構(gòu)造成何種威脅呢?
對(duì)SHA-1算法不安全的擔(dān)心由來(lái)已早。在2015年荷蘭國(guó)家數(shù)學(xué)和計(jì)算中心和新加坡南洋理工大學(xué)研究員聯(lián)合發(fā)表的論文中,描述了SHA-1碰撞攻擊的各種理論性可能。同時(shí),在RSA 2016的密碼學(xué)家研討會(huì)上,該篇論文得到了很多關(guān)注,參會(huì)的著名密碼學(xué)專(zhuān)家Adi Shamir也預(yù)測(cè),真實(shí)的SHA-1碰撞攻擊在未來(lái)幾個(gè)月將會(huì)成功實(shí)現(xiàn)。在此次會(huì)議之后,一些安全公司正式對(duì)外宣布SHA-1機(jī)制可能存在缺陷;與此同時(shí),因?yàn)闆](méi)有真實(shí)的攻擊成功案例,這種攻擊也帶來(lái)了諸多質(zhì)疑。更多請(qǐng)參考FreeBuf百科《深度:為什么Google急著殺死加密算法SHA-1》。
但為了防止任何理論攻擊可能,去年開(kāi)始,一些安全公司開(kāi)始反對(duì)繼續(xù)使用SHA-1算法。盡管谷歌、Facebook、微軟和Mozilla等公司已采取措施替換SHA-1算法,但哈希函數(shù)仍在廣泛使用。當(dāng)Google和CWI的實(shí)驗(yàn)成功之后,SHA-1碰撞攻擊再次受到關(guān)注。這種攻擊已經(jīng)成為現(xiàn)實(shí),所以,我們應(yīng)該如何去防范和修復(fù)呢?
影響分析
幾年前,針對(duì)MD5算法存在“構(gòu)造前綴碰撞攻擊”(chosen-prefix collisions),而真實(shí)案例中,F(xiàn)lame(火焰)病毒就使用了此種攻擊方法。SHA-1碰撞攻擊實(shí)現(xiàn)后,惡意軟件開(kāi)發(fā)者將會(huì)創(chuàng)造什么樣的病毒,值得想像。
在此,我們就針對(duì)一些利用微軟簽名校驗(yàn)的惡意程序,結(jié)合SHA-1碰撞作一些攻擊可能的探討。為了說(shuō)明SHA-1碰撞攻擊的現(xiàn)實(shí)威脅,我們找到了一例很有趣的例子:微軟內(nèi)核模式代碼簽名策略,攻擊針對(duì)目標(biāo)是加載的內(nèi)核模式驅(qū)動(dòng)程序簽名認(rèn)證,以下是包括WIN 10在內(nèi)的該類(lèi)簽名規(guī)范和要求:
我們可以看到,其中列出的哈希機(jī)制就包括SHA-1,所以,毫無(wú)疑問(wèn),SHA-1碰撞攻擊將會(huì)產(chǎn)生驅(qū)動(dòng)簽名濫用情況,為惡意內(nèi)核代碼程序的利用傳播敞開(kāi)大門(mén)。事實(shí)上,SHA-1簽名校驗(yàn)的驅(qū)動(dòng)程序并不少見(jiàn),以下就是一些我們發(fā)現(xiàn)的實(shí)例:
在Win 10系統(tǒng)中,這類(lèi)存在“風(fēng)險(xiǎn)隱患”的驅(qū)動(dòng)程序是不是就非常少呢?但由于存在很多第三方驅(qū)動(dòng),所以,情況讓你超乎想像。雖然微軟在最新的系統(tǒng)適配產(chǎn)品中明確反對(duì)SHA-1機(jī)制認(rèn)證程序,但很多第三方驅(qū)動(dòng)依然大范圍存在此種情況。另外,在一些之前的操作系統(tǒng)版本(Win 7\Win 8)中,還存在著大量且多年未更新的此類(lèi)驅(qū)動(dòng)。例如:
從這里就可以看出,SHA-1將會(huì)成為很多組織機(jī)構(gòu)和相關(guān)系統(tǒng)的一個(gè)心頭大患。受影響的系統(tǒng)和服務(wù)包括:數(shù)字證書(shū)簽名、郵件、PGP/GPG 簽名、軟件發(fā)布簽名、備份系統(tǒng)、冗余熱備份系統(tǒng)、Git……等等,除了網(wǎng)絡(luò)安全之外,影響將會(huì)波及很多使用傳統(tǒng)操作系統(tǒng)的大型組織機(jī)構(gòu)。這種很多第三方軟件公司持續(xù)使用的,運(yùn)行機(jī)制本身就存在的問(wèn)題,將會(huì)成為一個(gè)嚴(yán)重的信息安全問(wèn)題。要保證安全,只有從核心和本質(zhì)上進(jìn)行處理,但對(duì)很多軟件公司來(lái)說(shuō),這又會(huì)成為一個(gè)“牽一發(fā)動(dòng)全身”的棘手問(wèn)題。
深入研究之后,我們甚至發(fā)現(xiàn)一些固件和硬件也受到此問(wèn)題影響。例如,普遍使用的僅支持SHA-1驗(yàn)證的TPM 1.2芯片,SHA-1碰撞攻擊將會(huì)直接對(duì)一些使用SHA-1算法的固件可信啟動(dòng)機(jī)制造成影響。在這方面,微軟在Win10系統(tǒng)中已經(jīng)作了一些限制,如其加密方式不支持TPM1.2芯片。
SHA-1碰撞攻擊的惡夢(mèng)才剛剛開(kāi)始,我們應(yīng)該盡快結(jié)束使用SHA-1的時(shí)代。谷歌將在接下來(lái)的90天內(nèi)公布SHA-1碰撞攻擊的測(cè)試工具。
SHA-1碰撞會(huì)被用到一些野生攻擊中嗎?
證據(jù)表明,攻擊者必須在擁有原始文件和已知哈希的情況下才能完成碰撞攻擊,另外,由于攻擊利用了定向編輯,不是每次編輯都會(huì)有效。換句話說(shuō),即使是破解了SSH或TLS的認(rèn)證證書(shū),也都不可能實(shí)現(xiàn),需要對(duì)原始文件進(jìn)行一些非常細(xì)微的定向更改才能保證碰撞攻擊成功。
雖然在某種程度上來(lái)說(shuō),更改簽名驗(yàn)證很容易實(shí)現(xiàn),但如果要進(jìn)行偽裝式的SHA-1碰撞攻擊,想要讓受害者迷惑,完全對(duì)看不出馬腳,這就需要對(duì)利用文檔進(jìn)行破壞性的改造,而不只是通常性修改。后續(xù)可能會(huì)有一些針對(duì)SHA-1碰撞攻擊的檢測(cè)研究。
總體上來(lái)說(shuō),要實(shí)現(xiàn)該項(xiàng)攻擊需要很大的代價(jià)成本。如果攻擊者使用類(lèi)似于比特幣挖礦的專(zhuān)業(yè)裝備和技能,攻擊可能將會(huì)變得更加便捷。Google和CWI聲稱(chēng),該攻擊實(shí)現(xiàn)需要大量的CPU和GPU計(jì)算,同時(shí)還需高效的分布式操作,攻擊第一階段攻擊是在Google的異質(zhì)CPU集群上進(jìn)行的,并擴(kuò)展至8個(gè)物理地址;第二階段攻擊代價(jià)更高,是在Google的K20、K40和K80異質(zhì)GPU集群上進(jìn)行的。經(jīng)相關(guān)研究人員計(jì)算得出,使用亞馬遜云服務(wù)AWS進(jìn)行第二階段的攻擊,耗資約56萬(wàn)美元。但是,若攻擊者足夠耐心并利用現(xiàn)場(chǎng)參考案例,成本可降至11萬(wàn)美元。
如何修復(fù)和預(yù)防這種攻擊呢?
作為安全和開(kāi)發(fā)團(tuán)隊(duì)來(lái)說(shuō),最好的方法就是使用SHA-256等更復(fù)雜的算法,或使用兩個(gè)獨(dú)立的加密算法。當(dāng)然,對(duì)于攻擊檢測(cè)來(lái)說(shuō),仍然可以使用Google發(fā)布的開(kāi)源檢測(cè)代碼。
*參考來(lái)源:Cylance,FB小編clouds編譯,轉(zhuǎn)載請(qǐng)注明來(lái)自FreeBuf.COM