天天看點

《黑客大曝光:移動應用安全揭秘及防護措施》一3.4 入侵别人的iPhone:再次釋放心中的怒火

本節書摘來自華章出版社《黑客大曝光:移動應用安全揭秘及防護措施》一書中的第3章,第3.4節,作者 (美)neil bergman ,更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視

到目前為止,我們已經讨論了一系列可以通過越獄而激發iphone的所有潛能的方法。現在讓我們把注意力轉移到其他方面。與其關注怎樣入侵自己的iphone,還不如看看怎樣入侵他人的裝置。

在本節,我們将讨論在擷取ios裝置權限的過程中遇到的多種多樣的事件、示範和困難。我們将會看到,相對于其他系統,想對ios裝置發起一次成功的攻擊,可采用的方法是有限的。ios具有極少的網絡概要資訊,導緻遠端的基于網絡的攻擊幾乎不可能。當運作較老或配置錯誤的網絡服務時,越獄裝置在連接配接到網絡後将面臨較多的風險。然而,由于越獄裝置隻是所有線上裝置裡較少的一部分,是以正常的攻擊方法不能依賴于這些服務。從某種意義上來所,ios采用了桌面用戶端作業系統如windows的安全趨勢,預設關閉了通路大多數或全部的網絡服務。但一個最主要的差別在于,網絡服務沒有為檔案共享的互操作或其他服務而再次激活。這就意味着,從遠端網絡通路ios以獲得通路權限是非常困難的。

當然,除了傳統的基于網絡的遠端攻擊,攻擊者還有其他可選的攻擊手段。大多數攻擊手段采用組合多種攻擊方法,如用戶端漏洞利用、局域通路或實體通路裝置。區域網路或基于實體通路攻擊的可行性取決于攻擊目标安全漏洞。如果目标裝置隻是跟任何連接配接到區域網路上有漏洞的系統有關,基于區域網路的攻擊才有效。對于一個攻擊目标,通過無線接入點(wap)連接配接,一旦它出現在機場、咖啡店或者任意一個人口流動性很大且經常使用wifi的地方,就可以發動此類攻擊。如果一個特殊的使用者或者企業成為了目标,攻擊者就要首先擷取目标裝置所在區域網路的遠端通路權限。或者是另外一種情況,即位于目标使用者的位置周圍,目标使用者連接配接到一個共享的且不安全的無線網絡,或誘惑使用者連接配接到一個惡意無線接入點上。對于以上兩種情況,進入的門檻很高,而且成功的可能性很低,因為擷取特定的區域網路的遠端通路權限或誘使一個目标使用者到特定的無線網絡中都非常複雜。

以實體方式通路裝置的攻擊者擁有更多可選的攻擊方式。能夠執行基于啟動的越獄,通路檔案系統的權限,并攻擊密鑰鍊及其他保護機制,從裝置中成功擷取資訊的可能性也增大了。然而,擷取對裝置的實體通路權限具有挑戰性,這意味着實體上的接近和偷竊。鑒于此,考慮到個人裝置很容易丢失或被盜,針對裝置的實體攻擊需要嚴肅考慮。但是若想開發一組通用工具包和方法來入侵基于ios的裝置,就顯得有些不切實際。

留給攻擊者的實際選擇通常歸結為用戶端攻擊。用戶端攻擊在ios捆綁的應用程式中多次出現,尤其是mobile safari中。當攻擊一個iphone時,通過已知的影響到這些應用程式和其他元件的漏洞清單,攻擊者就擁有多種選擇。裝置上運作的ios版本對于攻陷裝置來說是十分重要的。通常,ios的版本越老,就越容易擷取其通路權限。隻要發起攻擊,可用的方法和桌面作業系統類似,包括在web伺服器上提供惡意檔案或通過郵件傳播這些惡意檔案。攻擊不局限于與ios捆綁的應用程式,還可以擴充到第三方應用程式。在第三方應用程式中發現并報告出來的漏洞說明攻擊确實存在于ios中。我們有足夠的理由推斷,随着通過app商店以及像cydia商店之類的其他商店可以擷取的應用程式不斷增多,利用應用程式漏洞和用戶端攻擊将繼續成為獲得ios裝置通路權的首要選擇。

如果攻擊的動機是擷取應用程式沙箱内可通路的資訊,通過利用程式漏洞擷取對ios的初始通路權限對攻擊者來說就足夠了。如果攻擊者想要擷取裝置的全部控制權,入侵難度也顯著增加。在獲得了對應用程式的控制權之後,第一步就是通過利用核心級别的漏洞來攻破沙箱的限制。由于核心級别的漏洞非常少,且找到并利用這些漏洞需要更進階的技術,另外具有利用這些漏洞的能力的人也占少數。利用一個新的核心級别的漏洞來入侵沙箱說起來容易,做起來難。特别是針對ios 6,該作業系統版本的核心采用aslr,是以攻擊核心變得更為困難。對于大多數攻擊者,一個更可行的方法就是坐等漏洞出現,并在沒有釋出更新檔來修補漏洞之前攻擊使用者,或去攻擊使用老版本ios的裝置。

