Mac OS X El Capitan系統完整性保護System Integrity Protection (SIP)

來源:互聯網
上載者:User

標籤:

引言:前段時間經曆了XCode編譯器代碼被注入的事件後,這次 Mac OS X El Capitan系統的升級,啟用了更高的安全性保護機制:系統完整性保護System Integrity Protection (SIP),是By Design?還是巧合呢?

關於 系統完整性保護System Integrity Protection (SIP),可以從Apple官網下載下來學習,從第29頁到54頁 http://devstreaming.apple.com/vi ... y_and_your_apps.pdf

關鍵點:
1、Security policy applying to every process, including privileged code running unsandboxed
2、Extends additional protections to system components on disk and at runtime
3、System binaries can only be modified by Apple Installer and Software Update, and no longer permit runtime attachment or code injection

實際上從Mac AppStore下載的應用是不受影響的;如果不是則可能會受影響,比如:
修改系統檔案,安裝檔案到系統目錄中,觀察系統進程記憶體,注入代碼到系統進程中等
核心會直接中斷這些破壞性的工作,哈哈哈。
所以對於像 /System /bin /usr /sbin 僅僅供系統使用,開發人員或者應用程式則無法直接使用,而使用 ~/Library /usr/local /Applications,升級之後,那些檔案將被移出去。

注入代碼到系統進程中等同於修改硬碟上的可執行檔,所以會進行各種安全檢查確保安全可信,比如簽名檢查

整個機制主要從三方面入手:
1、檔案系統保護(Filesystem protections)
2、運行時保護(Runtime protections)
3、核心擴充簽名(Kernel extensions)

總結:
1、新的安全性原則機制適用於每一個進程
2、預設下系統啟用SIP系統完整性保護機制,無論是對於硬碟還是運行時的進程
     限制對系統目錄的寫操作
     阻止在運行時附加或注入代碼到系統進程中
3、第三方安裝的內容必須移入系統目錄
4、SIP系統完整性保護機制可以在Recovery OS狀態下變更,也就是留有餘地啊哈哈

如何禁用SIP系統完整性保護機制?
1、重新啟動作業系統;
2、按住Command + R鍵;
3、菜單“工具 + 生產力” ==>> "終端" ==>> 輸入 csrutil disable 斷行符號
    執行成功後,返回資訊如下:
Successfully disabled System Integrity Protection. Please restart the machine for the changes to take effect.
4、這樣,更改的配置儲存到NVRAM中,對整台機器生效,重新啟動即可

如何查看SIP系統完整性保護機制?
命令列終端
$ csrutil status
System Integrity Protection status: enabled.

$ csrutil clear / enable / disable 只能在 復原模式下使用

在禁用掉SIP後,查看狀態資訊如下
$ csrutil status
System Integrity Protection status: enabled (Custom Configuration).

Configuration:
        Apple Internal: disabled
        Kext Signing: disabled
        Filesystem Protections: disabled
        Debugging Restrictions: disabled
        DTrace Restrictions: disabled
        NVRAM Protections: disabled

This is an unsupported configuration, likely to break in the future and leave your machine in an unknown state.

那麼將之前升級而被移走的檔案從 /Library/SystemMigration/History 對應移回到原來的目錄下,應用程式就可以使用了。

如何對被移出的應用程式進行恢複?
比如Mobility Client,進入終端,並切換到 root 使用者下,然後

su -
cd /Library/SystemMigration/History/Migration-*/QuarantineRoot/usr/libexec
mv MobilityClient/ /usr/libexec/

再啟動 Mobility Client 就可以了,不需要重新安裝,就這麼簡單!

Mac OS X El Capitan系統完整性保護System Integrity Protection (SIP)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.