SIP(系統完整性保護)

SIP(系統完整性保護)

SIP(System Integrity Protection,有時被稱作rootless,中文名為系統完整性保護) 是蘋果公司的macOS系統中一個安全功能,最早出現在OS X El Capitan。它由很多核心強制實施的機制構成。它的主要功能是保護系統檔案及目錄,以免這些檔案及目錄被沒有特定許可權的進程修改,包括root用戶或者擁有root許可權的用戶。

蘋果公司指出root用戶會是系統安全性的一個嚴重危害因素,特別當系統上只有一個用戶賬戶,且這個用戶賬戶是administrator。系統完整性保護會默認開啟,但可以被關閉。

基本介紹

  • 中文名:系統完整性保護
  • 外文名:System Integrity Protection
  • 開發者:蘋果公司
  • 作業系統:macOS
原理,功能,配置,接受度,

原理

蘋果公司指出系統完整性保護是確保系統更高等級安全的必要手段。在一次WWDC開發者會議中,蘋果工程師Pierre-Olivier Martel提到未受限的root訪問是系統遺留的缺陷,並說道“任何惡意程式只要得到密碼就能擁有設備的全部許可權”。他陳述道大部分macOS只有一個用戶賬戶。這個賬戶必然擁有管理員許可權,意味著用戶可以同意所有程式提出的root請求。每當一個用戶在上述的系統中同意了root請求並輸入了密碼(Martel說這些密碼往往簡單或者不存在),整個系統的安全性便處於危險之中。在macOS上限制root的許可權並不是史無前例。例如,早於Mac OS X Leopard的系統版本會強制實施securelevel的level 1,這是個起源於BSD的安全功能,並且macOS部分基於它。

功能

系統完整性保護包括以下機制:
- 保護系統檔案及目錄的內容和檔案系統許可權;
- 保護進程免於代碼注入,運行時的附屬(例如調試)和DTrace
- 保護系統免於未簽名的核心擴展(“kexts”)
系統完整性保護會給被標記需要保護的系統檔案及目錄提供安全保障。它會通過添加一個擴展檔案屬性給檔案及目錄,或者添加檔案及目錄到/System/Library/Security/rootless.conf,或者兩者兼備。被保護的目錄有:/System,/bin,/sbin,/usr(/usr/local除外)。從/etc,/tmp 和 /var 到 /private/etc,/private/tmp 和 /private/var 的符號連結也會被保護。絕大多數在/Applications 路徑下的蘋果預安裝套用也會被保護。當沒有特定許可權的進程修改被保護檔案及目錄的許可權和內容時,核心會阻止這些進程。
自從OS X Yosemite,核心擴展(比如驅動),需要被蘋果授權和簽名。開發者需要申請開發者ID來獲得授權。如果出現未簽名的擴展,核心會拒絕開機,並在螢幕上顯示禁行。這個機制稱作“核心擴展簽名”,集成在了系統完整性保護里。

配置

系統完整性保護只能在非系統分區被關閉(完全關閉或者部分關閉)。蘋果提供了 csrutil 命令行工具,可以在恢復分區或者macOS安裝盤裡的終端執行。csrutil 命令行工具會添加一個開機參數到設備的NVRAM里。這會套用於設備上所有El Capitan或macOS Sierra里的設定。當macOS安裝時,安裝器把受保護系統目錄下的未知檔案移動到/Library/SystemMigration/History/Migration-[UUID]/QuarantineRoot/。為了防止寫入系統目錄,蘋果軟體升級時會自動維護系統檔案及目錄的許可權。因而,磁碟工具取消了許可權修復功能,相應的diskutil操作也被剔除了。

接受度

系統完整性保護的接受度是褒貶參半的。MacWorld擔心蘋果在未來的更新中可能會移除開發者和用戶的完全控制許可權,並把macOS的安全機制逐漸轉變成iOS的機制。iOS上許多工具和修改需要通過越獄來實現。很多套用和驅動不能正常工作,除非系統完整性保護被暫時或永久關閉。Ars Technica建議道這個功能可能會更多地影響到小規模開發團隊,因為大規模開發團隊可能會跟蘋果直接合作。然而,他們建議對於絕大多數用戶,這個功能是沒有理由關閉的,因為這個功能“幾乎沒有缺點”。

相關詞條

熱門詞條

聯絡我們