SELinux与SEAndroid
生活随笔
收集整理的這篇文章主要介紹了
SELinux与SEAndroid
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
0. 概述
- SELinux則是由美國NSA(國安局)和一些公司(RedHat、Tresys)設(shè)計的一個針對Linux的安全加強系統(tǒng)。SEAndroid是Google在Android 4.4上正式推出的一套以SELinux為基礎(chǔ)于核心的系統(tǒng)安全機制。
- 由于Linux有多種發(fā)行版本,所以各家的SELinux表現(xiàn)形式也略有區(qū)別。具體到Android平臺,Google對其進行了一定得修改,從而得到SEAndroid。
1. SELinux
-
DAC和MAC
- SELinux出現(xiàn)之前,Linux上的安全模型叫DAC,全稱是Discretionary Access Control,翻譯為自主訪問控制。
核心思想:
進程理論上所擁有的權(quán)限與執(zhí)行它的用戶的權(quán)限相同。比如,以root用戶啟動Browser,那么Browser就有root用戶的權(quán)限,在Linux系統(tǒng)上能干任何事情。 - SELinux在DAC之外,設(shè)計了一個新的安全模型,叫MAC(Mandatory Access Control),翻譯為強制訪問控制。
MAC核心思想:
任何進程想在SELinux系統(tǒng)中干任何事情,都必須先在安全策略配置文件中賦予權(quán)限。凡是沒有出現(xiàn)在安全策略配置文件中的權(quán)限,進程就沒有該權(quán)限。 -
DAC和MAC:
- Linux系統(tǒng)先做DAC檢查。如果沒有通過DAC權(quán)限檢查,則操作直接失敗。通過DAC檢查之后,再做MAC權(quán)限檢查。
- SELinux中也有用戶的概念,但它和Linux中原有的user概念不是同一個東西。什么意思呢?比如,Linux中的超級用戶root在SELinux中可能就是一個沒權(quán)限,沒地位,打打醬油的”路人甲“。當然,這一切都由SELinux安全策略的制定者來決定。
- SELinux出現(xiàn)之前,Linux上的安全模型叫DAC,全稱是Discretionary Access Control,翻譯為自主訪問控制。
- SELinux是典型的MAC實現(xiàn),對系統(tǒng)中每個對象都生成一個安全上下文(Security Context),每一個對象訪問系統(tǒng)的資源都要進行安全上下文審查。審查的規(guī)則包括類型強制檢測(type enforcement),多層安全審查(Multi-LevelSecurity),及基于角色的訪問控制(RBAC: Role Based Access Control)。
- SELinux的整體結(jié)構(gòu)如下圖所示
2. SEAndroid
- 由于Android系 統(tǒng)有著獨特的用戶空間運行時,因此SELinux不能完全適用于Android系統(tǒng)。為此,NSA同Google一起針對Android系統(tǒng),在SELinux基礎(chǔ)上開發(fā)了 SEAndroid。整體框架:
-
SEAndroid安全機制包含有內(nèi)核空間和用戶空間兩部分
- 內(nèi)核空間的selinux lsm module模塊負責內(nèi)核資源的安全訪問控制.
- sepolicy描述的是資源安全訪問策略。系統(tǒng)在啟動的時候,init進程會將內(nèi)核空間安全訪問策略加載內(nèi)核空間的selinux lsm模塊中去,而用戶空間的安全訪問策略則直接保存到普通文件中.
- 用戶空間的SecurityServer一方面需要檢索用戶空間的安全策略,另一方面也需要檢索內(nèi)核空間的安全策略.
- 用戶空間的libselinux庫封裝了對SELinux文件系統(tǒng)接口的讀寫操作。用戶空間的SecurityServer訪問內(nèi)核空間的selinux lsm模塊時,都是間接地通過libselinux進行的。用戶空間的SecurityServer檢索用戶空間的安全策略時,同樣也是通過 libselinux庫來進行的.
-
SELinux 給Android 帶來下面影響:
- 嚴格限制了ROOT權(quán)限,以往ROOT“無法無天”的情況將得到極大的改善。
- 通過SELinux 保護,降低系統(tǒng)關(guān)鍵進程受攻擊的風險,普通進程將沒有權(quán)限直接連接到系統(tǒng)關(guān)鍵進程。
- 進一步強化APP的沙箱機制,確保APP難以做出異常行為或者攻擊行為。
- 將改變APP 一旦安裝,權(quán)限就已經(jīng)頂死的歷史,APP權(quán)限動態(tài)調(diào)整將成為可能
總結(jié)
以上是生活随笔為你收集整理的SELinux与SEAndroid的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 编译时与运行时
- 下一篇: Linux基础(day59)