說明
系統:Android10.0
裝置: FireFly RK3399 (ROC-RK3399-PC-PLUS)
前言
本章節介紹SEAndroid(Security Enhanced for Android Selinux整體架構, 了解整體,再去看細節就容易很多.
一, 框圖介紹:
SEAndroid架構是由使用者空間和核心空間組成, 使用者空間安全保護機制中主要包含安全上下文(Security Context)、安全政策(Security Policy)和安全服務(Security Server)等子產品,核心空間由LSM,AVC組成,LSM (linux security module)負責核心資源的安全通路控, 由它來決定一個主體通路一個客體是否是合法的,這個主體一般是指程序,而客體主要指資源, 而selinux是屬于LSM中實作的一種。
使用者空間 | 安全上下文(security Contex),包含各種xx_context上下文檔案 |
安全服務(Security Server),由PMS,installd,init,zygote幾個重要程序組成。 | |
安全政策 (Security policy),主要是各種te檔案 | |
核心空間 | Linux安全子產品(SELinux LSM)(通常包括通路向量緩沖(Access Vector Cache),子產品會利用HOOK攔截接口, 對使用者空間調用接口進行安全校驗 |
二, Selinux使用者空間和核心空間互動
從應用空間通過系統調用進入到核心空間, 初步會進行DAC檢查, 檢查通過後, 在selinux使能的情況下, 會調用LSM子系統的hook接口,進行安全檢查, 因為selinux具體實作了LSM子系統重點 hook接口, 是以最終會通過selinux進行權限檢查,通過後才會找到相應inode進行問檔案操作。