在我們介紹一些具體的攻擊例子之前,最後需要注意的一點是,與其他平台相比,很少有專門對ios實行非授權通路的工具。可以擷取的與安全有關工具大多數是針對ios中心的越獄(假定這是與裝置擁有者達成一緻的越獄,或所有者授權下執行的越獄,那麼這些就是有效的被授權的活動)。許多這樣的工具可用于雙重目的。例如,當裝置被攻擊者占據之後,就可以利用基于啟動過程的越獄來擷取對裝置的通路。相似的,從jailbreakme.com或其他來源中的越獄工具也可以擷取連接配接網絡裝置的通路權限。通常來說,當以ios為目标進行惡意攻擊時,攻擊者既可以修改現有的工具實作惡意攻擊目的,也花費大量時間從新開發越獄工具以實作惡意的攻擊。

好了,我們已經進行了高度概括的介紹,下面讓我們詳細地介紹一些特定攻擊的示例。

jailbreakme 3.0漏洞

我們已經見到了目前最流行的ios攻擊:利用漏洞進行iphone越獄。盡管在越獄過程中,這些攻擊都是在本地實作的,但是想阻止企業級的攻擊者遠端使用相似的漏洞是不可能的。例如,建立一個惡意檔案,該檔案能控制其載入的應用程式。該檔案随後會通過網站、郵件、聊天或其他常用的媒介分發給使用者。在pc界,此類攻擊方法在近年來作為許多惡意軟體感染和入侵的基礎。盡管從遠端網絡攻擊的角度來講ios是安全的,即使蘋果公司宣稱其使用了進階安全架構,ios在面對這些類型的攻擊時還是會暴露出它的漏洞。

此類攻擊在本章早先介紹的jailbreakme 3.0(或jbme 3.0)示例中得到了很好的示範。我們從中了解到,jbme 3.0利用了兩個漏洞:一個是pdf程式設計錯誤;另一個是核心程式設計錯誤;蘋果的ios 4.3.4安全公告(support.apple.com/kb/ht4802)給我們提供了有關這兩個漏洞的更多細節。第一個問題cve-2011-0226,freetype type 1 fonthanding 處理錯誤,可導緻任意代碼執行。這裡所提到的是包括一個特殊構造的type 1字型加入到pdf檔案中,當加載時便會導緻前述代碼的執行。第二個問題是cve-2011-0227,這是一個無效的類型轉換錯誤,它會影響iomobileframebuffer,可導緻使用系統級别權限執行任意代碼。

 為了更好地了解cve-2011-0226機制,可參考esec-lab.sogeti.com/post/analysis-of-the-jailbreakme-v3-font-exploit.

這些漏洞的初始攻擊向量是加載一個特殊制作的pdf到mobile safari中。這時,負責解析文檔的代碼觸發了一個漏洞,之後,特制的pdf檔案中包含的漏洞邏輯便可以控制整個應用程式。此後,這一漏洞邏輯繼續利用該核心漏洞,最終控制整個裝置。對于希望對其iphone進行越獄的使用者來說,這不算什麼。然而,對于關注安全的人來說,上述不安全情況可能發生這一事實也許會讓他們驚訝。如果jbme 3.0技術可以利用這樣一對漏洞來擷取裝置的完全控制權,那麼要阻止類似的技術被用于惡意目的需要做什麼呢?不管怎樣,答案是—幾乎沒有。

 蘋果公司在2011年7月釋出了ios 4.3.4這一版本,以補救jbme 3.0利用漏洞所造成的問題。大多數裝置已經不再使用易受攻擊的ios(4.3.3及更低版本),也不再易被攻擊向量感染。

針對jbme 3.0漏洞的防範對策

無論我們多麼迷戀越獄,確定你的作業系統和軟體安裝最新的更新檔是最好的安全方法,另外越獄使裝置安全更困難,也充滿了不确定性。第一,你必須保留ios的漏洞,以保證越獄能成功。第二,一旦系統被越獄了,你就無法從蘋果公司擷取官方更新的更新檔對漏洞進行修補。除非你在每一次新的更新檔釋出時,重新越獄你的手機,或者是從非官方管道擷取更新檔,我們推薦将你的裝置設定為通過無線自動保持更新(ios 5.0.1及以後版本擁有通過無線進行更新這一功能)。同時記住定期更新你的應用程式(當安裝的應用程式有更新時,你将從app商店中看到提示)。

ikee攻擊!

