Mac 上的 XProtect 是什麼,為什麼佔用 CPU
XProtect 是 macOS 內建的防毒功能。Apple 把它描述成以特徵碼偵測並移除惡意軟體,每台近年的 Mac 都有,沒有自己的圖示或視窗。在活動監視器裡看到 XProtect、xprotectd 或名稱含 XProtectRemediator 的行程是正常的,短暫的 CPU 升高通常是它在檢查某個 App 或執行排程的掃描。讓它繼續執行就好。
它做什麼、什麼時候做
Apple 的惡意軟體防護說明描述了三個部分:
| 部分 | 做什麼 |
|---|---|
| 特徵碼偵測 | 用 Apple 持續更新的 YARA 特徵碼檢查 App |
| 修復引擎 | 根據 Apple 的更新移除已知的感染,並定期持續檢查 |
| 行為引擎 | 從行為偵測未知的惡意軟體,這些資料也會改善特徵碼 |
Apple 表示,XProtect 會在 App 第一次啟動、App 在檔案系統中發生變動,以及特徵碼更新時,檢查已知的惡意內容。預設情況下,macOS 每天都會檢查這些更新,和系統更新是分開的。所以你可以預期,安裝或更新 App 之後、特徵碼更新之後,以及沒有任何 App 在動的時候偶爾都會有活動。
發現惡意軟體時,Apple 說 XProtect 會阻擋它、移到垃圾桶,並在 Finder 裡提醒你。它沒有可以讓你開始掃描的視窗,因為設計上就不是這樣。
它放在哪裡
Apple 的說明沒有給路徑。在本頁檢查用的 Mac 上,這幾個部分放在這裡:
/Library/Apple/System/Library/CoreServices/XProtect.app
/usr/libexec/xprotectd
/var/protected/xprotect/XProtect.bundle
XProtect.app 裡面,每一個要移除的惡意軟體家族都有一個 XProtectRemediator… 程式,名稱像 XProtectRemediatorAdload,所以活動監視器才會出現你從沒見過的名稱。/Library/Apple 帶有 restricted 旗標,所以系統完整性保護不讓它被更動,即使用了 sudo 也一樣。
要檢查你安裝的版本和更新紀錄:
xprotect version
system_profiler SPInstallHistoryDataType | grep -A 4 XProtect
如果你的 macOS 找不到 xprotect 指令,就用第二行,它出現的時間長得多。
它佔用 CPU 的時候
剛安裝或開啟新 App 之後出現一陣高峰,是預期中的情況,接上電源給它幾分鐘。
如果一直很高:
- 打開活動監視器,選擇顯示 › 所有行程,依 % CPU 排序。記下確切名稱,以及它是穩定偏高還是忽高忽低。
- 確認檔案真的是 Apple 的。選取該行程,點 i 按鈕,再選開啟的檔案和連接埠。程式應該位於上面其中一個路徑底下。
- 把手上的事做完,重新開機,再觀察十分鐘。重新開機會結束卡住的掃描,macOS 會自己排定下一次。
- 在系統設定 › 一般 › 軟體更新安裝待處理的 macOS 更新。
- 如果大多數日子它都連續執行好幾個小時,就把你看到的情況用意見回饋傳給 Apple。記下它開始前後你安裝了哪個 App,因為檔案一直在變動的 App,會讓 XProtect 有更多東西要檢查。
XProtect 安靜下來之後仍然很慢的話,原因在別處,請看 Mac 的 CPU 使用率偏高,了解怎麼讀那份清單。
只靠它夠嗎
它對已知惡意軟體是實實在在的防護,並和 Gatekeeper 與公證一起運作。請讓系統設定 › 一般 › 軟體更新 › 自動更新底下的安裝安全回應和系統檔案維持開啟,因為特徵碼更新就是這樣送達的。它不是完整的資安產品:沒有可以查看的掃描紀錄,沒有網頁過濾,也沒有隨選掃描的按鈕。要不要再加裝第三方產品,取決於你做什麼工作,以及雇主有什麼要求。如果你要移除其中一個,如何在 Mac 上解除安裝防毒軟體列出了各家會留下什麼。
不要這樣做
- 不要想刪除或停用它。這些資料夾受到保護,繞過去的教學都要你關掉系統完整性保護,這個代價遠比 CPU 升高大得多。
- 不要一再強制結束它。它在 macOS 需要的時候就會執行,所以只是把工作往後延。
- 不要相信說 XProtect 發現病毒、還附上電話號碼或下載連結的彈出視窗。XProtect 只會在 Finder 提醒,不會向你要求任何東西。
- 不要因為認得名稱,就把被阻擋的 App 從垃圾桶放回來繼續用。請重新從開發者那裡下載。
Mole 能幫上什麼
Mole 不是防毒軟體:它不掃描惡意軟體,清理裡也沒有 XProtect 的項目。當這些行程排在最忙的幾列時,狀態會顯示它們,同一個 App bundle 資料夾執行的東西會合併成一列,在某一列上點為什麼在執行?會顯示它的可執行檔案,不用開終端機也能檢查路徑。如果你在追查的是一個不屬於 XProtect 的陌生背景行程,軟體的啟動項目區段會列出第三方的啟動項目,常駐的廣告軟體往往就裝在那裡。
常見問題
XProtect 是病毒嗎?
不是。它是 Apple 的防毒功能,屬於 macOS 的一部分。它的程式放在受保護的系統位置,所以同名的行程如果從其他地方執行,例如你的下載項目資料夾,就很可疑。
可以關閉 XProtect 嗎?
在系統設定裡不行。請讓它保持開啟:繞過它的唯一方法會削弱系統完整性保護,而那個保護的範圍比 XProtect 大得多。
為什麼 XProtectRemediator 在執行?
它是依排程尋找並移除特定已知惡意軟體的那一部分。看到這類行程不代表你的 Mac 被感染,它們會例行執行,而且大多很快就結束。
怎麼查 XProtect 的版本?
在終端機執行 xprotect version,或用 system_profiler SPInstallHistoryDataType | grep -A 4 XProtect 查看更新紀錄。
有 XProtect 就不需要防毒軟體了嗎?
對很多人來說,它搭配 Gatekeeper 與公證,已經能涵蓋已知惡意軟體。它不提供掃描報告或隨選掃描,所以工作場所有規定,或你需要這些功能,就是再加一個產品的理由。