Chrome Dev Summit 2018 is happening now and streaming live on YouTube. Watch now.

修正偽裝的關鍵字和連結入侵問題

本指南旨在協助您處理所謂的亂字植入問題。顧名思義,遭到入侵的網站會出現充斥無意義關鍵字的網頁。各大內容管理系統 (CMS) 的使用者皆可參考本指南。不過,即使您並未使用 CMS,本指南仍提供了十分實用的資訊。

Note: 不確定您的網站是否遭到入侵嗎?首先請詳閱我們的如何檢查網站是否遭到入侵指南。

目錄

判別這類入侵行為

偽裝關鍵字和連結入侵會自動產生許多包含無意義文字、連結\和圖片的網頁。這些網頁有時會含有原始網站的基本範本元素,所以乍看之下可能被誤當成目標網站的正確網頁,使用者需閱讀內容才會發現問題。

這類遭入侵網頁的建立目的是操縱 Google 的排名指標。駭客常試圖向其他第三方販售遭入侵網頁上的連結,藉此營利。此外,遭到入侵的網頁常會將訪客重新導向至不相關的網頁 (例如色情網站),讓駭客從中牟利。

如要檢查這類問題,首先請使用 Search Console安全性問題工具查看 Google 是否在您的網站上找到任何這類遭到入侵的網頁。開啟 Google 搜尋視窗並輸入 site:[your site],有時也能找出這類網頁。您網站上已經由 Google 建立索引的網頁都會顯示,包括遭到入侵的網頁。請瀏覽搜尋結果中的一些網頁,看看有無任何不尋常的網址。如果 Google 搜尋未顯示任何遭到入侵的內容,請使用其他搜尋引擎搜尋相同的字詞。其他搜尋引擎可能會顯示 Google 已從索引中移除的遭入侵內容。這類搜尋結果看起來通常是下面這樣子的:

Note: 這裡的搜尋結果包含許多不是由網站擁有者建立的網頁。如果您仔細觀察第二筆和第三筆搜尋結果的說明,就會看到這類入侵行為所植入的不相關文字。

當您造訪遭到入侵的網頁時,可能會看到表示網頁不存在的訊息 (例如 404 錯誤訊息)。請別上當!駭客會讓您以為遭到入侵的網頁已移除或已修正,製造網站沒有問題的假象。這種做法稱為偽裝內容。請在 Google 模擬器工具中輸入您網站的網址,查看有無偽裝內容。Google 模擬器工具可讓您查看基本的隱藏內容。遭到入侵的網頁外觀可能如下:

修正入侵問題

首先,請為所有要移除的檔案建立離線複本,再移除檔案,以免日後需要還原檔案。您甚至可以先備份整個網站,再開始執行清理程序。如要這麼做,請將位於您伺服器上的所有檔案儲存到其他位置,或是搜尋您的 CMS 專用的最佳備份做法。

檢查 .htaccess 檔案 (3 個步驟)

偽裝的關鍵字和連結入侵會使用您的 .htaccess 檔案,在您的網站上自動建立偽裝的網頁。您可以前往 Apache 官方網站,熟悉 .htaccess 基礎知識,進一步瞭解這類入侵行為對您的網站有何影響。

步驟 1

在您的網站上找出 .htaccess 檔案。如果您不確定所在位置,且您使用的是 WordPress、Joomla 或 Drupal 這類 CMS,請在搜尋引擎中使用「.htaccess 檔案位置」搭配您的 CMS 名稱進行搜尋。.htaccess 檔案數量可能不只一個 (因網站而異)。請以清單記錄所有 .htaccess 檔案位置。

Note: .htaccess 經常是「隱藏的檔案」。搜尋時請務必讓系統顯示所有隱藏的檔案。

步驟 2

開啟 .htaccess 檔案並查看內容。您應可在其中找出一行外觀大致如下的程式碼:

  RewriteRule (.*cj2fa.*|^tobeornottobe$) /injected_file.php?q=$1 [L]

這行中的變數可能有所不同。「cj2fa」和「tobeornottobe」可能是任何字母或字詞組合。重要的是找出在這行中參照的 .php。