時間:2009年,地點:澳洲。你最近購買了一個iphone 3gs并渴望釋放它的潛能。為了實作這一目的,你通過usb接口将你的手機與電腦連接配接,打開信任的越獄應用程式,然後點選滑鼠,你便擁有了一台越獄的iphone!當然,第一件要做的事就是運作cydia并安裝openssh。如果你不能使用指令行,那為什麼需要一部越獄的電話呢,對吧?從此刻起,你繼續安裝你喜歡的工具和應用程式:vim、gcc、gdb、nmap等。電視上正在播放有趣的節目,你放下手機去看一會兒電視,忘記了改變root權限賬戶的預設密碼,不久之後,你拿起手機,試圖解鎖螢幕,然後驚奇地發現牆紙被設定成了20世紀80年代英國流行歌手rick astley的照片(如圖3-11所示)。你被戲弄了!噢,不要!

《黑客大曝光:移動應用安全揭秘及防護措施》一3.4 入侵别人的iPhone:再次釋放心中的怒火

2009年11月,第一個攻擊ios的蠕蟲病毒被檢測到。這種蠕蟲病毒稱為ikee,它掃描到配置設定給荷蘭和澳洲的電信營運商的ip塊就會自動運作。掃描的邏輯直截了當:識别裝置開啟了tcp 22端口(ssh),并嘗試使用預設證書“root”和“alpine”(越獄iphone最常見的預設賬戶)進行登入。該蠕蟲的變種如ikee.a在登入之後會執行一些基本的操作,如關閉使用者授權通路的ssh伺服器、改變手機的牆紙,以及将蠕蟲二進制代碼拷貝到裝置本地。從這一刻起,被感染的裝置就可以用于掃描和感染其他裝置。像ikee.b之類的後續變種引入了類似僵屍網絡的功能,通過指令和控制信道來遠端控制被感染的裝置。

ikee是影響iphone安全問題的曆史上的一個有趣的裡程碑。這個蠕蟲過去是,而且将來也一直會是第一個、也是唯一一個以公開方式成功入侵ios的惡意軟體執行個體。該蠕蟲利用iphone手機的一個基本配置的弱點,而且早期變種的功能相對較弱,雖然如此,它證明了ios确實面臨真實世界的威脅并可能受到攻擊這一事實。

 可以從http://pastie.org/693452擷取ikee蠕蟲的源代碼,該代碼最初于2009年11月釋出。

ikee已經證明了ios可能被遠端入侵,但這并不一定表明ios本身具有漏洞。事實上,其對立面也許是更公平的例子。ios是一個類似于unix的作業系統,其架構與mac os x的架構有關。這意味着這個平台可能受到以攻擊其他unix系統一樣的方式發起的攻擊。發起攻擊的方式有以下這些,但不僅限于這些:利用有漏洞的網絡服務發動的遠端網絡攻擊;利用應用程式的漏洞發動的用戶端攻擊;本地網絡攻擊,諸如網絡流量的中間人(mitm)攻擊;接近目标裝置的實體攻擊。然而,要注意的是,ios的特征使得其中的一些技術與在其他平台上相比不太奏效。

例如,剛投入使用的iphone,它的網絡配置檔案提供的資訊很少,隻開啟了一個tcp端口62087,目前尚未發現針對此服務的攻擊,但是這并不是說以後也不會發現此類攻擊,更中肯地說是,ios的整個網絡配置檔案能提供的資訊量是相當少。在現實中,從遠端發起網絡攻擊以擷取對(未被越獄過的)iphone的非授權通路幾乎是不可能的。由于留下的攻擊面實在太少,是以并未發現以标準服務(如ssh、http和smb)為目标的攻擊。讓我們向在此方面給iphone提供安全配置的蘋果公司緻敬。

 一些遠端漏洞已被發現,其中一個與處理icmp請求有關,且可能導緻裝置重置的漏洞(cve-2009-1683),另一個是由charlie miller發現的ios在短信處理過程中的漏洞(cve-2009-2204)。将來可能出現漏洞且需要引起注意的地方有:區域網路的支援方面,裝置上的其他無線接口,包括基帶、wi-fi驅動程式、藍牙等。

 記住,移動裝置可能受到通過其ip網絡接口和移動手機網絡接口實施的遠端攻擊。

當然,也有其他因素影響ios的漏洞,使其遭受遠端網絡攻擊。如果一個裝置被越獄了,且安裝了像ssh之類的服務,則受攻擊的面就會增加(如ikee所示那樣)。使用者安裝的應用程式也可以在網絡中監聽服務,這進一步增加了遭受遠端攻擊的風險。然而,這些程式隻是執行很短暫的一段時間,是以它們不能作為獲得裝置的遠端通路權限的一種可靠的方式。這種情況有望在将來改變,因為關于通過網絡來利用應用程式漏洞這方面的研究成果很有限,在将來也許會有更多的漏洞被陸續發現。

 2009年pinch media釋出的統計報告顯示,5%~10%的使用者越獄了其裝置。iphone裝置開發小組在2012年1月的部落格上表示,超過一百萬的ipad 2和iphone 4s(a5)使用者在該平台的第一個越獄軟體釋出之後的3天内就越獄了其裝置。2013年初techcrunch釋出的資料指出,大約有2200萬越獄裝置使用者,也就是占ios所有使用者的5%的使用者主動使用了cydia。

