用4700行程式碼兩天內阻止大規模WordPress垃圾攻擊——感謝Codex和Claude
作者網站遭受垃圾註冊攻擊,利用Claude Cowork和OpenAI Codex在兩天內編寫4700行程式碼,識別漏洞、加強防禦並清理15,000多個垃圾賬戶。
約一個月前,作者的主網站遭受了新的垃圾攻擊。攻擊者利用使用者名稱欄位傳遞虛假域名和加密貨幣誘餌,例如“檢查餘額”、“提取資金”、“BTC轉賬”和“需要操作”。WordPress將這些內容轉發為“新使用者註冊”郵件,作者每天收到數千封。當時使用的商業安全產品未能有效防護,於是作者決定在自己開發的WordPress安全外掛中加入反垃圾功能。最初,作者將Gmail中數百封垃圾郵件的截圖餵給Codex,要求它編寫快速緩解措施。Codex完成後,作者部署了增強版外掛,問題在一小時內得到解決。那是在六月初。然而,上週攻擊捲土重來,且更加兇猛。作者的託管提供商告知資料庫已膨脹至超過39,000個使用者賬戶和700,000個使用者元記錄,使用者賬戶儀表板無法載入。提供商要求立即清理資料庫並阻止攻擊。
作者決定混用兩款AI工具:使用Claude Cowork進行診斷和分析,使用Codex編寫程式碼。由於作者使用的是ChatGPT Plus(每月20美元)而非Pro,不想讓Codex超限,而Claude有更大的使用視窗,因此分工明確。Claude Cowork首先要求管理員登入,但作者解釋垃圾郵件傳送者無需管理員許可權即可利用漏洞,Claude理解了並開始對網站進行探查。大約40分鐘後,Claude發現了八個漏洞,最顯著的是使用者註冊頁面雖然有驗證碼,但垃圾郵件傳送者可透過提交URL繞過驗證碼直接觸發註冊。此外,垃圾郵件傳送者還將URL植入到個人簡介欄位(而非URL欄位)中。Claude還分析了資料庫,發現了多個識別垃圾賬戶的訊號。隨後,作者要求Claude為Codex編寫提示,以修復這些漏洞。Claude的第一版提示可能導致破壞性程式碼,經作者檢查和糾正後,獲得了安全的提示。
Codex在ChatGPT Plus訂閱下構建了三大系統。首先,增強了垃圾檢測訊號。其次,在所有開放註冊路徑上新增了驗證碼,包括標準WordPress登錄檔單以及REST API、XML-RPC、admin-ajax和自定義登錄檔單等入口。最後,利用Codex新增了一個多階段垃圾賬戶清理工具,該工具使用所有垃圾賬戶訊號分析功能來確定使用者賬戶是否為垃圾賬戶,並新增了可恢復的瀏覽器驅動批次分析和刪除介面。整個週末作者都在緊張編碼,因為每拖延一小時就會有更多垃圾賬戶產生。週六,作者兩次被Codex限制使用,但透過“重置使用量”功能每次獲得了約45分鐘的額外編碼時間。週日主要在測試,將資料庫副本移至本地機器執行清理工具,每次測試約需兩小時。作者使用了第三次重置進行最終編碼修改。到週日下午晚些時候,新模組部署到伺服器。清理後,刪除了39,314個使用者賬戶中的15,069個,以及723,799個使用者元記錄中的275,567個,使用者賬戶儀表板恢復正常。
作者對這次經歷進行了反思:Claude Cowork的寬使用視窗適合前期分析,而Codex擅長程式碼生成,但需要仔細稽核輸出。這次經驗展示了低價位AI訂閱在緊急開發中的潛力,也強調了人工監督的重要性。OpenAI於6月11日推出了重置功能,符合條件的Plus和Pro使用者獲得了一次免費重置。作者提醒,務必雙重檢查AI生成的所有內容,特別是供其他AI使用的提示。