請記下 .htaccess 檔案中提到的 .php 檔案。範例中的 .php 檔案名稱為「injected_file.php」,但實際上的 .php 檔案名稱不會這麼顯眼,通常是隨機的一組無害字詞,例如「horsekeys.php」、「potatolake.php」等等。這很有可能就是後續需要追蹤並移除的惡意 .php 檔案。

在 .htaccess 中,並非所有含 RewriteRule 和 .php 檔案的行都是惡意程式碼。如果您不確定特定一行程式碼的功用,請前往網站管理員說明論壇求助,請經驗豐富的網站管理員們協助您判斷。

步驟 3

使用沒有惡意內容或預設版本的 .htaccess 檔案取代所有 .htaccess 檔案。一般來說,如要尋找預設版本的 .htaccess 檔案,您可以使用「預設 .htaccess 檔案」搭配您的 CMS 名稱進行搜尋。如果您的網站有多個 .htaccess 檔案,請針對各個檔案找出沒有惡意內容的版本,再執行取代作業。

如果沒有預設的 .htaccess,且您未曾在網站上設定過 .htaccess 檔案,那麼您在網站上找到的 .htaccess 可能是惡意檔案。保險起見,請離線儲存 .htaccess 檔案複本,然後將 .htaccess 檔案從您的網站上刪除。

找出其他惡意檔案並予以移除 (5 個步驟)

判別惡意檔案不太容易,可能需要數小時。請耐心檢查檔案。如果您尚未備份網站上的檔案,這時可以順便進行備份。請透過 Google 搜尋「備份網站」和您的 CMS 名稱,尋找相關的操作說明。

步驟 1

如果您使用 CMS,請重新安裝預設 CMS 版本內含的所有核心 (預設) 檔案,以及您可能新增過的任何項目 (例如主題、模組、外掛程式),以確保這些檔案完全沒有遭到入侵的內容。您可以透過 Google 搜尋「重新安裝」和您的 CMS 名稱,尋找重新安裝程序的相關操作說明。如果您有任何外掛程式、模組、擴充功能或主題,別忘了一併重新安裝這些項目。

重新安裝核心檔案會使您失去所有調整過的自訂設定。請務必先為資料庫和所有檔案建立備份,再重新安裝。

步驟 2

請先尋找您稍早在 .htaccess 檔案中找出的 PHP 檔案。根據您存取伺服器上檔案的方式,應可使用某些類型的搜尋功能。請搜尋惡意檔案名稱。如果找到的話,請先備份複本並儲存在其他位置 (以免日後需要還原),再將惡意檔案從網站上刪除。

步驟 3

尋找有無遺留任何其他惡意或遭到入侵的檔案。您可能在前兩個步驟已經移除了所有惡意檔案,但最好還是執行後續幾步,以免網站上殘留其他遭到入侵的檔案。

請別誤以為您必須開啟每個 PHP 檔案並詳加檢視。首先請建立可疑的 PHP 檔案清單,列出您要調查的檔案。判別可疑的 PHP 檔案時,可以採用以下這些方法:

  • 如果您已重新載入 CMS 檔案,只需檢視不屬於預設 CMS 檔案或資料夾的檔案。這樣可以排除大多數的 PHP 檔案,只剩一些檔案需要檢視。
  • 依上次修改日期排序您網站上的檔案,找出修改時間與您首次發現網站遭到入侵的時間相差不到幾個月的檔案。
  • 依大小排序您網站上的檔案,找出所有特別大的檔案。

步驟 4

建立可疑的 PHP 檔案清單後,即可檢查是正常檔案或惡意檔案。如果您對 PHP 不熟悉,可能需要花費更多時間,不妨先溫習一些 PHP 說明文件。不過,即使您是編寫程式碼的新手,仍可尋找一些有助於判別 惡意檔案的基本模式。

首先,請掃描您已找出的惡意檔案,找出像是雜亂的字母和數字組合的大段文字。這類大段文字前面通常有 PHP 函式組合,例如 base64_decode、 rot13、eval、strrev、gzinflate。這類程式碼區塊可能的外觀如下。有時這類程式碼會全部包進一長串文字,看起來比實際上更小。

<!--Hackers try to confuse webmasters by encoding malicious code into blocks of texts.
Be wary of unfamiliar code blocks like this.-->