針對ikee蠕蟲/ssh的預設證書攻擊的防範對策

發生ikee蠕蟲的主要原因是由于錯誤配置的越獄iphone連接配接到了網絡中。第一個也是最主要的防範此類攻擊的措施就是:不要越獄你的iphone!如果你必須要越獄,好,沒問題!請在安裝ssh之後馬上修改越獄裝置上的預設證書(登入賬号和口号),并確定隻連接配接到可信任的網絡。另外,像ssh之類的網絡服務隻有當有需要的時候才開啟。可以安裝諸如sbsetting之類的實用工具,springboard可以用來快速開啟或關閉像ssh之類的功能。否則,對于一般的越獄裝置來說,隻要有可能,必須確定裝置更新為對應ios的最新越獄版本,同時及時安裝由越獄社群提供的針對漏洞的更新檔。

focus 11的中間人攻擊

2011年10月,在拉斯維加斯舉辦的mcafee focus 11會議上,stuart mcclure和mcafee trace團隊示範了一系列入侵,包括針對ipad的現場入侵。執行攻擊的具體過程是,為macbook pro電腦安裝和設定兩個無線網卡,然後配置其中一個網卡來作為惡意無線接入點(wap)。這個無線接入點被配置設定了一個ssid,這個ssid類似于會議中合法的無線接入點的ssid。這樣做是為了說明使用者很容易上當并連接配接到惡意的無線接入點上。

然後配置桌面系統将所有來自那個惡意無線接入點的通信資料流轉發到一個合法的無線接入點。這使得在桌面電腦系統上運作的工具具有了中間人通信資料流的接收和轉發能力—接收或轉發來自ipad的通信資料流。據trustware spiderlab的報道,為了讓這一切更有趣,示範中還利用了cve-2011-0228 x.509證書鍊驗證的漏洞,為ssl連接配接的中間人提供了證書支援。

上述設定一經完成,就用ipad來浏覽gmail(在ssl協定層上)。gmail被加載到ipad的浏覽器中,不過郵件中增加了一點東西,即iframe中含有一個到pdf檔案的連結,該檔案可以用來悄悄地擷取裝置的root權限,如圖3-12所示。加載的pdf與jbme 3.0 pdf相似,但經過了修改,以避免改變springboard的外觀,如增加cydia圖示。然後使用該pdf來加載自定義的freeze.tar.xz檔案,其中包含越獄後需要的檔案以及在裝置上安裝ssh和vnc所需要的相應軟體包。

focus 11入侵示範的目的就是糾正謬誤,回歸真相。許多人都有這樣的印象,即,像iphone或ipad這樣的裝置對各種攻擊都是“天生免疫”的。這個示範改變人們這種錯誤觀點,因為擷取ios裝置的非授權通路也是完全可能的。這種入侵攻擊綜合利用了幾種漏洞攻擊技術:用戶端漏洞的jbme 3.0技術,ssh證書驗證漏洞的攻擊技術和基于區域網路的攻擊技術。這表明了不僅ios可以被入侵,而且可以使用多種方法入侵。同時這也表明,攻破ios不是一次就能搞定的,或者說要攻破它并不是隻有少數的幾種方法,利用多個漏洞發起的複雜攻擊還是可能攻破ios的。總之,利用惡意無線接入點來實施攻擊的示範說明了對ios的攻擊不隻是停留在理論上,而是真實存在的。上述示範過程很容易複制,并且整個攻擊場景在現實中也很容易實施和重制。

《黑客大曝光:移動應用安全揭秘及防護措施》一3.4 入侵别人的iPhone:再次釋放心中的怒火

針對focus 11的防範對策

focus 11攻擊利用了一組漏洞和一個惡意無線接入點,擷取受影響裝置的非授權通路權限。作業系統的基本元件被颠覆的事實,使得找到技術上能夠用于抵禦此類攻擊的防範方法非常困難。

正如在“針對jbme 3.0漏洞的防範措施”中概括的那樣,防範此類攻擊的第一步是更新你的裝置,并使其保持更新。另外一個簡單的防範措施是配置你的ios裝置為“ask to join networks”(在加入網絡前進行詢問),如圖3-13所示。對于已知的網絡依然可以自動加入,但是在加入新的未知網絡前使用者則會被詢問,這至少給了我們做出決定的機會:是否要連接配接到一個可能是惡意的網絡上。是的,focus 11攻擊使用了一個看似友好的wi-fi網絡名,也許一個必要的忠告就是:不要連接配接到未知的無線網絡。現今,能夠聽從這一忠告的人幾乎為零(否則你如何在星巴克檢視你的facebook),但是至少,我們已經警告過你了!

《黑客大曝光:移動應用安全揭秘及防護措施》一3.4 入侵别人的iPhone:再次釋放心中的怒火

