如果感染了 WordPress 上的 SEO 垃圾郵件怎麼辦

已發表: 2021-05-17

在 Jetpack,處理不同類型的網絡威脅和攻擊是我們日常工作的一部分。 大多數情況下,它的範圍從收集惡意文件和查找攻擊媒介,到提供從最新備份恢復網站的幫助。 但有時我們會進入一個真正有創意的攻擊的不同維度,一個莫名其妙的再感染維度——我們進入……暮光區。

好吧,我可能過於戲劇化了,但請耐心等待我為這個神秘故事設定場景。 準備好? 請和我一起踏上幽靈、垃圾郵件和搜索引擎領域的旅程。

惡意行為

我們發現一個網站受到了一種非常有趣的攻擊。 它最初是作為谷歌搜索控制台發送的電子郵件出現的:一個不常見的 URL(而且看起來非常可疑,裡面有一個可點擊的 URL)被列為增長最快的頁面。

顯示垃圾郵件插入 URL 的圖像
谷歌搜索引擎工具增長最快的頁面

網站所有者有點不高興,因為這樣的行為通常是感染的結果,但 Jetpack 沒有檢測到或警告他們任何事情。 另外,當他們檢查時,這些頁面甚至不存在於網站上,但無論如何都被谷歌索引了。 暮光地帶愈演愈烈

當我們檢查 Jetpack Scan 可能遺漏的任何可疑文件時(沒有安全工具檢測到 100% 的威脅),事情變得更加奇怪。 WordPress 核心和插件完好無損:數據庫上沒有註入文件或腳本。 一些過時的插件沒有任何安全修復,WordPress 落後一個版本(5.6),最新的更新沒有列出任何重大的安全修復。 根本沒有任何可疑之處。 沒有通常的嫌疑人,沒有襲擊的證據; 還沒有,反正。

下一個合乎邏輯的步驟是檢查訪問日誌。 也許它可以揭示這個謎團。 我們是否會發現我們正面臨零日攻擊,或者我們終於找到了多元宇宙理論的證明,而這個網站只在 Universe #1337 中受到感染? 到日誌!

垃圾郵件請求的代碼
對這個奇怪的垃圾郵件的請求
另一個奇怪的垃圾郵件請求。為什麼必應喜歡它?
似乎 Bing 也喜歡它……但為什麼呢?

如您所料:沒有什麼奇怪的,除了對這些垃圾郵件頁面的一堆請求,正如您在屏幕截圖中看到的那樣。 他們都返回了“200 OK”。 所以,頁面存在於時間和空間連續體中的某個地方,或者……等一下……你現在看到了嗎?

所有這些頁面都指向同一個位置:`/?s=`,這意味著搜索引擎(Google 注意到了這個問題,但請求來自 Bing)正在索引搜索結果頁面。 那為什麼呢? 據我們所知,爬蟲不會在頁面上執行搜索,對吧?

索引悖論

如果您從事網站業務,搜索引擎如何工作的基礎知識相當簡單。 有一個機器人(或自動化腳本)可以抓取網頁、索引其內容、執行一些魔法並將可查詢的資源存儲在雲中的某個位置。

考慮到這一點,我們對日誌進行了更多挖掘,以查看這些請求中是否有任何其他線索,例如引薦來源網址,但完全沒有運氣。 所有記錄的請求都來自搜索引擎。 幸運的是,谷歌搜索控制台在其中一個日誌中有一個引用頁面。

谷歌搜索控制台審查頁面
Google 的 Search Console 工具為我們提供了一些提示。

現在我認為是時候將我們的 Twilight Zone 帽子換成 CSI 帽子並挖掘一些網站骨頭放在顯微鏡下。

對於受過訓練的人來說,很容易看出引用頁面 URL 屬於受感染的網站; 幸運的是,我們有訓練有素的眼睛! `index.php` 目錄毫無意義,可能是為了混淆網站所有者而添加的。 接下來是另一個隨機目錄和一個隨機名稱的 PHP 文件,這可能是一個正在獲取最終有效負載的加載程序:`cargese4/cca442201.htm`,這也是隨機的。 所有這些都是鏈接農場惡意軟件感染的特徵。

在 Google 上快速搜索以查看引用站點的索引內容,確認它確實被感染並在一段時間內提供 SEO 垃圾郵件。 該網站是為印度的一家食品公司提供的,但在日本提供 SUV 交易——是的,那是垃圾郵件。

垃圾郵件攻擊的日語搜索結果
在印度網站上搜索帶有日語垃圾郵件的查詢。

但是,沒有一個結果鏈接到我們朋友的網站,所以我決定找出其他網站是否受到同樣奇怪行為的影響。

