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作適配或者兼容性測試,也可能導致系統崩潰及白蘋果現象,建議謹慎安裝優化系統設置和系統底層相關的應用.
然而,越獄會破壞掉所有的安全機制。