為什麼在打開 GateKeeper 的情況下還能夠裝假 Xcode?

不是總是有人說 OS X 的安全性十分優越嗎?難道 XcodeGhost 的作者真的那麼厲害,就這樣繞過去了?


因為,Gatekeeper的原理是特定應用程序(如瀏覽器等)在下載文件時,通過一個API通知Mac OS X他寫入的文件是從網上下載的,要求其進行檢查。這樣的文件的擴展屬性中有一個quarantine bit。
但是,XCode巨大的體積,在中國的網路環境下,通過瀏覽器單線程下載,成功概率是很低的。而並非所有第三方下載工具都會設定這個quarantine bit,如果沒有quarantine bit,Gatekeeper將不會動作。
另外,Gatekeeper實現在系統外殼層,而不是內核層及userland,你在命令行下運行的程序,它不能進行驗證。直接運行app或者從Finder運行app的可執行文件,會出現如此警告:

但是如果打開一個終端,從終端上運行app的可執行文件,app就被運行了。

Windows下,其實早在XP SP2上就有和這個Gatekeeper類似的機制,你用IE8以上版本、2009年之後的Firefox或Chrome等支持這個機制的瀏覽器下載一個EXE文件,如果它沒有簽名,運行時Windows就會警告。


Osx安全性好建立在你不用商店以外的軟體的前提下…


以前都是往炒好的菜下毒,這回沒想到炒菜的鍋都有毒……


鬼知道


gatekeeper只會檢測從safari之類的瀏覽器中下載的文件,對從u盤拷貝、迅雷下載的文件不會進行任何驗證(這些文件沒有被標記為來源於互聯網),安裝後也不會有進一步的檢查。


這事兒主要是迅雷的問題,萬視達團隊用了os x server的緩存服務,這樣大家就可以快速的從app store上下軟體了,既安全又效率。另外,持續繼承也能把風險降到最低。


為什麼在打開 GateKeeper 的情況下還能夠假 Xcode?

真糊塗還是裝糊塗?OS X 下載非商店應用,直接點擊就可以運行,壓根就沒有安裝這一過程,怎麼阻止?

運行時會檢查,如果來源不可靠就會彈出警告詢問是否運行,或禁止運行(取決於下面的設置)

---

如果 GateKeeper 的設置足夠安全,運行這個假 Xcode 卻仍然沒有任何警告,直接就打開了,你再黑也不遲。那麼——證據呢?好歹放張圖啊。

假使這些完全無中生有的東西,你再幫他說一遍,你等於……你也有責任吧。


好吧,我的結論是,codesign 的確只在當文件被認為是從互聯網上下載下來的時候才會檢查,無論 GateKeeper 如何設置。因此用迅雷下載確實會導致不科學的事情誕生。但新增文件確實可以通過簽名檢查出來。


推薦閱讀:

怎樣在Mac系統下通過快捷鍵快速切換桌面?
更新OS X Yosemite後 為什麼啟動和關機變慢?FileVault的作用?加密時用iCloud賬號好還是獨立密碼好?
Macintosh 發布三十周年,帶來了哪些巨大的影響?
哪裡可以買到和 OSX 10.10 廢紙簍一樣的垃圾桶?
Mac上的雷電介面用來做什麼?

TAG:Mac | macOS | 互聯網 | XcodeGhost |