假定在移動裝置上進行網絡連接配接是不可避免的,防範此類攻擊的方法最終落實到對裝置上存儲資料的價值進行評估。例如,如果一個裝置永遠不會處理敏感資料,或用于通路此類資料,那麼此裝置被攻陷的風險就微乎其微。在這種情況下,連接配接到不受信任的網絡并通路網頁或其他資源基本上不會有什麼問題。但對于一個存儲和處理敏感資料的裝置來說,就需要給予密切關注。當然,讓敏感資料徹底遠離移動裝置是比較困難的,像電子郵件、應用程式和網頁浏覽都隻是可能洩露系統中敏感資料的一些管道而已。

在任何一種情況下,focus 11示範程式都表明,僅僅是簡單地連接配接到一個無線網絡并浏覽一個網頁,裝置都可能被完全控制。即使使用了ssl加強網頁浏覽安全,裝置還是可能被完全控制。正因為如此,使用者必須牢記此類事情會發生的事實,并對其要連接配接到的網絡進行仔細檢查,以避免将裝置或敏感資料置于危險的境地。

惡意應用程式:handy light和instastock

當然,還有許多其他的用戶端攻擊方法,用于擷取對ios的非授權通路。其中最主要,也是更複雜的一種攻擊方法是引誘使用者在其裝置上安裝惡意應用程式。此攻擊方法面臨的挑戰不僅在于欺騙使用者,而且還在于“搞定”蘋果公司的應用程式分發模式。在本章的前部分,我們提到在iphone上市後不久ios就增加了對安裝第三方應用程式的支援。為實作這一支援,蘋果公司決定實作一個嚴格控制的生态系統,及所有的應用程式都要求由蘋果公司簽名,并且隻能從官方的app 商店釋出和下載下傳。一個應用程式為了能保證在app商店展出,它必須先送出給蘋果公司審查,如果在審查過程中發現了問題,則送出會被拒絕,這就意味着該應用程式不能被分發(至少,對于使用非越獄iphone的使用者是如此)。

蘋果公司并沒有公開其審查過程的所有細節。正因為如此,人們對在應用程式的審查階段究竟需要檢查什麼項目缺乏清晰的認識。特别是對确定一個應用程式是否是惡意的相關檢查資訊所知甚少。不過,一個惡意軟體要想通過app商店釋出幾乎是不可能的。一些洩露資訊如電話号碼、聯系資訊或者其他裝置或使用者的具體資訊的應用程式都會被檢測出來,并被下架停止銷售。是以很多人認為,即使在審查過程的細節不為人知的前提下,審查的效果也是顯著的;然而,我們也會不時看到惡意軟體的報道。除了現實世界中的幾個例子讓我們從安全角度懷疑審查過程的有效性,從目前看來,惡意軟體不可能或不存在于app商店中這一事實,讓我們覺得蘋果公司目前的審查手段還是很有效的。這可能是一個合理的結論。

在2010年,一個名為handy light的新應用程式送出到蘋果公司進行審查,通過審查之後就被放到了app商店中銷售。這個應用程式從表面上看像一個簡單的閃光燈應用,提供了一些用于選擇光線顔色的選項。在其釋出之後不久,handy light包含一個隐藏無線共享功能的消息就衆所周知了。該無線共享允許使用者以特定的順序點選閃光的顔色,随後就可以讓電話開啟一個socks代理伺服器,通過伺服器可以讓一台計算機通過無線共享功能利用電話的移動網絡。該功能一經公布,蘋果公司就把該應用程式從app商店下架了,這樣做主要是因為蘋果公司不允許包含支援無線共享的應用程式在其app商店中銷售。

這其中最有趣的是蘋果公司在審查了handy light之後,準許了這個事實上包含無線共享的應用程式,他們為什麼這樣做?原因可能是該功能被隐藏了,并在審查過程中被忽略了。公平地說,這種錯誤确實會發生。但是,如果像無線共享這樣的功能可以被隐藏并避開審查過程,那麼審查過程是如何阻止其他隐藏的惡意功能呢?

2011年9月,著名的ios黑客charlie miller送出了一個名為instastock的應用程式到蘋果公司進行審查。該應用程式被審查通過,并釋出在app商店中供下載下傳。instastock表面上允許使用者實時跟蹤股票報價,據報道有數百個使用者下載下傳了這個應用。在instastock中設計的隐藏邏輯可以利用ios中的一個“0-day”漏洞,該漏洞允許應用程式加載并執行未簽名的代碼。由于ios中存在運作時代碼簽名驗證,是以上述現象是不可能發生的。然而,在ios 4.3中,蘋果引入了一些新的功能使得instastock能夠實作。事實上,在ios 4.3中,蘋果引入了在某些特殊情況下可以執行未簽名代碼的功能。理論上,該功能隻對mobile safari開放,并隻能用于開啟javascript的即時編譯(jit)。後來的結果顯示,該功能實作上的一個錯誤導緻該功能對所有應用程式都是開放的,而不隻對mobile safari開放。該漏洞後來歸檔為cve-2011-3442,它使instastock應用程式能夠使用特定的一組辨別調用mmap系統,進而獲得了繞過代碼簽名驗證的能力。有了執行未簽名代碼的功能,instastock應用程式能夠連接配接到一個指令并控制伺服器,來接收并執行指令,執行諸如下載下傳圖檔和從受影響裝置中擷取聯系人資訊等惡意操作。圖3-14所示為instastock應用程式。

