本指南專為一種攻擊手法而設計,這種攻擊手法會在網站上加入大量關鍵字的亂碼網頁,我們稱之為「隱藏關鍵字和連結」攻擊。這篇文章主要適用於常見內容管理系統 (CMS) 的使用者。不過,即使您未使用 CMS,這份指南仍可能對您有所幫助。
找出駭客行為
偽裝關鍵字與連結攻擊會自動產生許多包含無意義文字、連結和圖片的網頁。這些網頁有時會含有原始網站的基本範本元素,所以乍看之下可能會被誤認為網站的正確網頁,使用者必須閱讀內容後才會發現問題。
駭客建立這些網頁的目的,是為了操控 Google 的排名因素。駭客通常會嘗試將遭到入侵的網頁連結賣給不同的第三方,藉此營利。遭到入侵的網頁通常也會將訪客重新導向至駭客可賺取收益的無關網頁。
首先,請在 Search Console 中查看「安全性問題」工具,瞭解 Google 是否在你的網站上發現任何遭入侵的頁面。有時,您也可以開啟 Google 搜尋,並輸入 site:_your site url_
和網站的根層級網址,來找出這些網頁。這項搜尋的結果會顯示 Google 為你的網站建立索引的網頁,包括遭到入侵的網頁。查看幾頁搜尋結果,看看是否有任何不尋常的網址。
如果您在 Google 搜尋中找不到任何遭入侵的內容,請使用相同的搜尋字詞,並透過其他搜尋引擎搜尋。以下是可能的範例:
![這項駭客攻擊產生的搜尋結果。](https://web.dev/static/articles/fix-the-cloaked-keywords-hack/image/search-results-generated.png?authuser=8&hl=zh-tw)
一般來說,當您點選連結至遭入侵網頁的連結時,系統會將您重新導向至其他網站,或是顯示充滿亂碼的網頁。不過,您也可能會看到網頁不存在的訊息 (例如 404 錯誤)。別上當!駭客會試圖讓你以為頁面已遭移除或已修復,但實際上仍遭到入侵。方法是隱藏內容。
在網址檢查工具中輸入網站的網址,檢查是否有隱藏內容。您可以使用 Google 模擬器工具查看隱藏的底層內容。
![這個駭客程式建立的範例網頁。](https://web.dev/static/articles/fix-the-cloaked-keywords-hack/image/example-hacked-page.png?authuser=8&hl=zh-tw)
修正駭客攻擊
開始前,請先將整個網站離線備份。這樣一來,您日後就能視需要還原任何檔案。將伺服器上的所有檔案儲存至伺服器外的其他位置。
如果您使用 WordPress 或 Drupal 等內容管理系統 (CMS),可能可以使用備份外掛程式來儲存網站。別忘了備份資料庫。如需操作方式,請參閱 CMS 的說明文件。
檢查 .htaccess
檔案 (3 個步驟)
偽裝關鍵字和連結攻擊會使用您的 .htaccess
檔案,在網站上自動建立偽裝網頁。熟悉 Apache 官方網站上的 .htaccess
基本概念,有助您進一步瞭解駭客攻擊對網站的影響,但這並非必要。
步驟 1
在網站上找出 .htaccess
檔案。如果不確定該如何找到該檔案,且您使用的是 WordPress、Joomla 或 Drupal 等 CMS,請在搜尋引擎中搜尋「.htaccess 檔案位置」以及 CMS 的名稱。視網站而定,您可能會看到多個 .htaccess
檔案。列出所有 .htaccess
檔案位置。
步驟 2
開啟 .htaccess
檔案,查看檔案中的內容。請找出如下所示的一行程式碼:
RewriteRule (.*cj2fa.*|^tobeornottobe$) /injected_file.php?q=$1 [L]
這行中的變數可能有所不同。cj2fa
和 tobeornottobe
可以是任何字母或字詞的組合。重要的是找出此行中參照的 .php
。
請記下 .htaccess
檔案中提及的 .php
檔案。在這個範例中,.php
檔案的名稱為 injected_file.php
,但實際上檔案名稱不會這麼明顯。通常是隨機的無害字詞,例如 horsekeys.php
或 potatolake.php
。這很可能是惡意 .php
檔案,我們需要稍後追蹤並移除。
步驟 3
將所有 .htaccess
檔案替換為 .htaccess
檔案的清除或預設版本。您通常可以搜尋「預設 .htaccess
檔案」和 CMS 名稱,找到 .htaccess
檔案的預設版本。如果網站有多個 .htaccess
檔案,請找出每個檔案的乾淨版本,然後執行取代作業。
如果沒有預設 .htaccess
,且您從未在網站上設定 .htaccess
檔案,那麼您在網站上找到的 .htaccess
檔案可能含有惡意程式。為預防萬一,請離線儲存 .htaccess
檔案的副本,並從網站中移除。
尋找並移除其他惡意檔案 (5 個步驟)
找出惡意檔案可能需要花費大量時間,而且不容易辨識。請仔細檢查檔案。如果您尚未備份網站上的檔案,現在是時候進行備份了。請參閱特定 CMS 的說明文件,瞭解如何備份網站。
步驟 1
如果您使用 CMS,請重新安裝 CMS 預設發布版本中的所有核心 (預設) 檔案,以及您可能已新增的任何內容 (例如主題、模組、外掛程式)。這有助於確保這些檔案不含遭駭客入侵的內容。你可以搜尋「重新安裝」和 CMS 名稱,找出重新安裝操作說明。如果您有任何外掛程式、模組、擴充功能或主題,請務必一併重新安裝。
步驟 2
首先,請找出先前在 .htaccess
檔案中識別的 .php
檔案。視您存取伺服器檔案的方式而定,您應該會使用某種搜尋函式。搜尋惡意檔案名稱。如果找到了,請先建立備份並儲存在其他位置,以備日後還原之用,然後再從網站中刪除。
步驟 3
檢查是否有任何惡意或遭入侵的檔案。您可能已在前兩個步驟中移除所有惡意檔案,但請務必確認網站中沒有其他遭到入侵的檔案。
如果您認為必須開啟並查看每個 PHP 檔案,可能會感到不知所措。請改為建立要調查的可疑 PHP 檔案清單。以下提供幾種方法,協助您判斷哪些 PHP 檔案可疑:
- 如果您已重新載入 CMS 檔案,請只查看不在預設 CMS 檔案或資料夾中的檔案。這樣一來,系統就會排除許多 PHP 檔案,只留下少數檔案供您查看。
- 依上次修改日期排序您網站上的檔案,找出在您首次發現網站遭到入侵後的幾個月內修改過的檔案。
- 依大小排序您網站上的檔案,找出所有特別大的檔案。
步驟 4
取得可疑 PHP 檔案清單後,請檢查這些檔案是否含有惡意內容。如果您不熟悉 PHP,這項程序可能會耗費更多時間,因此建議您參閱一些 PHP 說明文件。如果您是程式設計新手,建議尋求協助。在此期間,您可以觀察一些基本模式,找出惡意檔案。
如果您使用 CMS,但不習慣直接編輯這些檔案,請將伺服器上的檔案與 CMS 和任何外掛程式和主題所隨附的預設檔案清單進行比較。找出不屬於這個資料夾的檔案,以及檔案大小大於預設版本的檔案。
首先,請掃描您已識別的可疑檔案,尋找含有大量文字的區塊,這些文字看起來像是混雜的字母和數字組合。大範圍的文字通常會在前面加上 PHP 函式組合,例如 base64_decode
、rot13
、eval
、strrev
或 gzinflate
。
以下是程式碼區塊的範例。有時所有程式碼都塞進一行長長的文字中,讓文字看起來比實際上小。
// Hackers try to confuse webmasters by encoding malicious code into
// blocks of text. Be wary of unfamiliar code blocks like this.
base64_decode(strrev("hMXZpRXaslmYhJXZuxWd2BSZ0l2cgknbhByZul2czVmckRWYgknYgM3ajFGd0FGIlJXd0Vn
ZgknbhBSbvJnZgUGdpNHIyV3b5BSZyV3YlNHIvRHI0V2Zy9mZgQ3Ju9GRg4SZ0l2cgIXdvlHI4lmZg4WYjBSdvlHIsU2c
hVmcnBydvJGblBiZvBCdpJGIhBCZuFGIl1Wa0BCa0l2dgQXdCBiLkJXYoBSZiBibhNGIlR2bjBycphGdgcmbpRXYjNXdmJ2b
lRGI5xWZ0Fmb1RncvZmbVBiLn5WauVGcwFGagM3J0FGa3BCZuFGdzJXZk5Wdg8GdgU3b5BicvZGI0xWdjlmZmlGZgQXagU2ah
1GIvRHIzlGa0BSZrlGbgUGZvNGIlRWaoByb0BSZrlGbgMnclt2YhhEIuUGZvNGIlxmYhRWYlJnb1BychByZulGZhJXZ1F3ch
1GIlR2bjBCZlRXYjNXdmJ2bgMXdvl2YpxWYtBiZvBSZjVWawBSYgMXagMXaoRFIskGS"));
有時程式碼並未混亂,看起來就像一般指令碼。如果不確定程式碼是否有問題,歡迎前往 Google 搜尋中心產品討論社群,一群經驗豐富的網站管理員會協助你查看檔案。
步驟 5
確認可疑檔案後,請將這些檔案儲存在電腦上,以便建立備份或本機副本,以防萬一這些檔案並非惡意檔案,然後從網站中刪除可疑檔案。
檢查網站是否安全
移除遭入侵的檔案後,請檢查你的努力是否奏效。還記得先前找出的亂碼頁面嗎?再次使用 Google 模擬器工具,看看這些網頁是否仍存在。如果他們在「透過 Google 擷取」中回覆「未找到」,表示你的網站狀況良好,可以繼續修正網站上的安全漏洞。
如何避免再次遭到入侵?
最後,請修正網站上的安全漏洞,以防日後遭到入侵。根據一項研究,有 20% 遭到入侵的網站會在一天內再次遭到入侵。因此,確切瞭解網站遭到入侵的方式實在很有幫助。請參閱「垃圾內容發布者入侵網站的常見方式」,開始調查。
如果無法找出網站遭到入侵的原因,請按照以下檢查清單減少網站的安全漏洞:
- 定期掃描電腦:使用任何熱門的防毒掃描工具,檢查電腦是否有病毒或漏洞。
- 定期變更密碼:定期變更所有網站帳戶的密碼 (例如代管服務供應商、FTP 和 CMS),有助於防止未經授權存取網站。請務必為每個帳戶建立專屬的高強度密碼。
- 使用雙重驗證 (2FA) 或設定密碼金鑰:即使駭客成功竊取密碼,雙重驗證和密碼金鑰也能大幅提高登入難度。
- 定期更新 CMS、外掛程式、擴充功能和模組: 許多網站遭到入侵,是因為執行的是過時軟體。部分內容管理系統支援自動更新功能。
- 考慮訂閱安全性服務來監控網站:市面上有許多優質服務,只要支付少許費用,就能協助您監控網站。建議你向這些機構註冊,確保網站安全無虞。
其他資源
如果仍無法順利修正網站,我們還有其他資源可供參考。
這些工具會掃描你的網站,並找出有問題的內容。不過,除了 VirusTotal Google 提供的工具,Google 並未對其他工具提供支援。
這些掃描工具無法保證一定能識別所有類型的有害內容。請繼續定期檢查網站安全性。
以下提供其他實用資源: