在HITB 2016 會(huì)議中,Mi3 Security公司的安全研究員Chilik Tamir發(fā)表了一個(gè)關(guān)于“SandJacking”攻擊的演講,利用一個(gè)未打補(bǔ)丁的iOS漏洞在未越獄的iOS設(shè)備上使用惡意版本替換合法的應(yīng)用程序,獲取設(shè)備的敏感信息。
開(kāi)發(fā)一個(gè)以Apple iOS系統(tǒng)為目標(biāo)的惡意軟件并不簡(jiǎn)單,首先,iOS中的應(yīng)用程序都運(yùn)行在沙箱中以防止其他進(jìn)程訪問(wèn)。沙箱中包含文檔、數(shù)據(jù)庫(kù)、cookies……其中的任何一項(xiàng)都會(huì)導(dǎo)致嚴(yán)重的信息泄露,因此保護(hù)沙箱十分重要。
蘋果也嘗試要求所有通過(guò)官網(wǎng)應(yīng)用商店發(fā)布的應(yīng)用程序使用證書簽名,而該證書則需要根據(jù)嚴(yán)格的識(shí)別程序獲取。另外,蘋果公司會(huì)對(duì)應(yīng)用程序進(jìn)行嚴(yán)格的審查,其安裝過(guò)程也會(huì)經(jīng)過(guò)全面的驗(yàn)證。
盡管如此,還是有一些攻擊者可以利用設(shè)計(jì)缺陷和漏洞使用惡意軟件感染設(shè)備。例如WireLurker,YiSpecter,XCodeGhost,ZergHelper,AceDeceiver。
濫用蘋果證書安裝惡意軟件
Chilik Tamir在會(huì)上演示了攻擊者如何利用蘋果最新推出的開(kāi)發(fā)功能安裝惡意軟件。
在Xcode 7的介紹中,獨(dú)立開(kāi)發(fā)者只需要提供Apple ID就可以獲取證書,創(chuàng)建iOS應(yīng)用程序。眾所周知,創(chuàng)建Apple ID十分容易,創(chuàng)建者只需要提供一個(gè)用戶名和一個(gè)電子郵箱——當(dāng)然,這些都無(wú)法證實(shí)是否真實(shí)。
但是應(yīng)用程序的開(kāi)發(fā)者并不想將這些類型的證書上傳到應(yīng)用商店,這就意味著,他們可以不受蘋果的審查。當(dāng)然,相比那些通過(guò)正規(guī)程序獲取證書的應(yīng)用,這些應(yīng)用的功能顯然是受限的。準(zhǔn)確的說(shuō)是,這些應(yīng)用程序不允許訪問(wèn)蘋果支付,應(yīng)用程序域,游戲中心,iCloud,內(nèi)購(gòu)功能,存折/錢包,并且它們不能使用推送通知。
然而,這些使用“匿名”證書創(chuàng)建的應(yīng)用仍然可以用于惡意軟件,利用獲取GPS數(shù)據(jù),訪問(wèn)受害者的地址簿和日歷,泄露exif數(shù)據(jù),使用HealthKit框架(用于健康和健身應(yīng)用)。
Su-A-Cyder工具
Tamir發(fā)布了一個(gè)名為Su-A-Cyder的POC工具,可以創(chuàng)建惡意的版本快速替換iOS設(shè)備中的合法應(yīng)用。該工具創(chuàng)建的程序與合法的應(yīng)用發(fā)揮同樣的功能,但是其中包含惡意的功能,使攻擊者可以該應(yīng)用的完全控制和訪問(wèn)權(quán)限。
由于Su-A-Cyder設(shè)計(jì)成在目標(biāo)設(shè)備連接計(jì)算機(jī)時(shí),使用惡意應(yīng)用替換合法應(yīng)用,因此該工具及其威脅向量更適用于具有高度針對(duì)性的攻擊,例如攻擊者可以接觸目標(biāo)設(shè)備并已知密碼。
然而,Tamir指出,Su-A-Cyder攻擊還有一些可利用場(chǎng)景。例如,想要監(jiān)視其配偶和子女的人,擁有多個(gè)設(shè)備訪問(wèn)權(quán)的手機(jī)維修店員,企業(yè)員工將設(shè)備交給IT技術(shù)人員等。
在iOS 8.3版本發(fā)布之前,攻擊者可以很容易地通過(guò)為惡意軟件分配一個(gè)類似的標(biāo)識(shí)符(綁定ID)并在設(shè)備上安裝(覆蓋原有版本)來(lái)替換合法的應(yīng)用。iOS 8.3版本之后,蘋果禁止與存在ID相似的Apple ID安裝應(yīng)用。
SandJacking攻擊
Tamir發(fā)現(xiàn)了一種新的方法,并將其命名為SandJacking,攻擊者可利用該方法在最新版本的iOS設(shè)備中使用Su-A-Cyder技術(shù)。
盡管蘋果在應(yīng)用安裝過(guò)程中會(huì)打補(bǔ)丁,但是它忽略了恢復(fù)過(guò)程。這就使得擁有訪問(wèn)權(quán)限的攻擊者可以創(chuàng)建備份,刪除合法應(yīng)用,安裝惡意版本,然后從備份中恢復(fù)設(shè)備,該恢復(fù)不會(huì)刪除惡意應(yīng)用,攻擊者可以訪問(wèn)該應(yīng)用相關(guān)的所有數(shù)據(jù)。
值得注意的是,該惡意應(yīng)用只能為攻擊者提供應(yīng)用沙箱的訪問(wèn)權(quán)限。這意味著攻擊者需要為每個(gè)目標(biāo)應(yīng)用程序創(chuàng)建惡意版本。但是Tamir認(rèn)為如果考慮自動(dòng)化的話這將不會(huì)成為阻礙攻擊者的難題。
在會(huì)議上,Tamir以Skype為例演示了SandJacking攻擊。他在一次采訪中說(shuō),SandJacking攻擊已經(jīng)在多個(gè)流行應(yīng)用中成功測(cè)試。
惡意應(yīng)用安裝后,用戶很難發(fā)現(xiàn)它與原程序的區(qū)別——用戶需要查看應(yīng)用的證書和設(shè)備配置,驗(yàn)證該應(yīng)用是否來(lái)自合法的開(kāi)發(fā)者。
該SandJacking漏洞在2015年12月被研究人員發(fā)現(xiàn),并在1月報(bào)告給蘋果,蘋果已經(jīng)確認(rèn)了該漏洞,但是還沒(méi)有發(fā)布補(bǔ)丁。該漏洞修復(fù)后,Tamir會(huì)發(fā)布利用該漏洞利用工具。