iOS的安全機制
iOS是由蘋果公司為iPhone開發的作業系統。它主要是給iPhone、iPod touch以及iPad使用。就像其基於的Mac OS X作業系統一樣,它也是以Darwin為基礎的。原本這個系統名為iPhone OS,直到2010年6月7日WWDC大會上宣佈改名為iOS。iOS的系統架構分為四個層次:核心作業系統層(the Core OS layer),核心服務層(the Core Services layer),媒體層(the Media layer),可輕觸層(the Cocoa Touch layer)。系統操作佔用大概240MB的儲存器空間。
ios主要採用了以下幾種安全機制:
更小的受攻擊面 精簡的作業系統 許可權分離 程式碼簽名機制 DEP ASLP 沙盒機制
一、更小的受攻擊面
受攻擊面:受攻擊面是指處理攻擊者所提供輸入的程式碼。
就算蘋果公司的某些程式碼中存在漏洞,如果攻擊者沒法接觸這些程式碼,或者蘋果公司根本不會在iOS中包含這些程式碼,那麼攻擊者就沒法針對這些漏洞開展攻擊。因此,關鍵的做法就是儘可能降低攻擊者可以訪問(尤其是可以遠端訪問)的程式碼量。
例如,iOS不支援Java跟Flsah,不能處理.psd檔案。蘋果公司自有的.mov格式也只被iOS部分支援,因此很多可以在Mac OS X上播放的.mov檔案在iOS上無法播放。雖然iOS原生支援.pdf檔案,但只是解析該檔案格式的部分特性。
瑕疵越少,攻擊者發動漏洞攻擊的機會就越小。
二、精簡的作業系統
除了減少可能被攻擊者利用的程式碼,蘋果公司還精簡掉了若干應用,以防為攻擊者在進行漏洞攻擊時和得手之後提供便利。
例如:iOS裝置上沒有shell(/bin/sh);
三、許可權分離
iOS使用使用者、組和其他傳統UNIX檔案許可權機制分離了各程式;
例如:使用者可以直接訪問的很多應用,比如Web瀏覽器、郵件客戶端或第三方應用,就是以使用者mobile的身份執行的。而多數重要的系統程式則是以特權使用者root的身份執行的。其他系統程式則以諸如_wireless和_mdnsresponder這樣的使用者執行。利用這一模型,那些完全控制了Web瀏覽器這類程式的攻擊者執行的程式碼會被限制為以使用者mobile的身份執行。
來自App Store的應用其行為會受到限制,因為它們也是以使用者mobile的身份執行的。
四、程式碼簽名機制
所有的二進位制檔案(binary)和類庫在被核心允許執行之前都必須經過受信任機構(比如蘋果公司)的簽名。此外,記憶體中只有那些來自已簽名來源的頁才會被執行。這意味著應用無法動態地改變行為或完成自身升級。這樣做都是為了防止使用者從因特網上下載和執行隨機的檔案。所有的應用都必須從蘋果的App Store下載(除非對裝置進行配置,使其接受其他的源)。
五、DEP
DEP: Data Execution Prevention,資料執行保護;
處理器能區分哪部分記憶體是可執行程式碼以及哪部分記憶體是資料。DEP不允許資料的執行,只允許程式碼執行。
當漏洞攻擊試圖執行有效載荷時,它會將有效載荷注入程式並執行該有效載荷。DEP會讓這種攻擊行不通,因為有效載荷會被識別為資料而非程式碼。
iOS中程式碼簽名機制的作用原理與DEP相似。
六、ASLP
ASLP: Address Space Layout Randomization,地址空間佈局隨機化。
在iOS中,二進位制檔案、庫檔案、動態連結檔案、棧和堆記憶體地址的位置全部是隨機的。當系統同時具有DEP和ASLR機制時,針對該系統編寫漏洞攻擊程式碼的一般方法就完全無效了。在實際應用中,這通常意味著攻擊者需要兩個漏洞,一個用來獲取程式碼執行權,另一個用來獲取記憶體地址以執行ROP,不然攻擊者就需要一個極其特殊的漏洞來做到這兩點。
七、沙盒機制
iOS防禦機制的最後一環是沙盒。與之前提到的UNIX許可權系統相比,沙盒可以對程式可執行的行動提供更細粒度的控制。
例如:MS應用和Web瀏覽器都是以使用者mobile的身份執行的,但它們執行的動作差別很大。SMS應用可能不需要訪問Web瀏覽器的cookie,而Web瀏覽器不需要訪問簡訊。而來自App Store的第三方應用不應該具有cookie和簡訊的訪問權。
首先,它限制了惡意軟體對裝置造成的破壞。想象一下,就算惡意軟體僥倖通過了App Store的審查流程,被下載到裝置上並開始執行,該應用還是會被沙盒規則所限制。它可能會竊取裝置上所有的照片和地址簿資訊,但它沒辦法執行發簡訊或打電話等會直接使用話費的操作。沙盒還讓漏洞攻擊變得更困難。就算攻擊者在減小的受攻擊面上找到了漏洞,並繞過ASLR和DEP執行了程式碼,有效載荷也還是會被限制在沙盒裡可訪問的內容中。總而言之,所有這些保護機制雖然不能說會完全杜絕惡意軟體和漏洞攻擊,但也大大加大了攻擊的難度。
八、iOS越獄
a).通過OTA(不是通過PC上iTunes升級的iOS)升級到iOS7的裝置越獄很容易出現白蘋果.建議使用者通過iTunes更新到最新的iOS7系統然後越獄. b).越獄後通過Cydia安裝的某些外掛(例如某些輸入法或修改系統主題的外掛),由於對iOS7不相容導致很容易出現白蘋果,建議謹慎安裝及更新此類越獄外掛. c).有些應用程式沒有針對越獄iOS7作適配或者相容性測試,也可能導致系統崩潰及白蘋果現象,建議謹慎安裝優化系統設定和系統底層相關的應用.
然而,越獄會破壞掉所有的安全機制。
相關文章
- 外媒稱 iOS 12 的新安全機制已遭破解iOS
- iOS RSA的網路安全模型、iOS簽名機制總結(登入、token安全、簽名)iOS模型
- iOS分享機制iOS
- iOS推送機制iOS
- iOS 的看門狗機制iOS
- iOS 簽名機制iOS
- iOS訊息機制iOS
- 設定listener的安全機制
- 設定listener 的安全機制
- Linux的安全機制(轉)Linux
- 計算機系統的安全機制計算機
- 快速失敗機制&失敗安全機制
- Android 安全機制Android
- Linux安全機制Linux
- iOS開發-UITableView的重用機制iOSUIView
- 更好的安全機制,更少的當機——windowsXP (轉)Windows
- iOS隱式動畫機制iOS動畫
- HTTPS的安全通訊機制HTTP
- Oracle安全機制--審記Oracle
- 理解Android安全機制Android
- 小程式技術科普:執行機制&安全機制
- 全面理解 Android 安全機制(元件安全)Android元件
- WebService安全機制的思考與實踐Web
- ios,android和javascript的UI事件機制iOSAndroidJavaScriptUI事件
- Android系統安全機制Android
- 安全篇-AES/RSA加密機制加密
- JVM--java沙箱安全機制JVMJava
- 幾種微服務安全機制微服務
- [分享]iOS開發- iOS反射機制: objc_property_t的使用iOS反射OBJ
- 關於容器安全機制的登入/登出
- iOS——Objective C都有哪些鎖機制iOSObject
- 快速瞭解iOS簽名機制iOS
- iOS APP簽名機制詳解iOSAPP
- iOS 相容多個有crash 收集機制的SDKiOS
- JVM探究(一)談談雙親委派機制和沙箱安全機制JVM
- [pwn基礎]Linux安全機制Linux
- 沙盒原始碼防洩密的安全機制原始碼
- 策略:伺服器上的白名單安全機制伺服器