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在安全性方面取得的效果:
-
1:阻止root特權的攻擊
SEAndroid能夠阻止root攻擊例如GinderBreak和Exploid。
-
2:阻止app攻擊
相關文章
- 原子鎖和普通鎖的區別
- 普通法和大陸法的區別
- 伺服器硬碟和普通硬碟的區別伺服器硬碟
- 普通檢視和物化檢視的區別
- etf跟普通基金有什麼不同?etf和普通基金的區別
- Oracle普通檢視和物化檢視的區別Oracle
- SurfaceView和普通view的區別及簡單使用View
- # 普通函式和箭頭函式的區別函式
- 高階運營和普通運營的區別
- 深度剖析功率電感和普通電感的區別
- JavaScript建構函式和普通函式的區別JavaScript函式
- 普通程式猿和大師級程式猿的區別
- 箭頭函式和普通函式的10個區別函式
- 面試題:箭頭函式和普通函式的區別面試題函式
- 簡述箭頭函式和普通函式的區別函式
- 華納雲:cdn和普通伺服器的區別在哪裡伺服器
- 【知識分享】伺服器硬碟和普通硬碟的區別伺服器硬碟
- 固態u盤和普通u盤哪個好 固態u盤和普通u盤的區別
- 車載U盤和普通U盤哪個好 車載U盤和普通U盤的區別
- 工控機與普通電腦的區別
- 粵語與普通話的區別1
- 主鍵索引 (聚集索引) 和普通索引 (輔助索引) 的區別索引
- Redis分散式Session和普通的cookie session有什麼區別?Redis分散式SessionCookie
- Android中 @和?區別以及?attr/**與@style/**等的區別Android
- 將普通的數字轉為color值,java和javascript的區別JavaScript
- 【面試普通人VS高手系列】lock和synchronized區別面試synchronized
- 伺服器硬碟和普通硬碟區別 伺服器硬碟比普通硬碟貴在哪?伺服器硬碟
- android:layout_gravity 和 android:gravity 的區別Android
- 多卡聚合路由器和普通路由器的區別路由器
- 【知識分享】遊戲伺服器和普通伺服器的區別遊戲伺服器
- Day 59/100 箭頭函式和普通函式的區別函式
- 細說駭客和普通程式設計師的十大區別程式設計師
- 普通寬頻上網和專線有什麼區別
- 拼多多專營店和普通店區別是什麼?
- Android核心和Linux核心的區別AndroidLinux
- Android的padding和margin區別Androidpadding
- android onTouchEvent和setOnTouchListener中onTouch的區別Android
- IPLC專線、CN2、BGP、CIA和普通線路的區別和聯絡