selinux-概覽

Android 中的安全增強型 Linux


簡介

Android 安全模型部分基於應用沙盒的概念。每個應用都在自己的沙盒內運行。在 Android 4.3 之前的版本中,這些沙盒是通過爲每個應用創建獨一無二的 Linux UID(在應用安裝時創建)來定義的。從 Android 4.3 版起,安全增強型 Linux (SELinux) 開始用於進一步定義 Android 應用沙盒的邊界。

作爲 Android 安全模型的一部分,Android 使用 SELinux 對所有進程強制執行強制訪問控制 (MAC),其中包括以 Root/超級用戶權限運行的進程(也稱爲 Linux 功能)。SELinux 能夠限制特權進程並能夠自動創建安全政策,從而可提升 Android 的安全性。

很多公司和組織都爲此做出了卓越的貢獻;android.googlesource.com 上公開了所有 Android 代碼和貢獻者,以供所有人查看。藉助 SELinux,Android 可以更好地保護和限制系統服務、控制對應用數據和系統日誌的訪問、降低惡意軟件的影響,並保護用戶免遭移動設備上的代碼可能存在的缺陷的影響。

Android 中包含 SELinux(處於強制模式)和默認適用於整個 Android 開放源代碼項目的相應安全政策。在強制模式下,非法操作會被阻止,並且所有嘗試進行的違規行爲都會被內核記錄到 dmesg 和 logcat 中。Android 設備製造商應收集與錯誤相關的信息,以便在實施其軟件和 SELinux 政策之前先對其進行優化。

背景

SELinux 採用默認拒絕的方式運行。任何未經明確允許的行爲都會被拒絕。SELinux 可以採用以下任一種全局模式運行:寬容模式和強制模式。在寬容模式下,權限拒絕事件會被記錄下來,但不會被強制執行;在強制模式下,拒絕事件會被記錄下來,並且會被強制執行。此外,SELinux 還支持特定域寬容模式。在這種模式下,可將特定域(進程)設爲寬容域,同時使系統的其餘部分處於全局強制模式。域簡單來說就是安全政策中用於標識一個進程或一組進程的標籤,安全政策會以相同的方式對待使用相同域作爲標籤的所有進程。藉助特定域寬容模式,可逐漸將 SELinux 應用於系統中越來越多的部分。此外,藉助特定域寬容模式,還可以爲新服務制定政策,同時確保系統的其餘部分處於強制模式。

在 Android 5.0 (L) 版本中,Android 開始全面強制執行 SELinux。這基於 4.3 版中的寬容模式和 4.4 中的部分強制模式。簡而言之,Android 正在從對有限的一組關鍵域(installdnetdvold 和 zygote)強制執行 SELinux 轉爲對所有域(超過 60 個域)強制執行 SELinux。這意味着,製造商必須要更好地瞭解並擴展其 SELinux 實現,以便提供兼容的設備。請注意:

  • 在 5.0 版中,所有域均處於強制模式
  • init 以外的任何進程都不應在 init 域中運行
  • 如果出現任何常規拒絕事件(對於 block_device、socket_device、default_service 等),都表示設備需要一個特殊域

支持文檔

如需關於如何構建實用政策的詳細信息,請參閱以下文檔:

http://seandroid.bitbucket.org/PapersandPresentations.html

https://www.codeproject.com/Articles/806904/Android-Security-Customization-with-SEAndroid

https://events.linuxfoundation.org/sites/events/files/slides/abs2014_seforandroid_smalley.pdf

https://www.internetsociety.org/sites/default/files/02_4.pdf

http://freecomputerbooks.com/books/The_SELinux_Notebook-4th_Edition.pdf

http://selinuxproject.org/page/ObjectClassesPerms

https://www.nsa.gov/resources/everyone/digital-media-center/publications/research-papers/assets/files/implementing-selinux-as-linux-security-module-report.pdf

https://www.nsa.gov/resources/everyone/digital-media-center/publications/research-papers/assets/files/configuring-selinux-policy-report.pdf

https://www.gnu.org/software/m4/manual/index.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章