一個裝機(jī)量7萬的WordPress插件,從2020年起就被植入了后門。更離譜的是,動手腳的不是外部黑客,是插件原作者自己。
安全研究員Austin Ginder在例行審計中發(fā)現(xiàn),Quick Page/Post Redirect Plugin的5.2.3版本文件哈希與官方倉庫對不上。深入追查后,一樁長達(dá)五年的供應(yīng)鏈攻擊浮出水面——開發(fā)者anadnet親手把惡意代碼送進(jìn)了官方倉庫,又親手抹掉了痕跡。
![]()
雙后門架構(gòu):一個管滲透,一個管潛伏
這次攻擊的技術(shù)設(shè)計相當(dāng)精巧。攻擊者部署了兩層機(jī)制:主動后門是一個被篡改的更新檢查庫,被動后門是遠(yuǎn)程注入的惡意載荷。
主動后門偽裝成常規(guī)的插件更新功能,但連接的不是WordPress官方服務(wù)器,而是開發(fā)者控制的私有地址。這意味著攻擊者可以隨時推送"更新",且這些更新?lián)碛型暾墓芾韱T權(quán)限。
被動后門更隱蔽。它會向遠(yuǎn)程服務(wù)器請求內(nèi)容,直接把返回的代碼注入網(wǎng)頁。但有個關(guān)鍵設(shè)計:如果檢測到當(dāng)前用戶已登錄,或者訪問者是搜索引擎爬蟲之外的普通訪客,注入才會觸發(fā)。管理員在后臺看到的永遠(yuǎn)是干凈的頁面。
這種"選擇性隱身"讓問題極難被發(fā)現(xiàn)。網(wǎng)站主自查時一切正常,只有真正的訪客和爬蟲才會加載惡意內(nèi)容——典型的寄生蟲SEO(黑帽SEO的一種,通過在正常網(wǎng)站植入垃圾內(nèi)容提升其他站點(diǎn)排名)。
目前指揮控制服務(wù)器已下線,后門處于休眠狀態(tài)。但危險在于,那個自定義更新機(jī)制仍然完好,隨時可以被重新激活。
時間線復(fù)盤:作者如何在官方倉庫"釣魚"
攻擊不是一次性完成的,而是分階段精密操作。
2020年底,開發(fā)者anadnet向WordPress官方倉庫提交了一次正常更新,其中包含那個惡意自更新器。這是第一步——把"鉤子"埋進(jìn)官方渠道,讓后續(xù)所有安裝者都帶上這個后門。
數(shù)月后,作者通過私有服務(wù)器向已安裝的插件分發(fā)篡改過的載荷。此時,那些從官方倉庫下載插件的用戶,實(shí)際接收的更新卻來自攻擊者的私人服務(wù)器。
最后一步最狡猾:作者從官方源代碼中悄悄移除了自定義更新器。倉庫里的代碼看起來干凈了,但已經(jīng)部署出去的7萬個實(shí)例早已被"綁架",持續(xù)連接著私有服務(wù)器。
這種"斷尾求生"的手法,讓官方倉庫的歷史記錄不再顯示明顯異常。如果沒有Ginder這次針對文件哈希的專項(xiàng)審計,這個后門可能還會繼續(xù)潛伏。
2026年4月,WordPress插件審核團(tuán)隊(duì)已將該插件臨時下架,等待全面調(diào)查。
為什么傳統(tǒng)掃描器會失效
這個案例暴露了常規(guī)安全工具的盲區(qū)。
攻擊者可以偽造版本號。你的插件管理面板顯示"5.2.3",與官方最新版一致,你以為自己是最新的、安全的。但文件內(nèi)容早已被替換,版本號只是個數(shù)字游戲。
傳統(tǒng)的漏洞掃描器依賴版本號比對和已知漏洞庫。面對這種供應(yīng)鏈層面的篡改,它們幾乎必然漏報——因?yàn)閺募夹g(shù)定義上,這不是一個"漏洞",而是一個"被官方認(rèn)證過的惡意功能"。
Ginder給出的檢測方法是:使用WordPress內(nèi)置的命令行工具,直接校驗(yàn)文件哈希值。任何與官方倉庫不匹配的文件,都意味著已被篡改。
這引出一個更深層的問題:當(dāng)攻擊者本身就是供應(yīng)鏈的一環(huán),用戶該如何防御?WordPress插件生態(tài)依賴開發(fā)者自律和事后審核,但顯然,這套機(jī)制在五年時間里沒能攔住一個有意作惡的作者。
插件經(jīng)濟(jì)的信任悖論
Quick Page/Post Redirect Plugin不是無名小卒。7萬活躍安裝量意味著它曾解決過真實(shí)需求——頁面重定向是網(wǎng)站運(yùn)營的常見場景,從SEO優(yōu)化到舊鏈接遷移都需要這類工具。
用戶選擇它,是基于對官方倉庫的信任背書。但這種信任模型有個致命假設(shè):開發(fā)者會長期保持善意,或者至少保持理性自利(不會毀掉自己的聲譽(yù)資產(chǎn))。
anadnet的行為打破了這種假設(shè)。我們無從得知動機(jī)——是賬號被盜?經(jīng)濟(jì)壓力?還是從一開始就是精心設(shè)計的長期騙局?原文沒有提供這些信息,任何猜測都是不負(fù)責(zé)任的。
可以確定的是,這個案例會加速WordPress生態(tài)的變革。代碼簽名、更嚴(yán)格的更新驗(yàn)證、開發(fā)者身份持續(xù)核驗(yàn),這些機(jī)制的成本都會上升。但最終買單的,還是依賴免費(fèi)插件的中小站長。
一個值得觀察的信號是:WordPress社區(qū)是否會建立"已退出開發(fā)者"的插件接管機(jī)制?當(dāng)原作者消失或不可信時,如何確保數(shù)萬用戶的業(yè)務(wù)連續(xù)性?
如果你的網(wǎng)站用了這個插件,現(xiàn)在該做什么?除了立即停用和清理,更緊迫的問題是:你裝的另外幾十個插件里,還有多少個anadnet?
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.