《黑客大曝光:移動應用安全揭秘及防護措施》一3.4 入侵别人的iPhone:再次釋放心中的怒火

提到ios攻擊,handy light和instastock應用程式告訴我們一個事實,可通過app 商店植入一個攻擊。此類攻擊的許多方面不為人知。可以肯定蘋果公司會緻力于改善其審查過程,并随着時間的推移,要成功地隐藏惡意功能将變得更加困難。究竟什麼可以避開審查過程并不清楚。以instastock應用程式為例,利用一個先前未知的漏洞,在送出審查的應用程式中包含利用這個漏洞的惡意代碼的情況是非常少見的。除去“0-day”這個漏洞,要在應用程式中包含惡意代碼就需要增加更多的代碼,這使得應用程式在審查過程中被打上标簽并增大被拒絕的可能性。

如果攻擊者的目的是擷取盡可能多的裝置的通路權限,他會去經曆這一系列麻煩,而且他一定會這樣做。app商店中可供下載下傳的應用程式的不精确性和釋出的廣泛性表明,它是傳播惡意應用程式的誘人途徑。然而,如果攻擊者以某個特定使用者作為目标,那麼通過app商店進行攻擊将非常複雜。攻擊者必須建立一個惡意應用程式,避開審查過程,并最終找到欺騙使用者在其裝置上安裝該應用程式的方法。攻擊者可結合一些社會工程學方法,例如可以從使用者的facebook中擷取資料,然後根據使用者的喜好來建立應用程式。應用程式随後可以使用facebook的牆面公告,通過一個“itms://”連結推送到指定的目标進行售賣。不需要多費力,就能設想幾個這樣的場景,在不久的将來,在本質上與此類似的東西也許就可能實作。

針對app商店惡意軟體的防範對策

handy light和instastock例子說明了具有預料之外和惡意行為的軟體可能越過審查,并出現在蘋果的app商店中。雖然蘋果希望這樣的情況不要發生,并且更希望人們從app 商店下載下傳應用程式時不用擔心自己的裝置會受到威脅,但是現實情況證明風險還是存在的。正如面對focus 11類似情況,用于防範從app商店下載下傳預料之外的或惡意應用程式的措施很少甚至幾乎沒有。蘋果不允許在裝置上安裝安全産品,也沒有供應商開發此類産品。此外,由于出現機率小,而且要開發能夠實作與ios生态系統成功內建的此類産品的複雜度很高,是以很少有用于維護ios安全的工具(用于裝置、網絡或其他地方)。大多情況下,這意味着對于釋出在app商店中的惡意應用程式,使用者幾乎無能為力,除非在購買和安裝應用程式的過程中更加謹慎。到目前為止,多數應用程式是安全的,而且也沒有發現惡意軟體,對此使用者會稍感安慰。來自著名開發商的應用程式幾乎都是安全的,且安裝也不會有任何問題。對于存儲高度敏感資料的使用者來說,推薦隻在确實有必要使用時才安裝所需的應用程式,而且隻從有信譽的供應商處擷取應用。另外,如果可能,盡量安裝最新版本的固件,因為新的固件版本通常解決了可能被惡意軟體用于擷取裝置通路權限的問題(例如jbme3.0核心漏洞利用或instastock未簽名代碼執行的問題)。

具有漏洞的應用程式:ios綁定的應用程式和第三方應用程式

在21世紀早期,攻擊者使用的技術基本都是遠端探索網絡服務代碼的漏洞。在一些流行的unix或windows網絡服務中,基本每隔一周就有一個新的遠端程式設計bug被發現。在此期間,像windows xp之類的用戶端作業系統預設都會開啟一些網絡服務,而且也沒有主機防火牆。這些因素綜合在一起,最終導緻了通過網絡入侵任意系統相對容易實作。随着時間的流逝,開發商開始更嚴肅地考慮安全問題,并開始限制網絡服務代碼,并為用戶端作業系統提供預設配置。到21世紀前10年的後期,此類安全獲得了顯著的改進。随着安全的加強,漏洞研究者開始轉向其他領域,尤其是用戶端漏洞。從21世紀前10年中期開始,在流行的用戶端應用程式中發現了大量的問題,包括internet explorer、microsoft office、adobe reader和flash、java運作時以及quicktime。諸如此類的用戶端應用程式漏洞被用于傳播惡意軟體,或針對特定目标發動如釣魚攻擊或進階持續性危險(apt)類型的攻擊。