base64_decode(strrev("hMXZpRXaslmYhJXZuxWd2BSZ0l2cgknbhByZul2czVmckRWYgknYgM3ajFGd0FGIlJXd0Vn
ZgknbhBSbvJnZgUGdpNHIyV3b5BSZyV3YlNHIvRHI0V2Zy9mZgQ3Ju9GRg4SZ0l2cgIXdvlHI4lmZg4WYjBSdvlHIsU2c
hVmcnBydvJGblBiZvBCdpJGIhBCZuFGIl1Wa0BCa0l2dgQXdCBiLkJXYoBSZiBibhNGIlR2bjBycphGdgcmbpRXYjNXdmJ2b
lRGI5xWZ0Fmb1RncvZmbVBiLn5WauVGcwFGagM3J0FGa3BCZuFGdzJXZk5Wdg8GdgU3b5BicvZGI0xWdjlmZmlGZgQXagU2ah
1GIvRHIzlGa0BSZrlGbgUGZvNGIlRWaoByb0BSZrlGbgMnclt2YhhEIuUGZvNGIlxmYhRWYlJnb1BychByZulGZhJXZ1F3ch
1GIlR2bjBCZlRXYjNXdmJ2bgMXdvl2YpxWYtBiZvBSZjVWawBSYgMXagMXaoRFIskGS"));

有時這類程式碼並不雜亂,看起來就像普通程式碼。如果您不確定是否屬於惡意程式碼,請前往網站管理員說明論壇求助,請經驗豐富的網站管理員們協助您檢查檔案。

步驟 5

您現已瞭解哪些檔案屬於惡意檔案,請先建立備份或本機複本,將這些檔案儲存在電腦上 (以免後續發現並非惡意檔案),再刪除所有惡意檔案。

檢查網站是否沒有惡意內容

清理完遭到入侵的檔案後,請檢查您的一番苦心是否奏效。還記得您稍早找到了一些充斥胡言亂語的網頁嗎?請再次使用 Google 模擬器檢查這些網頁,看看是否仍然存在。如果 Google 模擬器傳回「找不到」回應,表示您的網站應該沒問題了!

您也可以按照網站遭入侵疑難排解工具中的步驟檢查您的網站上是否仍有遭到入侵的內容。

如何避免再次遭到入侵?

修正網站的安全性漏洞是修正網站問題的最後一步,也是重要的一步。最近的研究發現曾遭入侵的網站中有 20% 會在 1 天內再次遭到入侵。因此,確切瞭解網站遭到入侵的方式實在很有幫助。請詳閱垃圾內容發佈者入侵網站的常見方式指南,針對安全性漏洞展開調查。不過,如果您無法找出網站遭到入侵的方式,請參考以下檢查清單,瞭解可有效減少網站安全性漏洞的一些做法:

  • 定期更新 CMS、外掛程式、擴充功能和模組:希望您已經完成這個步驟。許多網站正是因為執行的軟體版本過舊而遭到入侵。部分 CMS 支援自動更新功能。
  • 定期掃描電腦:任選各大病毒掃描工具,檢查有無病毒或安全性漏洞。
  • 定期變更關鍵字:定期變更您所有網站帳戶 (例如代管服務供應商、FTP 和 CMS) 的密碼可防止他人在未經授權的情況下存取您的網站。請務必為每個帳戶建立非重複的高強度密碼。
  • 使用雙重驗證 (2FA):建議您為所有要求您登入的服務啟用 2FA。這樣一來,即使駭客成功竊取您的密碼,仍然不易冒用您的身分登入。
  • 考慮訂閱安全性服務,協助您監控網站:有許多優質服務可協助您監控網站,且費用不高。建議您註冊這類服務,確保您的網站安全無虞。

其他資源

如果您仍然無法順利修正網站問題,還有另一些資源可能對您有所幫助。

這些工具會掃描您的網站,並可能發現有問題的內容。除了 VirusTotal 以外,Google 並未針對這些工具提供支援。

Virus TotalAw-snap.infoSucuri Site CheckQuttera:這些工具都能為您掃描網站,協助找出問題內容。提醒您,這些掃描工具不一定能判別所有類型的問題內容。

Google 另外提供了以下資源,可能對您有所幫助:

還有其他您認為可能實用的工具嗎?請提供意見,讓我們瞭解您的想法。