快速答案:報告先看三件事:哪些檔案中毒(位置透露入口)、主機商做了什麼(清除、刪除還是只標記)、有沒有說明怎麼進來的——通常沒有。主機商清的是檔案,不會幫你補漏洞、換密碼、查資料庫。所以收到報告後還要:更新或移除有漏洞的外掛、查管理員帳號、換掉所有密碼、開兩步驟驗證,過幾天再請主機商掃一次。
為什麼會這樣 #
主機商的掃毒是比對檔案特徵:找到符合惡意程式樣式的檔案,把惡意片段清掉,或整支刪除、隔離。這很有用,但範圍有限:資料庫裡的垃圾文章與植入的程式碼、藏在正常工具裡的後門(例如檔案管理外掛)、攻擊者建立的隱藏管理員,掃檔案都看不到。「查無病毒」也只代表當下沒比對到已知特徵。
更重要的是入口。網站會中毒,多半是某支外掛有漏洞或某組密碼外洩;主機商清完檔案,洞還開著,同樣的攻擊幾天後就能再來一次。
怎麼處理 #
報告怎麼看 #
- 中毒檔案在哪:uploads 裡的 PHP 檔、mu-plugins 裡不認識的檔案,幾乎一定是植入的;集中在某一支外掛的目錄,那支外掛很可能就是入口或被改過;核心目錄多出檔案,代表攻擊者曾經有寫檔權限。
- 怎麼處理的:「清除」是拿掉惡意片段、檔案保留;「刪除」是整支拿掉。被刪的若是外掛或佈景的正常檔案,某個功能可能因此壞掉,要重裝那支外掛。
- 什麼時候:檔案的修改時間可以推出大概何時被入侵,對照那段時間的登入與存取紀錄。
收到報告後要做的事 #
- 更新 WordPress 核心、所有外掛與佈景;不用的外掛直接刪除。
- 到「使用者」檢查管理員清單,並看每個管理員個人資料底部的應用程式密碼(見不明管理員怎麼處理)。
- 換掉所有憑證:WordPress 管理員、主機面板、SFTP、資料庫,以及網站上設定的寄信帳號。
- 管理員開兩步驟驗證,登入頁加機器人驗證。
- 用手機、無痕視窗、從 Google 搜尋結果點進網站,確認沒有轉址或垃圾內容;到 Search Console 看有沒有安全性問題通知。
- 過幾天請主機商再掃一次。同樣的檔案又出現,代表還有後門沒找到(見清完又復發)。
我們實際遇過的情況 #
有一段時間,好幾個客戶站陸續收到主機商的掃毒報告。其中一站前一天整站空白,主機商排查病毒後,我們接著更新外掛、設定兩步驟驗證。同一波也有站排查後查無病毒,我們仍補上登入驗證與兩步驟驗證——查無病毒不代表不會被打。
另一站收到主機商的入侵處理回覆後,我們重建了帳號;也有站在報告之後整理管理員、重設寄信設定,並替寄信用的信箱開兩步驟驗證。還有站在第一次排查後,又請主機商再查看一次,不以一份報告就結案。
什麼時候該找人 #
報告列出的檔案在 uploads 或 mu-plugins、清完同樣的檔案又出現、網站上有會員或訂單資料,或主機商只說「已清除」卻沒人說得清入口在哪。這些都代表事情還沒結束,要有人看存取紀錄、比對檔案,找出真正的入口。
WPTOOLBEAR網站工具熊