本節書摘來自華章出版社《黑客大曝光:移動應用安全揭秘及防護措施》一書中的第3章,第3.2節,作者 (美)neil bergman ,更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視
到現在為止,ios已經伴随大家6年了。在這段時間内,ios平台有了巨大的發展,特别是在作業系統及應用安全模式方面。當iphone首次釋出時,蘋果公司就公布不允許第三方應用在該裝置上運作。同樣的,開發者和使用者如果需要通路web,則隻能通過ios内置的web浏覽器。一段時間内,這意味着隻有蘋果公司的軟體才能在ios裝置上運作,是以一定程度上減少了對安全的需求。然而,缺乏第三方市場的應用也使得使用者無法完全利用他們裝置的優點。很快黑客們尋找到了通過刷機或越獄裝置來安裝第三方軟體的方法。蘋果為了應對“越獄”以及使用者對軟體多樣化的需求,2008年,蘋果公司釋出了一個新的ios版本,這個版本包括了一項新的服務,那就是應用商店。應用商店給使用者提供了購買和安裝應用的機會。自從有了應用商店之後,已經有超過80萬應用釋出并可供購買,應用下載下傳總量也已經超過了400億(參見apple.com/pr/library/2013/01/28apple-updates-ios-to-6-1.html)。蘋果也開始添加額外的安全措施和開發新的ios版本。
早期的ios版本在安全防護方面做的很少。所有的程序都擁有超級使用者的特權。程序在系統資源的使用方面沒有限制。代碼簽名不是用來證明應用的來源(和控制上述應用的執行的)。也沒有為ios的核心、其他系統元件、庫或者應用提供位址空間布局随機化(aslr)和位置無關的可執行程式(pie)的支援。而且,也幾乎沒有使用硬體控制來阻止對裝置的攻擊。
随着時間的推移,蘋果公司開始引進更進階的安全功能。第三方市場的應用暫時是以一個名為mobile的低特權使用者賬号運作。另外還提供了對沙箱的支援,以限制應用對系統資源的使用。還添加了對代碼簽名認證的支援。有了這個之後,裝置上安裝的應用必須被蘋果公司進行簽名之後才能運作。另外,代碼簽名認證在加載時(負責啟動一個可執行代碼)和運作時(防止新代碼的添加和執行)實作。最後,核心的位址空間布局随機化、其他作業系統元件、庫以及被稱為pie的xcode中的編譯時間選項,都被添加到ios中來。pie與ios的近期版本結合之後,便要求應用每次執行時在不同的基準位址進行加載,這就使得開發特定的應用程式的漏洞更加困難。
所有這些改變和優化處理使得有了今天的ios。ios也因為它的安全模式有了巨大的收獲。事實上,app商店中應用的總體配置設定過程以及目前ios系統所實作的安全措施集合,使得ios成為最安全的消費級作業系統之一。擁有這些安全措施的作業系統,甚至是以前的較低安全版本的作業系統,都在很大程度上被該平台上相對其他平台、數量很少的已知的惡意攻擊所驗證。
然而,雖然ios獲得了巨大的進步,但是認為ios平台無法被入侵是一種幼稚的想法。不管怎樣,事實這并非如此。盡管我們現在還沒有見到許多針對ios平台的惡意代碼,但是我們通過一些例子證明:ios實際上存在可能被入侵的薄弱環節,是以,這也值得從終端使用者或組織的安全角度去仔細考慮。
ios安全研究者dino dai zovi的一篇有關ios 4.x安全的文章研究了ios中的aslr、代碼簽名、沙箱等等,對于那些ios入侵的愛好者來說,這篇文章是值得閱讀的。參見trailofbits.files.wordpress.com/2011/08/apple-ios-4-security-evaluation-whitepaper.pdf