SEAndroid和普通android的區別

陳洪波發表於2015-07-17
版權宣告:您好,轉載請留下本人部落格的地址,謝謝 https://blog.csdn.net/hongbochen1223/article/details/46929811

首先我們需要知道,在普通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在安全性方面取得的效果:

  • 1:阻止root特權的攻擊

    SEAndroid能夠阻止root攻擊例如GinderBreak和Exploid。

  • 2:阻止app攻擊

相關文件下載


相關文章