3
本文作者: shotgun | 2015-09-24 15:30 | 專題:頂級黑客:那些改變iOS安全帝國的漏洞 |
近期XcodeGhost事件沸沸揚(yáng)揚(yáng),大家都很關(guān)注此事的影響、后果和解決方案,可是這件事情的根源究竟是什么?還有沒有未被發(fā)現(xiàn)的其他類似安全隱患?未來如何防止同類攻擊的發(fā)生?本文作者是啟明星辰VP,資深安全人士,他試圖從應(yīng)用開發(fā)者角度來剖析這一切。
先來看兩個事件回顧:
2004年,某著名網(wǎng)絡(luò)游戲公司遭到入侵,經(jīng)過詳細(xì)排查后,攻擊者是通過滲透韓國的游戲開發(fā)商網(wǎng)絡(luò),從而將后門植入該網(wǎng)絡(luò)游戲公司的服務(wù)器,受感染服務(wù)器高達(dá)數(shù)百臺。
2010年6月,一種新型的病毒被檢測出來,該病毒可以通過西門子公司的SIMATIC WinCC監(jiān)控與數(shù)據(jù)采集(SCADA)系統(tǒng)滲透入鋼鐵、汽車、電力、運(yùn)輸、 水利、化工、石油等核心工業(yè)領(lǐng)域,這就是著名的震網(wǎng)(Stuxnet)病毒。
(震網(wǎng)病毒)
上述兩個事件與XcodeGhost的相似之處在于,攻擊者都是利用了開發(fā)/設(shè)計/監(jiān)控環(huán)境的安全漏洞,最終達(dá)成了對生產(chǎn)/消費(fèi)環(huán)境的滲透。
入侵者利用哪些點(diǎn)進(jìn)行攻擊?
我們知道,隨著廠商和用戶安全意識的提高,生產(chǎn)環(huán)境大量使用物理/邏輯隔離手段,而消費(fèi)環(huán)境則可能使用嚴(yán)格的審核機(jī)制甚至完全封閉的生態(tài)環(huán)境, 這使得直接攻擊生產(chǎn)/消費(fèi)環(huán)境的難度大幅度上升,而廠商和消費(fèi)者往往也會產(chǎn)生自滿情緒,認(rèn)為已經(jīng)一勞永逸的解決了信息安全威脅。
但是攻擊者并不會按照防御者規(guī)定的方式作戰(zhàn),他們總是能找到最容易突破的位置,采用一些事先無法想到的手段,突破禁制,達(dá)成目的。
不幸的是,在此次事件中,開發(fā)環(huán)境恰好是那個最容易被突破的環(huán)節(jié)。
一家應(yīng)用軟件公司要想發(fā)布應(yīng)用程序,必須要搭建開發(fā)環(huán)境,包括代碼編輯器、編譯器、調(diào)試器、模擬器、第三方庫、其他資源等等,如下圖所示:
程序員在自己的工作電腦上寫出代碼、通過編譯上傳到公司的服務(wù)器,進(jìn)行數(shù)字簽名后,發(fā)布到應(yīng)用市場(如APP Store或者Google Play等),在整個過程中,存在著多個可能被入侵者利用的點(diǎn):
1、入侵者可以替換或者修改開發(fā)環(huán)境,使得應(yīng)用程序中被加入非授權(quán)代碼,這就是本次XcodeGhost的攻擊原理。
2、入侵者也可以通過替換或修改第三方的庫或者組件,實(shí)現(xiàn)類似的功能。
例如,入侵者可以修改并發(fā)布一個游戲引擎,嵌入惡意代碼。
3、入侵者可以直接攻擊程序員的電腦,從而直接修改/替換特定的應(yīng)用程序的代碼,這樣雖然沒有XcodeGhost的傳播范圍廣,惡意代碼卻會更加精準(zhǔn)有針對性,也更難以被發(fā)現(xiàn)。
例如上文所說針對網(wǎng)絡(luò)游戲公司的攻擊。
4、入侵者可以盜取應(yīng)用軟件公司的數(shù)字簽名證書,以及發(fā)布用的賬號,從而在官方的應(yīng)用商店發(fā)布非授權(quán)的應(yīng)用,或者利用應(yīng)用軟件公司的證書來簽名企業(yè)應(yīng)用等等。
5、入侵者也可以通過感染開發(fā)環(huán)境的其他資源,實(shí)現(xiàn)攻擊。
例如某大型銀行,因?yàn)殚_發(fā)者使用了從互聯(lián)網(wǎng)上下載的圖片作為資源,而本地的安全防御措施及管理措施都僅僅針對可執(zhí)行文件,并沒有檢查該圖片資源文件,使得被感染圖片成功上傳到官網(wǎng),導(dǎo)致了大規(guī)模的釣魚掛馬事件。
那么,為什么會出現(xiàn)以上的漏洞呢?
世界應(yīng)該是完美的才對???抱歉,真實(shí)世界并非是完美無缺的。
1、移動應(yīng)用開發(fā)成本大,安全標(biāo)準(zhǔn)讓路。
隨著移動互聯(lián)網(wǎng)的進(jìn)一步升溫,大量公司涌入移動應(yīng)用開發(fā),各家應(yīng)用供應(yīng)商的競爭也非常激烈。應(yīng)用軟件的開發(fā)工期和按時發(fā)布的壓力很大,在這種情況下,對安全的考量往往要為軟件功能和發(fā)布時間讓路。在良好的開發(fā)流程中,對軟件開發(fā)環(huán)境、測試及代碼審核、應(yīng)用軟件的發(fā)布和管理都有較為嚴(yán)格的規(guī)定,但是嚴(yán)格的管理流程會帶來額外的成本開銷,在發(fā)布壓力較大的情況下,往往會在安全標(biāo)準(zhǔn)上做出讓步。
2、人才培養(yǎng)的缺失,危機(jī)暗伏
同時,由于移動互聯(lián)網(wǎng)行業(yè)發(fā)展速度太快,人才培養(yǎng)遠(yuǎn)遠(yuǎn)跟不上行業(yè)需求,部分缺少良好安全訓(xùn)練的軟件工程師直接上崗,他們編寫的代碼存在大量的安全問題。部分問題可以通過測試修復(fù)bug解決,但是很多的漏洞隱藏在已經(jīng)發(fā)布的軟件中。
例如現(xiàn)在的健康應(yīng)用中,大多數(shù)都沒有認(rèn)證校驗(yàn)措施,未來這些數(shù)據(jù)如果用于醫(yī)療急救,一旦被篡改就可能造成嚴(yán)重的后果。
由于移動互聯(lián)網(wǎng)是新興行業(yè),在過去的幾年中尚未成為黑色產(chǎn)業(yè)重點(diǎn)關(guān)注的區(qū)域,因此應(yīng)用公司和開發(fā)人員也產(chǎn)生了移動互聯(lián)網(wǎng)安全問題不嚴(yán)重的心理 誤區(qū),加上對封閉生態(tài)環(huán)境(如蘋果的應(yīng)用商店)的迷信,一味依賴手機(jī)廠商提供的安全措施,造成了一旦廠商的安全措施被從其他方向繞過,就被勢如破竹地打穿所有防線的后果。
實(shí)際上,上一個十年的經(jīng)驗(yàn)告訴我們,任何一種獨(dú)立的安全措施都不能簡單地防范所有的安全威脅,必須是完整構(gòu)建的安全體系才有能力和各種高級威脅進(jìn)行對抗。這一點(diǎn),微軟想必已經(jīng)深有體會,但是蘋果和谷歌及其大量的應(yīng)用供應(yīng)商,還需要至少幾年的時間去慢慢學(xué)習(xí)。
除了本次暴露的XcodeGhost,還有沒有類似的其它安全隱患?
如前文所說,通過開發(fā)環(huán)境進(jìn)行攻擊并非首創(chuàng),而安卓的開發(fā)環(huán)境比蘋果更加復(fù)雜和開放 ,根據(jù)0xid西雅圖小組的跟蹤分析,在安卓的開發(fā)環(huán)境中同樣存在各種信息安全問題,有些甚至更加嚴(yán)重。
本次事件中,除了Xcode之外,Unity和 Cocos2dx這兩個游戲開發(fā)平臺,也受到了不同程度的污染,這就進(jìn)一步影響到了安卓和Windows。
那么,未來如何防止同類攻擊的發(fā)生呢?
人的懶惰和僥幸心理是天性,因此,必須要采用嚴(yán)格的管理和規(guī)范來對抗它們,在國際標(biāo)準(zhǔn)ISO27001和SSE CMM中,均有對應(yīng)用軟件開發(fā)環(huán)境和第三方組件使用的安全性要求,應(yīng)用開發(fā)商應(yīng)該要做到:
1、應(yīng)該有嚴(yán)格的開發(fā)環(huán)境隔離措施。開發(fā)、測試和運(yùn)行環(huán)境嚴(yán)格分開,經(jīng)過授權(quán)的人才能訪問各個不同環(huán)境,并在其中進(jìn)行完整性和一致性檢查。嚴(yán)控開發(fā)環(huán)境與互聯(lián)網(wǎng)的交互接口,采用合適的安全防御措施保護(hù)開發(fā)測試和運(yùn)行環(huán)境。
2、對開發(fā)環(huán)境使用的軟件進(jìn)行控制,確保均來自可信的來源。開發(fā)環(huán)境應(yīng)使用正版軟件,并設(shè)置軟件白名單,禁止安裝白名單以外的應(yīng)用。
3、向開發(fā)人員提供足夠的安全培訓(xùn)。開發(fā)人員應(yīng)該經(jīng)過安全意識、安全技能、安全規(guī)章制度的培訓(xùn),從而有意識、有能力、有意愿寫出更加安全和健壯的代碼。
4、加強(qiáng)對代碼的審核和對應(yīng)用的安全測試,確保其中沒有惡意的邏輯。通過在測試中增加安全性測試,以及對關(guān)鍵代碼進(jìn)行評審,必要時委托第三方專業(yè)公司進(jìn)行安全檢查,從而發(fā)現(xiàn)代碼中的疏忽或者是惡意的后門。
5、嚴(yán)格管理軟件發(fā)布的流程,并隨時監(jiān)控在互聯(lián)網(wǎng)上流轉(zhuǎn)的應(yīng)用,及時發(fā)現(xiàn)問題并及時處理。軟件發(fā)布應(yīng)由專人管理,并進(jìn)行審計記錄,保管好發(fā)布賬號和簽名證書,實(shí)時監(jiān)控互聯(lián)網(wǎng)上流轉(zhuǎn)的應(yīng)用鏡像,有可能的情況下通過軟件自動進(jìn)行校驗(yàn),一旦發(fā)現(xiàn)問題及時的處置和報警,將損害降到最低。
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。