為了尋找更多這種垃圾郵件攻擊的受害者,我們僅出於教育目的,使用我們的 Google-fu 知識製作了一個搜索查詢,該查詢將返回以 .edu 結尾的網站,其 URL 中有`/?s=`,以及標題中的“購買”一詞。 我們得到了 22 個結果。 這對我們的狩獵來說已經足夠了。

垃圾郵件的搜索結果
使用 .edu 和 .gov 網站檢查垃圾郵件感染過濾掉僅為鏈接農場創建的域(如 .com)。

這證明報告的站點不是唯一受影響的站點; 這似乎是一個更普遍的問題。 我們思考了是什麼讓 Google 將這些頁面編入索引。 Googlebot 是如何接觸到他們的? 下一步:反向鏈接檢查器。

反向鏈接檢查的結果
反向鏈接檢查的結果

有幾種在線工具可以提供網站反向鏈接的報告; 我們在這項研究中使用的是 Ahrefs,但其他工具可能會達到相同的結果。 結果中列出了一些惡意搜索頁面,確認我們走在正確的道路上。

選擇其中一個網站來檢查發生了什麼,我們看到了近 5,000 條垃圾郵件評論,正如您在下一個屏幕截圖中看到的那樣(他們應該查看 Jetpack Anti-spam)。 每條評論都鏈接到查詢中包含垃圾郵件的網站搜索頁面。

鏈接到垃圾郵件結果的評論部分
鏈接到垃圾郵件的評論

捉住白兔

正如我之前提到的,搜索引擎機器人不會在網站頁面上執行查詢。 但是,如果它找到指向它的鏈接,它將被跟踪。 如果頁面沒有告訴自動化腳本某個特定頁面不可索引,它會添加它。

注入垃圾郵件示例
Ye olde 注入垃圾郵件

這是一種在網站上“注入”垃圾郵件的巧妙方法,用於向搜索引擎結果發送垃圾郵件並通過省力的鏈接耕作來提高網站頁面排名。

既然我們理解了這個問題,我們如何告訴搜索引擎機器人避免跟隨指向搜索頁面的鏈接(或者只是拒絕將它們編入索引)? 最好的方法是對 WordPress Core 進行更改,這將有助於保護整個社區(如果您想報告錯誤或想貢獻代碼,請加入我們)。

為了避免一些不必要的返工,我們檢查了 WordPress Core trac,發現這個問題在 5.7 版上已解決,但遺憾的是沒有將其作為安全問題出現在更新日誌中。

我將引用作者,他比我更好地描述了這個問題(感謝 abagtcs 的報告):

網絡垃圾郵件發送者已經開始濫用這些網站的搜索功能,通過傳遞垃圾郵件術語和主機名,希望提高垃圾郵件發送者網站的搜索排名。

垃圾郵件發送者將這些鏈接放置在開放的 wiki、博客評論、論壇和其他鏈接場中,依靠搜索引擎抓取他們的鏈接,然後訪問並索引帶有垃圾內容的搜索結果頁面。

這種攻擊出人意料地相當廣泛,影響了世界各地的許多網站。 儘管某些由自定義編寫代碼提供支持的 CMS 和網站可能容易受到這種技術的攻擊,但根據初步調查,似乎——至少在 .edu 領域——迄今為止最具針對性的網絡平台是 WordPress。”

當網絡上超過 41% 的最大網站是 WordPress 網站時,這並不奇怪。

結案

從這次事件中可以吸取一些很好的教訓:

  1. 熱門增長頁面上顯示的 URL 沒有得到很好的清理,因此您看到的被表情符號分隔的垃圾郵件 URL 實際上是可直接點擊的(嗨,Google 朋友,那是你的); 不知情的用戶可以點擊它們並訪問不需要的內容。
  2. Google 需要進行一些調整,以避免將明顯的垃圾頁面編入索引。 根據工具報告,一些清晰的頁面被抓取並沒有被索引,同時添加了垃圾郵件。
  3. 攻擊者甚至會利用您系統上最小的漏洞,我們必須時刻保持警惕。
  4. 始終傾聽人們的意見並了解他們的問題。 如果我們只從我們自己的工具中檢查日誌,我們將不會意識到這個問題,也無法幫助修復他們的網站。
  5. 使您的軟件保持最新。 總是。

在 Jetpack,我們努力確保您的網站免受此類漏洞的影響。 要領先任何新威脅一步,請查看 Jetpack Scan,其中包括安全掃描和自動惡意軟件刪除。

Erin Casali 致敬,感謝他強調了這個問題並幫助調查。