如何檢查 Mac 有沒有廣告軟體和惡意軟體
真正的 Mac 病毒很少見。大家實際遇到的是廣告軟體:瀏覽器一直打開奇怪的搜尋頁面、跳出彈出式視窗、出現一個沒人安裝過的「清理工具」。它通常是隨著某個下載而來,而且每次登入都會再次啟動。
簡單說:看看有哪些東西會自行啟動。檢查「系統設定」›「一般」›「登入項目與延伸功能」,再看 ~/Library/LaunchAgents、/Library/LaunchAgents 和 /Library/LaunchDaemons 這幾個資料夾。廣告軟體會以隨機或模仿 Apple 的名稱藏在那裡。然後檢查瀏覽器延伸功能和描述檔。macOS 內建的 XProtect 已經會封鎖已知的惡意軟體檔案。
Mac 廣告軟體藏在哪裡?
- 啟動代理程式和常駐程式:小小的
.plist檔案,告訴 macOS 在登入或開機時啟動某個程式。你自己的在~/Library/LaunchAgents;整台 Mac 的在/Library/LaunchAgents和/Library/LaunchDaemons。 - 應用程式:你不記得安裝過的 App,名稱通常很普通。
- 瀏覽器延伸功能:Safari ›「設定」›「延伸功能」,以及其他瀏覽器各自的延伸功能頁面。
- 描述檔:「系統設定」›「一般」›「裝置管理」。在沒有任何機構替你管理的 Mac 上,這個列表通常是空的。
怎麼在終端機列出啟動代理程式?
ls -la ~/Library/LaunchAgents /Library/LaunchAgents /Library/LaunchDaemons
遇到不認得的檔案,先看它啟動哪個程式,再看那個程式是誰簽署的:
plutil -p ~/Library/LaunchAgents/com.example.helper.plist
codesign -dv --verbose=2 "/path/to/the/program"
Program 或 ProgramArguments 那一行就是程式。在 codesign 的輸出中,Authority 那幾行寫的是開發者;「code object is not signed at all」表示沒有人簽署。
什麼樣的項目看起來可疑?
- 沒有任何已知開發者簽署、也沒有已安裝的 App 認領的程式。
- 位於隱藏資料夾、
/tmp或/Users/Shared(每個使用者都能寫入)中的程式。 - 看起來像隨機亂取的名稱,例如
com.xkqzt.plist。 - Apple 沒有簽署的程式,卻使用
com.apple名稱。
以上每一項都只是值得細看的理由,而不是證據:小型開發者的輔助程式也可能長得一樣。移除任何東西之前,先搜尋一下它的名稱。
怎麼從 Mac 移除廣告軟體?
- 如果它屬於某個 App,先結束那個 App,再把 App 移到垃圾桶。
- 把它在 LaunchAgents 或 LaunchDaemons 中的
.plist移到垃圾桶。/Library中的項目會要求輸入管理者密碼。 - 把
.plist指向的程式也移到垃圾桶。 - 重新開機,或登出再登入,讓它停止執行。移除它加入的所有瀏覽器延伸功能和描述檔。
XProtect 夠用嗎?還是需要防毒軟體?
macOS 會用 Gatekeeper 和公證檢查下載的檔案,XProtect 則會根據 Apple 自動更新的特徵碼,封鎖並移除已知的惡意軟體。對大多數人來說這就夠了。查看你的 XProtect 版本:
defaults read /Library/Apple/System/Library/CoreServices/XProtect.bundle/Contents/Info.plist CFBundleShortVersionString
廣告軟體常常是在你允許之下、跟著其他東西一起安裝的,所以偶爾檢查一下有哪些東西會自行啟動,還是值得的。