標籤:seandroid android 區別
首先我們需要知道,在普通android中使用的是DAC訪問方式,即 Discretionary Access Control,顧名思義,該訪問方式是自由的存取控制,由此,他有一些本身自有的缺點。
在DAC 中,普通app只能通過系統服務來訪問系統資源。同時,DAC 通過使用者和組來分隔app。每一個app在安裝的時候都被分配一個獨一無二的使用者id和組id,這個id對被他的所有進程和私人資料檔案使用。只有資料擁有者和app創造者才能訪問這些資料。但是DAC有下面一些缺點:
- 1:不能阻止攻擊。這個是顯而易見的,因為DAC僅僅控制的是對檔案和資料的訪問,並沒有對攻擊做出任何防禦措施。
- 2:會被惡意程式泄漏資料。當一個惡意程式通過系統服務去擷取系統資料的時候,就容易將資料泄漏出去。
- 3:粗糙的特權管理。
- 4:不能限制或控制系統守護進程。這個的意思是系統進程或者是特權進程具有至高無上的特權,他們具有訪問其他資源的權利,但是萬一一個進程擷取到特權的話,DAC就不能阻止其訪問其他資源了。
- 5:不能阻止root許可權的惡意行為。
而在SEAndroid 中,使用的是MAC,即Mandatory Access Control ,強制的存取控制。在MAC中,無論進程是普通進程還是root進程,在對資源進行訪問的時候都要進行驗證,同時,它還能夠阻止特權升級。
SEAndroid 的中心思想就是即使root許可權被篡奪了,惡意行為也會被阻止。通過SEAndroid的中心思想,我們就能看出SEAndroid和普通android的巨大不同。在SEAndroid中,特權已經失去了自己的作用,或者是特權也會被監控了,而真正的特權掌握在策略定義者那裡。舉個例子,如果一個裝置越獄了,也就是root了,即使su特權被擷取了,管理員也依然能夠設定有關於修改系統檔案的策略來限制訪問。
SEAndroid提供了一系列安全控制機制,當前這些策略包括Install-MAC,Intent-MAC,Content Provider MAC,許可權取消和許可權標籤傳播。
1:Install MAC:在安裝的時候,通過mac的permission.xml檔案來檢查app聲明的許可權。他的行為包括允許,拒絕和允許所有許可權。
2:Intent MAC:他的角色就是決定一個Intent能否被分發到其他組件當中。他會阻止任何不被允許的分發。現在,他也支援對使用,讀取,讀取和寫入權限的控制。
3:Content Provider MAC。他的角色是來決定一個對Content Provider 的請求是否被允許。
4:許可權取消。他能夠取消app的一些許可權。
5:許可權標籤分發。這個策略是汙點跟蹤方法的一個應用。安卓的許可權作為抽象標籤被映射到一個策略設定檔中。
SEAndroid在安全性方面取得的效果:
相關文檔下載
著作權聲明:您好,轉載請留下本人部落格的地址,謝謝
SEAndroid和普通android的區別