本指南適用於會自動在網站上產生日文文字的駭客攻擊,我們稱之為日文關鍵字駭客攻擊。本指南專為熱門內容管理系統 (CMS) 的使用者設計,但如果您的網站未使用 CMS,本指南仍有參考價值。
辨識這類駭客攻擊
日文關鍵字攻擊通常會以隨機產生目錄名稱的方式,在網站上建立滿是自動產生日文的新網頁 (例如 http://example.com/ltjmnjp/341.html)。這些網頁會使用聯盟連結指向販售冒牌商品的商店,並顯示在 Google 搜尋服務中,藉此達到營利目的。以下是其中一個頁面的範例:
駭客通常會在這類入侵事件中,將自己新增為 Search Console 中的資源擁有者,藉此操控網站設定 (例如地理區域目標或網站地圖),以提高收益。如果收到通知,指出有人在 Google Search Console 中驗證了您的網站,但您並不認識對方,則網站很可能遭到入侵。
首先,請使用 Search Console 中的「安全性問題」工具,查看 Google 是否在您的網站上發現任何遭入侵的網頁。有時,您也可以開啟 Google 搜尋視窗並輸入「site:_your site url_」,然後輸入網站的根層級網址,找出這類網頁。這會顯示 Google 為您網站建立索引的網頁,包括遭駭網頁。翻閱幾頁搜尋結果,看看是否有任何異常網址。如果 Google 搜尋結果中沒有任何遭駭內容,請使用相同的搜尋字詞,透過其他搜尋引擎搜尋。以下是範例:
通常點選遭駭網頁的連結時,您會重新導向至其他網站,或是看到滿是亂碼的網頁。不過,系統也可能會顯示網頁不存在的訊息 (例如 404 錯誤)。請勿上當!駭客會試圖誘騙你,讓你以為網頁已消失或修復,但其實網頁仍遭入侵。他們會偽裝內容,如要檢查是否出現偽裝行為,請在網址檢查工具中輸入網站網址。這項工具可讓您查看隱藏的內容。
如果發現這些問題,表示您的網站很可能受到這類駭客攻擊。
修正遭駭問題
開始前,請先建立所有檔案的離線副本,以防日後需要還原。最好在開始清除程序前備份整個網站。方法是將伺服器上的所有檔案儲存到伺服器以外的位置,或是為特定內容管理系統 (CMS) 尋找最佳備份選項。如果使用內容管理系統 (CMS),請一併備份資料庫。
將新建立的帳戶從 Search Console 中移除
如果 Search Console 帳戶中新增了您不認識的擁有者,請盡快撤銷他們的存取權。您可以在Search Console 驗證頁面中,查看網站的已驗證使用者。按一下網站的「驗證詳細資料」,即可查看所有已驗證使用者。
如要從 Search Console 移除擁有者,請參閱「管理使用者、擁有者和權限」說明中心的「移除擁有者」一節。您必須移除相關聯的驗證權杖,通常是網站根目錄中的 HTML 檔案,或是模仿 HTML 檔案動態產生的 .htaccess 檔案。
如果網站上找不到 HTML 驗證權杖,請檢查 .htaccess 檔案中的重寫規則。重寫規則類似於:
RewriteEngine On
RewriteRule ^google(.*)\.html$ dir/file.php?google=$1 [L]
如要從 .htaccess 檔案中移除動態產生的驗證權杖,請按照下列步驟操作:
檢查 .htaccess 檔案 (2 個步驟)
除了使用 .htaccess 檔案動態產生驗證權杖,駭客也常使用 .htaccess 規則重新導向使用者,或建立亂碼垃圾內容網頁。除非您有自訂 .htaccess 規則,否則請考慮以全新副本取代 .htaccess。
步驟 1
找出網站上的 .htaccess 檔案。如果您不確定檔案位置,且使用 WordPress、Joomla 或 Drupal 等 CMS,請在搜尋引擎中搜尋「.htaccess file location」和您的 CMS 名稱。視網站而定,您可能會看到多個 .htaccess 檔案。請列出所有 .htaccess 檔案位置。
步驟 2
將所有 .htaccess 檔案替換為乾淨或預設版本的 .htaccess 檔案。您通常可以搜尋「預設 .htaccess 檔案」和 CMS 名稱,找到預設版本的 .htaccess 檔案。如果網站有多個 .htaccess 檔案,請找出每個檔案的乾淨版本並加以替換。
如果沒有預設 .htaccess,且您從未在網站上設定 .htaccess 檔案,那麼網站上的 .htaccess 檔案可能就是惡意檔案。離線儲存 .htaccess 檔案副本,並從網站中刪除 .htaccess 檔案。
移除所有惡意檔案和指令碼 (4 個步驟)
找出惡意檔案可能相當困難且耗時。檢查檔案時請務必仔細,如果尚未備份網站上的檔案,現在是備份的好時機。在 Google 搜尋中輸入「備份網站」和 CMS 名稱,即可找到備份網站的操作說明。
步驟 1
如果您使用內容管理系統,請重新安裝 CMS 預設發布版本中的所有核心 (預設) 檔案,以及您新增的任何項目 (例如主題、模組或外掛程式),確保這些檔案沒有遭駭內容。如要尋找重新安裝的操作說明,請在 Google 搜尋中輸入「重新安裝」和您的 CMS 名稱。如果您有任何外掛程式、模組、擴充功能或主題,也請務必重新安裝。
步驟 2
駭客通常會修改 Sitemap 或新增 Sitemap,以便更快為自己的網址建立索引。如果您先前有 Sitemap 檔案,請檢查檔案是否有可疑連結並移除。如果網站中有您不記得新增的 Sitemap 檔案,請檢查該檔案。如果檔案只包含垃圾內容網址,請移除檔案。
步驟 3
找出其他惡意或遭入侵的檔案。您可能已在先前的兩個步驟中移除所有惡意檔案,但最好還是完成接下來的幾個步驟,以免網站上還有其他遭入侵的檔案。
請勿認為自己需要開啟並檢查每個 PHP 檔案,以免感到不知所措。請先建立要調查的可疑 PHP 檔案清單。以下提供幾種判斷哪些 PHP 檔案可疑的方法:
- 如果您已重新載入 CMS 檔案,請只查看不屬於預設 CMS 檔案或資料夾的檔案。這應該會排除許多 PHP 檔案,只留下少數檔案供您查看。
- 依上次修改日期排序您網站上的檔案,找出在您首次發現網站遭到入侵後幾個月內修改的檔案。
- 依大小排序您網站上的檔案,找出所有特別大的檔案。
步驟 4
取得可疑 PHP 檔案清單後,請檢查這些檔案是否含有惡意內容。 如果您不熟悉 PHP,這個程序可能需要較長時間, 因此建議您先研讀一些 PHP 說明文件。 如果您完全不熟悉程式碼,建議您諮詢經驗豐富的開發人員。在此同時,您可以尋找一些基本模式, 藉此找出惡意檔案。
如果您使用 CMS,且不習慣直接編輯 PHP 檔案,請比較伺服器上的檔案與 CMS 隨附的預設檔案清單,以及任何外掛程式和主題。找出不屬於該資料夾的檔案,以及大於預設版本的檔案。
掃描您已識別的疑似檔案,尋找經過混淆處理的程式碼區塊。這可能看起來像是一組看似雜亂的字母和數字,通常前面會加上 PHP 函式組合,例如 base64_decode、rot13、eval、strrev 或 gzinflate。以下是程式碼區塊的範例。有時,所有程式碼會塞進一行長長的文字,看起來比實際還小。
$O_O0O_O0_0=urldecode("%6E1%7A%62%2F%6D%615%5C%76%740%6928%2D%70
%78%75%71%79%2A6%6C%72%6B%64%679%5F%65%68%63%73%77%6F4%2B%6637%6A");
$OO0_0OO0__=$O_O0O_O0_0{26}.$O_O0O_O0_0{6}.$O_O0O_O0_0{10}.$O_O0O_O0_0{30}
檢查網站是否乾淨
清除遭駭檔案後,請檢查是否已成功解決問題。還記得您先前發現的亂碼頁面嗎?再次使用 Google 模擬器工具,確認這些網址是否仍然存在。
如果「以 Google 檢索」工具的回應為「找不到」,表示網站狀況良好,可以繼續修正網站上的安全漏洞。
如何避免再次遭到入侵?
修正網站上的安全漏洞是修正網站的最後一個重要步驟。最近的研究發現,有 20% 的遭入侵網站會在一天內再次遭到入侵。因此,確切瞭解網站遭到入侵的方式實在很有幫助。請參閱這份指南,瞭解垃圾內容發布者入侵網站的常見方式,並開始調查。如果無法找出網站遭駭的原因,請按照這份檢查清單操作,減少網站的安全性漏洞。
- 定期掃描電腦:使用熱門防毒軟體檢查是否有病毒或安全漏洞。
- 定期變更密碼:定期變更所有網站帳戶 (例如主機服務供應商、FTP 和 CMS) 的密碼,可防止未經授權存取網站。請務必為每個帳戶設定專屬的高強度密碼。
- 使用雙重驗證 (2FA): 請考慮在需要登入的服務上啟用雙重驗證。這樣一來,即使駭客成功竊取密碼,也難以登入帳戶。
- 定期更新 CMS、外掛程式、擴充功能和模組: 希望您已完成這個步驟。許多網站遭到入侵,是因為執行過時的軟體。部分 CMS 支援自動更新功能。
- 考慮訂閱安全服務來監控網站: 許多服務都能以低廉的費用監控網站。建議您向他們註冊,確保網站安全無虞。
其他資源
如果還是無法修正網站問題,請參考下列資源。
這些工具會掃描網站,找出有問題的內容。 不過,除了 VirusTotal Google 提供的工具,Google 並未對其他工具提供支援。
這些工具只是其中一部分,可掃描網站是否有問題內容。請注意,這些掃描器無法保證能找出所有類型的問題內容。
Google 另外提供了以下資源,可能對您有所幫助: