iOS 安全模型淺析(二) ---- 沙盒機制

蘋果的沙盒機制想必大家都聽過,并且都會稱贊這是iOS做的比安卓系統(tǒng)好的一個重要因素捶枢,沙盒機制讓iOS更為安全赴魁。

沙盒機制歷史上被稱作安全帶规惰,是一種基于FreeBSD系統(tǒng)(是一種類UNIX操作系統(tǒng)吝镣,是由經(jīng)過BSD堤器、386BSD和4.4BSD發(fā)展而來的Unix的一個重要分支)TrustedBSD框架的強制訪問控制(MAC)機制,他的主要推動者是羅伯特沃森末贾。這里我只是簡單介紹一下闸溃,詳細的信息以及介紹可以看這里TrustedBSD MAC框架介紹(http://shouce.jb51.net/freebsd-arch-handbook/mac.html),這份文檔寫得十分詳盡拱撵,感興趣的讀者可以看看辉川。

言歸正題,沙盒機制采用一種類似于Lisp的配置語言來描述那些資源系統(tǒng)可以訪問拴测,哪些禁止訪問乓旗。這些資源包括文件、系統(tǒng)服務(wù)集索、網(wǎng)絡(luò)連接屿愚、內(nèi)存資源等。MAC機制不同于傳統(tǒng)的訪問控制機制(比如自主訪問控制DAC)务荆,他不允許主體(比如用戶進程)操作對象(文件妆距、套接字等)。DAC最常見的形式就是Unix系統(tǒng)上的用戶函匕、組和其它權(quán)限娱据,所有這些都可以被授予讀、寫或執(zhí)行的權(quán)限盅惜。在DAC系統(tǒng)中吸耿,用戶如果擁有了一個對象的所有權(quán),也就擁有了該對象的修改權(quán)限酷窥。例如咽安,你有一個文件,你可以將其設(shè)置為全局可讀或可寫蓬推,這顯然是破壞了訪問機制妆棒。

MAC是一個廣義的術(shù)語,在沙盒中意味著應(yīng)用程序被關(guān)進了一個虛擬的容器沸伏。該容器遵循一系列的特定規(guī)則糕珊,即哪些系統(tǒng)資源可以被訪問,比如網(wǎng)絡(luò)資源毅糟、文件讀寫红选、進程克隆等。在OS X中你可以部分控制應(yīng)用程序的沙盒功能姆另,但是在iOS中喇肋,所有的第三方應(yīng)用都要遵循唯一的限制策略坟乾。

在文件訪問方面,一般只能訪問應(yīng)用程序的包目錄蝶防。應(yīng)用程序可以讀寫存儲在該位置的文件甚侣。不過這一基本規(guī)則存在少許的例外。例如间学,在某些iOS版本中殷费,圖片一般存儲在目錄/private/var/mobile/Media/Photos/ 中。盡管它在應(yīng)用程序的包目錄之外低葫,但第三方應(yīng)用還是可以直接訪問详羡,這樣應(yīng)用程序就無需獲得用戶許可就能訪問系統(tǒng)相冊,在之前的iOS版本中嘿悬,如果想要阻止應(yīng)用程序濫用權(quán)力殷绍,就只能將希望寄托在蘋果審核的身上。但是在最新的iOS10系統(tǒng)里鹊漠,所有訪問操作都必須經(jīng)過授權(quán),而且在應(yīng)用開發(fā)時必須將要使用到的權(quán)限(如相冊茶行、相機躯概、麥克風)寫入plist文件中,不然應(yīng)用程序在使用到這些API時會崩潰畔师,而且審核應(yīng)用時一定會被拒絕娶靡。

安卓的訪問控制機制與MAC不同。安卓實現(xiàn)了一個更加傳統(tǒng)的DAC模型看锉,應(yīng)用程序都有自己的用戶ID和屬于該ID的文件夾姿锭,其權(quán)限管理嚴格按照傳統(tǒng)的Unix文件權(quán)限管理運作。雖然兩種機制工作起來都沒有問題伯铣,但是MAC的擴展性總體來說還是要更強一些呻此。例如,除了應(yīng)用目錄隔離腔寡,MAC機制還可以限制網(wǎng)絡(luò)訪問或守護系統(tǒng)進程的操作焚鲜。

術(shù)語解析(詳情請點文中鏈接查看):
FreeBSD: 以一個內(nèi)核安全擴展性框架(TrustedBSD MAC 框架)的方式,為若干強制訪問控制策略(也稱“集權(quán)式訪問控制策略”) 提供試驗性支持放前。MAC 框架是一個插入式的訪問控制框架忿磅,允許新的安全策略更方便地融入內(nèi)核:安全策略可以靜態(tài)鏈入內(nèi)核,也可以 在引導(dǎo)時加載,甚至在運行時動態(tài)加載。該框架所提供的標準化接口,使得運行在其上的安全策略模塊能對系統(tǒng)對象的安全屬性進行諸如標記等一系列操作凭语。 MAC 框架的存在葱她,簡化了這些操作在策略模塊中的實現(xiàn),從而顯著降低了新安全策略模塊的開發(fā)難度似扔。

TrustedBSD:MAC 框架提供的機制,允許在其上運行的內(nèi)核模塊在內(nèi)核編譯或者運行時吨些,對內(nèi)核的訪問控制模型進行擴展搓谆。 新的系統(tǒng)安全策略作為一個內(nèi)核模塊實現(xiàn),并被鏈接到內(nèi)核中;如果系統(tǒng)中同時存在多個安全策略模塊锤灿,則它們的決策結(jié)果將以某種確定的方式組合挽拔。 為了給簡化新安全策略的開發(fā),MAC 向上提供了大量用于訪問控制的基礎(chǔ)設(shè)施但校,特別是對臨時的或者持久的螃诅、策略無關(guān)的對象安全標記的支持。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末状囱,一起剝皮案震驚了整個濱河市术裸,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌亭枷,老刑警劉巖袭艺,帶你破解...
    沈念sama閱讀 222,681評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異叨粘,居然都是意外死亡猾编,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,205評論 3 399
  • 文/潘曉璐 我一進店門升敲,熙熙樓的掌柜王于貴愁眉苦臉地迎上來答倡,“玉大人,你說我怎么就攤上這事驴党”衿玻” “怎么了?”我有些...
    開封第一講書人閱讀 169,421評論 0 362
  • 文/不壞的土叔 我叫張陵港庄,是天一觀的道長倔既。 經(jīng)常有香客問我,道長鹏氧,這世上最難降的妖魔是什么渤涌? 我笑而不...
    開封第一講書人閱讀 60,114評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮把还,結(jié)果婚禮上歼捏,老公的妹妹穿的比我還像新娘。我一直安慰自己笨篷,他們只是感情好瞳秽,可當我...
    茶點故事閱讀 69,116評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著率翅,像睡著了一般练俐。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上冕臭,一...
    開封第一講書人閱讀 52,713評論 1 312
  • 那天腺晾,我揣著相機與錄音燕锥,去河邊找鬼。 笑死悯蝉,一個胖子當著我的面吹牛归形,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播鼻由,決...
    沈念sama閱讀 41,170評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼暇榴,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了蕉世?” 一聲冷哼從身側(cè)響起蔼紧,我...
    開封第一講書人閱讀 40,116評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎狠轻,沒想到半個月后奸例,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,651評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡向楼,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,714評論 3 342
  • 正文 我和宋清朗相戀三年查吊,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片湖蜕。...
    茶點故事閱讀 40,865評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡逻卖,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出重荠,到底是詐尸還是另有隱情,我是刑警寧澤虚茶,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布戈鲁,位于F島的核電站,受9級特大地震影響嘹叫,放射性物質(zhì)發(fā)生泄漏婆殿。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,211評論 3 336
  • 文/蒙蒙 一罩扇、第九天 我趴在偏房一處隱蔽的房頂上張望婆芦。 院中可真熱鬧,春花似錦喂饥、人聲如沸消约。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,699評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽或粮。三九已至,卻和暖如春捞高,著一層夾襖步出監(jiān)牢的瞬間氯材,已是汗流浹背渣锦。 一陣腳步聲響...
    開封第一講書人閱讀 33,814評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留氢哮,地道東北人袋毙。 一個月前我還...
    沈念sama閱讀 49,299評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像冗尤,于是被迫代替她去往敵國和親听盖。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,870評論 2 361

推薦閱讀更多精彩內(nèi)容

  • 歷史 Android的安全模型是基于一部分應(yīng)用程序沙箱(sandbox)的概念, 每個應(yīng)用程序都運行在自己的...
    惡魔殿下_HIM閱讀 34,735評論 4 24
  • 1.DAC機制 在引進SEAndroid安全機制之前生闲,Android系統(tǒng)的安全機制分為應(yīng)用程序和內(nèi)核兩個級別媳溺。應(yīng)用...
    momxmo閱讀 643評論 1 2
  • 本篇默認以Linux系統(tǒng)為例悬蔽,除非特別說明。 一捉兴、進程和進程邊界 1蝎困、進程和線程 進程:資源的分配單位。線程:在C...
    flynnny閱讀 535評論 0 0
  • 節(jié)點主動監(jiān)控機制一般是通過調(diào)用在操作系統(tǒng)倍啥、虛擬機監(jiān)視器(VMM)禾乘、底層函數(shù)和中間件中的鉤子函數(shù)來實現(xiàn)對上層行為的監(jiān)...
    光年xd閱讀 703評論 0 0
  • 16宿命:用概率思維提高你的勝算 以前的我是風險厭惡者,不喜歡去冒險虽缕,但是人生放棄了冒險始藕,也就放棄了無數(shù)的可能。 ...
    yichen大刀閱讀 6,059評論 0 4