且其影響還不止于此。
為黑掉該型路由器,安全公司 Red Balloon 的研究人員利用了兩個漏洞。第一個漏洞是思科IOS操作系統(tǒng)漏洞 (別跟蘋果的iOS搞混了),能使黑客遠程獲取設(shè)備的root權(quán)限。這個漏洞的危險性很高,但并不罕見,尤其是對路由器而言,而且通過軟件補丁就可以相對容易地加以修復(fù)。
但第二個漏洞就沒那么好對付了。研究人員一旦獲取到root權(quán)限,就可以繞過該型路由器最基本的安全防護措施——思科于2013年往企業(yè)設(shè)備中全面引入的 Trust Anchor。既然找到了在某型設(shè)備上繞過該安全防護措施的方法,也就說明只要針對特定設(shè)備進行微調(diào),思科遍布全球的成千上萬臺設(shè)備都逃不脫 Trust Anchor 可能失效的命運,包括企業(yè)路由器、網(wǎng)絡(luò)交換機、防火墻等等各種設(shè)備。
事實上,攻擊者完全可以運用這倆技術(shù)全面入侵這些設(shè)備所在的網(wǎng)絡(luò)。
此前就披露過思科重大漏洞的 Red Balloon 創(chuàng)始人兼首席執(zhí)行官 Ang Cui 就曾表示:
拋錨
近些年來,稍具安全意識的公司都開始往主板上添加 “安全飛地”。不同公司的解決方案名稱不同:英特爾有SGX,Arm有TrustZone,蘋果有安全飛地,思科就是 Trust Anchor。
這些安全飛地,要么是計算機常規(guī)內(nèi)存中隔離出來的一片安全區(qū)域,要么是一塊獨立芯片——與計算機主處理器分離的安全世外桃源。無論用戶和管理員的系統(tǒng)權(quán)限有多高,都不能修改安全飛地中的內(nèi)容。由于其不可更改的特性,安全飛地可以監(jiān)管并驗證其他所有東西的完整性。
安全計算工程師通常認為此類機制理論完備、部署高效。但實際上,僅僅依靠單一元素作為整個系統(tǒng)的檢查機制是非常危險的。只要破壞了該安全保障——已在很多公司的實現(xiàn)中證明了此可能性,就等于脫去了設(shè)備的關(guān)鍵防護,讓設(shè)備等于在網(wǎng)絡(luò)上裸奔。更糟的是,篡改飛地還可以讓它表現(xiàn)得一切正常,讓攻擊者的破壞活動得以隱秘而持續(xù)地進行。
思科1001-X的情形就是這樣。 Red Balloon 團隊特意演示了他們可以破壞該設(shè)備的安全啟動過程,也就是 Trust Anchor 實現(xiàn)的在設(shè)備啟動時檢查軟硬件協(xié)調(diào)基本代碼真實性和完整性的功能。該功能是確保攻擊者沒有獲得設(shè)備完整控制權(quán)的重要途徑。
5月13日,思科發(fā)布了針對 Red Balloon 研究人員披露的IOS遠程控制漏洞的修復(fù)補丁。該公司宣稱,將為受安全飛地攻擊影響的所有產(chǎn)品系列提供修復(fù)。思科拒絕在公開披露之前描述這些修復(fù)補丁的性質(zhì)和推出時機。安全啟動漏洞是否直接影響 Trust Anchor 也尚無定論。思科安全公告顯示,所有補丁都尚有幾個月時間才會發(fā)布,該攻擊目前尚無解決方法。即便補丁確實可用之時,也將需要現(xiàn)場重編程才能應(yīng)用補丁——意味著補丁無法遠程推送,因為它們太底層了。
思科發(fā)言人在書面聲明中稱:作為澄清,思科會公布幾個相關(guān)的補充性平臺安全功能。其中之一是思科 Secure Boot (安全啟動)——提供系統(tǒng)軟件完整性及真實性的信任根。在特定思科平臺中提供的另一個功能是 Trust Anchor 模塊——向系統(tǒng)提供硬件真實性、平臺身份及其他安全服務(wù)。Red Balloon 演示的攻擊中沒有直接涉及 Trust Anchor 模塊。
思科似乎想在其“Trust Anchor Technologies”、“Trustworthy Systems”和“ Trust Anchor module”之間做個區(qū)分,闡明其認為僅有安全啟動受該研究所曝漏洞影響的原因。
Red Balloon 研究人員對此表示異議,指出思科的專利及其他文檔表明安全啟動功能就是 Trust Anchor 實現(xiàn)的。Trust Anchor 肯定受此類攻擊影響,因為所有工具都在一個信任鏈中。下面這張思科圖表顯示得很清楚。
FPGA之旅
通過篡改 Trust Anchor 核心硬件組件 “現(xiàn)場可編程門陣列(FPGA)”,包含 Red Balloon 首席科學(xué)家 Jatin Kataria 和獨立安全研究員 Rick Housley 的研究小組成功繞過了思科的安全啟動防護。計算機工程師往往將FPGA視為神奇魔法,因為它們既有微控制器 (嵌入式設(shè)備常用的處理器) 的功用,又可被現(xiàn)場重編程。換句話說,與出廠后就不能被制造商物理修改的傳統(tǒng)處理器不同,F(xiàn)PGA電路是可以在部署之后再做更改的。
FPGA從名為碼流的文件中抽取程序,而碼流文件通常是由思科之類硬件制造商自定義編寫的。為防FPGA被惡意人士重編程,F(xiàn)PGA碼流非常難以從外部加以解釋。它們包含一系列復(fù)雜配置指令,物理規(guī)定了電路中邏輯門的開關(guān)狀態(tài),評估FPGA的安全研究員已經(jīng)發(fā)現(xiàn),映射FPGA碼流邏輯所需的算力高到無法承受。
但 Red Balloon 的研究人員發(fā)現(xiàn),思科 Trust Anchor 的FPGA實現(xiàn)方式讓他們無需映射出整個碼流。他們發(fā)現(xiàn),思科安全啟動檢測到系統(tǒng)信任受損時會等待100秒——思科工程師設(shè)計的暫停,可能是為了獲得足夠的時間以部署故障修復(fù)更新,然后物理切斷設(shè)備電源。研究人員意識到,通過修改控制該斷電開關(guān)的部分碼流,他們可以凌駕于該機制之上。然后設(shè)備就可以正常啟動了——即便安全啟動功能確實檢測到了信任受損情況。
研究人員對6塊1001-X系列路由器主板進行了該試錯工作,每塊主板大約花去他們1萬美元,整個研究經(jīng)費高到不是普通人能承受的。在主板上進行物理操作和焊接以找出重置引腳的過程中他們還燒掉了兩臺路由器。
攻擊者可以提前做好 Red Balloon 所做的類似工作,在測試設(shè)備上開發(fā)出遠程漏洞利用程序,然后再部署應(yīng)用。為發(fā)動此類攻擊,黑客會先用遠程root權(quán)限漏洞來獲取初始立足點,然后部署第二階段攻擊以繞過安全啟動功能,甚至深入Trust Anchor。而此時,受害者尚毫無理由懷疑自己已經(jīng)被黑了,因為他們的設(shè)備還能正常啟動。
該研究給包含思科在內(nèi)的所有網(wǎng)絡(luò)和IT設(shè)備生產(chǎn)商都提了個醒: 這些設(shè)計原則不再安全。廠商不能僅僅依賴FPGA實現(xiàn)神奇功能。這些東西太過底層,非常難以檢測。當(dāng)安全啟動功能被凌駕的時候,設(shè)備的所有信任都隨之而逝了。
問題嚴重
思科會發(fā)布什么樣的修復(fù)補丁尚未可知,但很有可能不對思科硬件架構(gòu)做物理調(diào)整是無法完全緩解該漏洞了。或許未來的產(chǎn)品線中實現(xiàn)的FPGA需要從加密碼流提取程序了吧。這么做會抬高產(chǎn)品部署的金錢和算力成本,但至少能夠防住此類攻擊。
而且,該研究的影響不局限于思科一家。該研究提出的創(chuàng)新概念可能會激發(fā)出一系列操縱全球各型產(chǎn)品中FPGA碼流的新方法,包括高風(fēng)險或敏感環(huán)境中的設(shè)備。
不過,目前為止還只有思科的設(shè)備需要擔(dān)心此類攻擊。思科向媒體表示:目前尚無計劃發(fā)布審計工具供客戶評估自身設(shè)備是否已經(jīng)遭到攻擊,也沒有證據(jù)證明該技術(shù)已經(jīng)出現(xiàn)野生利用案例。