有趣的是,對于ios這樣的移動平台,幾乎沒有發現遠端網絡攻擊的存在,業界也沒有對此領域的第三方應用程式的風險進行大量研究。這并不表示沒有人在對應用程式的漏洞進行研究,因為大量與ios應用程式有關的緻命問題都已經被發現,其中包括最出名的一系列影響mobile safari的問題。然而,對于非綁定的應用程式,幾乎沒有問題被發現和公布,到目前為止還沒有發現像windows中的flash那樣被廣泛使用的第三方應用程式,這也許是最合理的解釋,是以沒有很強烈的動機讓人們對此領域進行研究。

在所有事件中,應用程式漏洞都被認為是對基于ios的裝置進行非授權通路的關鍵因素之一。這麼多年來,一系列影響ios的應用程式漏洞被發現。在網際網路上随便搜尋就能找到差不多100個影響ios的漏洞。在這些問題中,其中超過40%都與mobile safari有着或多或少的聯系。當隻針對mobile safari時,有大約30~40個漏洞可以被用來提取有用資訊,或被用來擷取裝置(取決于裝置的ios版本)的通路權限。許多漏洞在本質上都是緻命的,一旦被利用就會讓攻擊者有能力執行任何代碼。

除了與ios一起釋出的應用程式之外,一些影響第三方應用程式的漏洞也被陸續發現并發表出來。在2010年,一個現在歸檔為cve-2010-2913的漏洞被報出來,它影響了citi mobile應用程式的2.0.2及其以下版本。這個報道的大意是應用程式将與銀行相關的敏感資訊存儲在裝置本地,如果裝置被從遠端攻擊,或者裝置丢失、被偷,那麼敏感資訊就可能從裝置中被抽取。這一漏洞并未提供遠端通路,且其嚴重性相對較輕,但是它卻恰好說明針對ios的第三方應用程式,像桌面系統的對應軟體一樣,隻要安全相關的設計存在疏忽,就會受到攻擊。

另外一個第三方應用程式的漏洞,現在歸檔為cve-2011-4211,在2010年11月被報道出來。這一次,文章說paypal應用程式受到了一個x.509證書驗證問題的影響。事實上,該應用程式并沒有驗證伺服器主機名的值是否與為建立ssl連接配接而收到的x.509伺服器證書的主題字段中的值相比對。這個漏洞允許一個具有區域網路通路權限的攻擊者成為中間人,進而擷取或修改經由paypal應用程式的通信資料。該漏洞比citi mobile漏洞更嚴重,因為它允許在沒有控制應用程式或裝置的前提下,通過區域網路通路來利用這個漏洞。然而,這個漏洞的利用需要擷取對區域網路的通路權,這使得該漏洞在實際中的利用變得十分困難。

在2011年9月,一個跨站腳本攻擊漏洞影響了skype應用程式的3.0.1及其以下版本。該漏洞通過把javascript代碼嵌入到發送給使用者的消息中的“全名”域内,使攻擊者能夠通路skype應用程式使用者的檔案系統。一旦接收到一條這樣的消息,嵌入的javascript腳本就會被執行,如果與處理uri機制的問題相結合,就可以允許攻擊者擷取使用者的檔案,如聯系人資料庫,并傳輸該檔案到遠端系統。從某種情況來看該漏洞是相當有意思的,因為它是第三方應用程式漏洞在不需要擷取區域網路通路或裝置實體通路的情況下也會被遠端利用的第一個執行個體。

2012年4月,ios上的包括facebook以及dropbox在内的幾款流行軟體受到漏洞的影響,并且導緻用于進行身份驗證的資料段存在本地裝置上,而缺乏更多的安全措施。攻擊者可以通過一個應用(如iexplorer)來入侵裝置,浏覽裝置的檔案系統和複制檔案。這種攻擊方式已經被證明。之後,攻擊者還可以将檔案複制到另一裝置上,并且通過“借來”的證書來登入。

2012年11月,ios上的instagram應用程式的3.1.2版本受到了一個資訊洩露漏洞的影響。這個漏洞允許能對裝置網絡連接配接進行中間人攻擊的攻擊者擷取會話資訊,并且能利用該漏洞來恢複或删除資訊。

2013年1月,ios上的espn scorecenter應用程式的3.0.0版本受到了兩個漏洞的影響:一個是xss漏洞,另一個是明文認證漏洞。這個應用程式沒有對使用者的輸入進行審查,而且洩露了敏感資料,包括網絡上未加密的使用者名及密碼。

在此有必要提及,無論目标應用程式是ios捆綁的應用程式還是安裝的第三方應用程式,當要入侵iphone時,擷取應用程式的控制隻完成了一半的工作。由于應用程式沙箱和代碼簽名驗證的限制,即便成功擷取了對一個應用程式的控制,要從目标裝置擷取資訊還是相對困難的,這和傳統的桌面系統不同,在桌面系統上一旦擷取了對應用程式的控制,再擷取資訊的成功率非常大,甚至可以繼續攻擊系統中各個應用程式的執行。要真正攻陷并占領iphone,應用程式級的攻擊必須利用核心級的漏洞攻擊才可能奏效,對于那些期待破解ios的人來說,這個難度相當高。富有經驗的攻擊者會傾向于重新利用核心級的漏洞。不管哪種情況,ios預設綁定的應用程式,再加上app商店中可以下載下傳的超過80萬種的應用程式,這些為數衆多的應用程式提供了大量的攻擊目标,是以在将來,針對應用程式漏洞的攻擊将繼續成為擷取ios裝置初始通路權限的最可靠途徑。

針對應用程式漏洞的防範對策

就應用程式的漏洞而言,防範措施将落實到最基本的方式:保證你的裝置更新為最新版本的ios,并保持應用程式更新到最新的版本。通常來說,随着應用程式中漏洞的發現,供應商就會更新并釋出修複版本。要跟蹤什麼時候發現了漏洞或這些漏洞何時會通過更新而被修複有一點困難,是以,最安全的方式就是盡可能保證ios和所有安裝的應用程式都是最新版本。

實體接觸

隻有考慮黑客對裝置實施實體接觸式攻擊,對于iphone入侵的讨論才算完整。事實上,從某些方面來說,現在讨論該話題比較合适,因為随着像iphone之類的智能手機的出現,先前隻存放在桌面系統或筆記本上存儲的敏感資料,越來越多地滲透到人們日常生活中。對于每天與智能手機緊密聯系在一起的員工、上司,檢視和發送電子郵件或定期收取并預覽文檔都是最基本的需求。依據每個人及其角色,從聯系人到powerpoint文檔,再到敏感的内部電子郵件,如果被惡意利用,将會對資訊的擁有者或其組織造成巨大的損失。同時,此類資訊會被人們帶到我們所能想象到的各種場合或地點。例如,當上司與客戶共進晚餐時,還進行郵件的收發是極其不正常的。手機很可能被遺忘在餐桌上,或者在不注意時被不法分子偷取。

一旦裝置落入攻擊者之手,要擷取對裝置上的檔案系統的通路權限,并擷取存儲在裝置上的敏感資料隻需要幾分鐘就可以完成。以德國fraunhofer資訊科技安全研究中心的研究者制作的示範為例,來自該組織的員工在2011年2月釋出了一份報告,列出了擷取存儲在iphone上的敏感秘鑰的步驟。從頭至尾整個過程隻用了6分鐘。具體做法是:使用基于引導過程的越獄方法獲得手機的控制,以便擷取對檔案系統的通路,然後安裝ssh伺服器,一旦通過ssh擷取了通路權限,就會上傳一個腳本,使用獲得的權限來執行該代碼,把儲存在裝置上密鑰鍊中的密碼導出。由于密鑰鍊是用來給許多重要的應用程式存儲密鑰的,如内置的電子郵件用戶端,這一攻擊擷取了一組初始的證書(登入賬戶/密碼),随後可被用于進一步竊取該裝置主人擁有的其他資産。從裝置上能夠擷取的資訊在很大程度上取決于安裝的ios版本。對于ios 3.0之類的老版本,可以從密鑰鍊中擷取幾乎所有資訊。對于ios 5.0版本,蘋果引入了額外的安全機制,将資訊暴露的可能性盡量減少。然而,許多資訊仍舊可以通路到。這種方法說明了當攻擊者實際接觸到一部iphone之後所能實施的入侵的最好範例。

另一種更簡單的恢複iphone中資料的方法是iexplorer。iexplorer提供了一種更易于使用的點選界面,可以用來浏覽所有已有的ios裝置的檔案系統的一些部分。你可以在你的台式電腦或掌上電腦上安裝這個應用,連接配接你的手機到電腦上,然後檢視裝置的檔案系統。雖然你不可能有檢視檔案系統所有部分的權限,但是你可以檢視一些感興趣的資料,而無需用其他一些更複雜、更費時的方法來擷取這些權限。

最後一個依賴于ios版本的方法,可能是最簡單的方法,它隻需入侵ios的螢幕鎖。2013年1月釋出了一種繞開螢幕鎖的黑客技術,這種技術被用于從ios 6.0.1到ios 6.1。這種技術是通過許多按鈕點選和螢幕點選動作,來最終擷取對手機上應用的通路權。從這個螢幕,攻擊者可以檢視聯系人、通話記錄以及通話的地點!

針對實體接觸式攻擊的防範對策

就對裝置實施實體接觸式的攻擊而言,相應的防範措施是十分有限的。主要的方法是確定裝置上的所有敏感資料都被加密。加密資料時可以使用蘋果提供的功能,以及第三方應用程式提供的加密支援,包括如mcafee、good等商業供應商提供的加密支援。另外,存儲敏感資訊的裝置必須擁有一個至少六位數字長度的密碼。這樣做有助于增強存儲在密鑰鍊中資訊的安全性,并使得針對密碼的暴力破解更加難以實作。其他可用于防範實體攻擊的對策包括:安裝能夠用于遠端追蹤裝置位置或遠端清理敏感資料的軟體。

繼續閱讀