在Google搜尋自己公司網站,若被標示為「不安全網站」,就代表網站被駭了。接下來照著以下的9個步驟,就能快速修復網站,並且回報Google重新驗證,由黑名單上除名。不過,如果你是接獲使用者回報網站異常,或者防駭軟體掃描到問題發出警告,也能參考以下作法。

步驟1:檢查伺服器、連絡供應商

在許多情況下,除了網站檔案(HTML、多媒體檔案、資料庫)本身,也可能是底層的伺服器系統遭駭。所以網站管理者不能只檢查網站內容,而應全盤檢查底層伺服器。若網頁是放在主機代管商,則應盡快通知供應商,告知網站被駭情況,並請求協助處理。及早通知供應商除了能尋求因應網站被駭的可用資源,也有助於他們防範、檢查伺服器與系統上的潛在危機。

步驟2:將網站下線

即使網站已被駭,許多瀏覽者仍很可能會不慎進入網站。為了避免受駭範圍擴大,管理者必須暫停網頁運作,將網站暫時下線(Offline)。在接下來的處理程序中,基於測試需要,管理者須將網站暫時回復上線狀態,因此,管理者應在另一臺未被感染的伺服器放上「維修中」的頁面,或者回報「503 HTTP錯誤碼」給使用者,並在使用者登入原網址時,自動導向此公告頁,避免使用者因存取原來的網頁內容,而使得惡意程式趁機入侵使用者電腦,導致災難繼續擴大。

在將網站下線之後,管理者可以先檢查網站的使用者帳戶,記錄不明帳戶與登入日期,以利日後追蹤攻擊途徑,並刪除此帳戶以避免駭客繼續以此登入。此外,管理者也應修改網站上所有管理者的密碼,包括FTP、資料庫、系統管理日誌等。

步驟3:向Google驗證身分

接下來是使用Google提供的WebMaster工具來掃瞄垃圾郵件與惡意軟體,因此網站管理者必須向Google「驗明正身」,驗證自己的確是合法的網站管理員,而非駭客。

在驗證期間管理者必須讓網站暫時上線,因此務必確保已妥善架設好「維修中」網頁,同時刪除了可異常的管理帳戶,以免駭客在此階段再次入侵網站。

管理者可以在網站首頁上加入一個meta tag,以證明管理者有權限存取原始碼,或者上傳一個HTML檔案到伺服器上,來證明管理者擁有上傳檔案的權限。此外,也能藉由網域名稱供應商來驗證,要以此方法進行驗證,管理者必須有登入網域名稱供應商或者服務供應商的權限,並新增一個DNS記錄。

驗證成功後,Google將會視你為這個網站的擁有者,並允許你以WebMaster工具對這個網站進行分析操作。

而為了避免駭客已於事前登入WebMaster並新增了帳號並做出有利於日後攻擊的設定,管理者在首次進入WebMaster的首頁後,應先檢查是否有不明帳號。選取「Manage Site」,並點選「Add or Remove Users」,並在此選項中刪除其他未被授權的不明帳號。你也可以在刪除之前記下不明帳號的信箱位置,在日後採取法律行動時可作為證據。

步驟4:診斷被駭情境

由於網站被駭有不同情境,在這一步驟中,管理者要先確定是哪一種攻擊手法,才能決定處理方式。受駭情境可以略分為3種,分別是垃圾訊息(Spam)、網路釣魚(Phishing)以及惡意程式(Malware)。

從WebMaster中選取「Message」並查看訊息列表。若列表的網址後出現的是「Suspected Hacking」,就代表了駭客在網站植入了垃圾訊息,請進行「步驟5.1」。若出現的訊息是「Phishing Notification」,則代表駭客利用你的網站進行網路釣魚,同樣是進行「步驟5.1」。若出現的訊息是「Infected with Malware」,則代表駭客在網站上植入了惡意程式,請依照「步驟5.2」的方式進行處理。

步驟5.1:處理垃圾訊息

首先,建立一個文件檔,來記錄在這步驟中發現的問題。這些問題至少要包括每個損毀的檔案名稱、位置,以及受損的狀況。在之後的步驟將會用到這些記錄。

首先,管理者要實際檢查HTML檔內是否含有垃圾訊息。首先,從第4步驟WebMaster工具發現的「Suspected Hacking」的網址開始檢查,這些網頁就是含有垃圾訊息的網頁。但千萬要注意的是,切勿直接以瀏覽器開啟這些網頁,因為駭客可能已在垃圾訊息之外植入了惡意程式,而應以下列方法來安全地開啟被駭網頁。

1. 以Cache方式瀏覽網頁並進行檢查。假設要檢查的網頁是「http://www.example.com/page.html」,則在Google搜尋前加上cache:關鍵字,由於是庫存頁面,惡意程式無法執行,檢查時也無須將網站上線。除了在其中檢查垃圾訊息,也可以選取「純文字版」,更容易分辨垃圾訊息。

2. 使用WebMaster工具的「Fetch」指令來檢視頁面。在標記出有問題的網站後按下「Health」,並按下「Fetch as Google」。如果出現成功訊息,即可按下網頁連結並檢查其中是否含有垃圾訊息。

經由以上步驟得到網頁內容之後,即可開始找尋垃圾訊息。垃圾訊息通常包含了幾組特定關鍵字,如「cheap」、「free」、「casino」、「amateur」等。此外,也要留意詭異的不明程式碼段落,比如base_64等。例如「eval(base_64_decode("aisiYSlbYlaws…"))」這個字串,就很可能暗中藏匿了垃圾訊息。

此外,駭客可能只在特定時段或使用者用特定瀏覽器進入網頁時才顯示垃圾訊息,這時可以利用cURL和Wget來模擬各種瀏覽情境。

使管理者也可以在Google上用全站搜尋的「site:」語法,來找尋站內可能存在的垃圾訊息,例如「site:example.com (cheap|free|viagra|cialis|casino|amateur)」等常見惡意文字。

步驟5.2:處理惡意程式

首先,絕對要避免用瀏覽器來開啟網站,因為惡意程式通常是藉由瀏覽器的弱點來入侵網站的,打開一個已受感染的網頁,可能導致管理者電腦直接受駭,如帳密被竊,鍵盤指令被側錄等。此外,管理者也應該建立一個文件檔,來記錄在這步驟中發現的問題。這些問題至少要包括每個損毀的檔案名稱、位置,以及受損的狀況。這些紀錄將為之後的處理步驟提供依據。

在WebMaster工具列,找到「Health」項目,並選取「Malware」標籤,接下來把Malware清單上的URL網址以及相對應的惡意程式種類記錄下來,其中包括了4種主要攻擊方式:Server Configuration、SQL Injection、Error Template及Code Injection。以下逐一介紹這4種惡意程式的攻擊手段、與相應的處理方法。

1. Server Configuration:代表駭客藉由修改伺服器上的設定檔(configuration files),如Apache伺服器上的.htaccess和.httpd.conf檔案,將網頁瀏覽者重新導向至帶有惡意程式的網站。要修復Server Configuration的惡意攻擊,必需要詳盡檢查並修正這些設定檔中不明的重新導向連結。

2. SQL Injection:代表駭客在資料庫提供使用者查詢的欄位中,置入了惡意指令、程式碼來破壞、竊取資料庫內容。要修復這個問題,應先回復資料庫的乾淨備份,並加強查詢欄位的查詢限制,避免駭客使用如脫逸(escape)語法等狡猾手段來入侵資料庫。

3. Error Template:Error Template原指網頁回傳給使用者的錯誤訊息,駭客卻能藉此將使用者導向惡意頁面。在Apache伺服器上,Error Template會在.htaccess檔案中宣告,管理者可在檔案中搜尋「ErrorDocument」關鍵字,確定後面的連結是否導向不明網頁。

4. Code Injection:代表網頁的HTML檔遭到駭客修改,並置入了惡意程式碼。要修復此種情況,可比對現有網頁與備份的網頁檔,找到惡意程式碼的位置並加以移除。

必須注意的是,即使移除了以上數種惡意程式,也並未保證網站不會再被入侵。管理者應緊接著執行步驟7,找出弱點予以修復,並根除駭客再次由這些弱點入侵的可能。

步驟6:檢查檔案系統與存取權限

除了修改網頁,駭客也可能直接在檔案庫中新增一個完整的網頁,來負責在其他網頁顯示垃圾訊息、埋下惡意程式、或開啟後門,讓駭客能在日後持續入侵網站。因此管理者必須檢查是否有被駭客新增的不明網頁。

首先,如果管理者確定有一個乾淨而且是新版的的備份,可以藉由比對備份和目前的網站,看哪些不明的檔案被駭客新增。管理者可以輸入「$diff -qr 」來查看兩個檔案夾底下的檔案數目是否相同。必須特別注意除了HTML檔案外,資料庫記錄和設定檔都可能是駭客下手的目標,應詳細記下可疑的檔案位置和建立日期。

此外,也應檢查伺服器上的log記錄檔,特別是錯誤資訊,比如登入嘗試失敗、在系統下的指令(command)記錄,以及不明帳號等等。此外,也要詳細檢查如.htaccess和httpd.conf等用於重新導向網頁的檔案。駭客會利用這些檔案,在特定時間或特定瀏覽器上,將瀏覽者導向惡意程式或垃圾訊息頁面。

最後,應檢查資料夾與檔案的存取權限。管理者應避免開放過度的寫入權限,盡量避免「777」這種對寫入無限制的檔案權限。管理者應先檢查存取權限高於「755 (rwxr-xr-x)」的資料夾,並確認給予這些資料夾如此低權限的必要性,此外,管理者也應檢查存取權限高於「644 (rw-r--r--)」的檔案,有無遭到不明修改。

而在資料庫方面,也必須詳細檢查異常紀錄。管理者可以利用如phpMyAdmin這樣的工具來檢視查詢結果。

步驟7:找出弱點

駭客之所以得以入侵網站,並放入垃圾訊息或惡意程式,都是系統存在弱點所致。此處列出常見的弱點,管理者應檢查網站是否有下列情形,並予以修復,以避免駭客從未修補的弱點再次入侵。管理員可以手動逐項檢查,或以弱點掃描、或更進階的滲透測試來找出伺服器及網站上的弱點。常見的弱點包括:

1. 管理員電腦遭病毒感染:駭客可能在此電腦上安裝了間諜軟體,來竊聽管理者的鍵盤輸入資訊。管理者可先以數個不同的防毒軟體,執行病毒掃描,如果管理者曾經在不同電腦登入網站,則這些電腦都應執行掃瞄。此外,也應徹底掃描網頁伺服器和所有用於更新、修改此網站內容的電腦。

2. 密碼強度不夠:相對於其他入侵手段,駭客更容易經由破解密碼來入侵網站,而且藉由如此,駭客能夠直接存取伺服器。管理者的密碼設定,應採由數字和英文混合組成的強固式密碼。管理者也可以在伺服器記錄中,搜尋例如同時登入,或多次密碼嘗試錯誤的情況。記錄下這些事件發生的時間點,有助於追蹤駭客是從何時開始入侵,並藉此判斷從哪個時間點之前的備份是相對安全的。

3. 軟體未更新:應保持作業系統、應用程式的最新更新狀態,以免駭客利用軟體漏洞對網站進行攻擊。

4. Open Redirects:Open Redirects能讓瀏覽者從一個網頁導向另一個網頁或資源,比如影像或聲音檔等,但駭客也極容易藉由Open Redirect來將瀏覽者導向惡意頁面,允許Open Redirect操作的網站必須做特別檢查。

5. SQL Injection:指駭客能在資料庫提供使用者查詢的欄位中,置入惡意指令來破壞、竊取資料庫。如果管理者的網站有使用到資料庫,管理者必須檢查欄位查詢規則是否過於寬鬆,資料庫保護是否不夠嚴密。

步驟8:修復弱點、回復乾淨網站

找出弱點之後,應該立即修復,並以既有的備份回復乾淨的網站內容。這個步驟包含了6個子步驟,如下:

1. 假如駭客從你的網站竊取了使用者的機密資訊(如交易記錄、帳號密碼等),在恢復網站或刪除檔案之前,管理者必須先為之後的商業及法律行動做出準備,如備份必要檔案、並留下系統日誌、資料庫記錄等。

2. 如果在之前的步驟當中,駭客新增了可讓瀏覽者看見的網址,你可以立即將之從Google的搜尋結果中移除。管理者可以從WebMaster工具選取Remove URLs功能來完成此需求。但這一步並非必要,你可以直接刪除該網頁並回覆404狀態碼,一段時間之後Google就不會再將此網頁顯示在搜尋結果當中。特別注意如果駭客只修改部分網頁,千萬別以Remove URLs功能移除頁面,否則此頁面恢復正常運作時,也會被Google排除在搜尋結果外,讓瀏覽者再也無法找到這個頁面。

3. 如果有新增乾淨頁面到網站上,也可以利用WebMaster的Fetch as Google這個功能,讓它直接被編入Google搜尋索引中。同樣的,即使跳過此步驟,一段時間之後Google仍會將新網頁歸入索引。

4. 開始回復網站:這一步驟主要取決於網站管理者是否擁有最新備份,以及備份是否受感染。

如果網站擁有乾淨且最新的備份,則可直接將備份還原,安裝最新的軟體與作業系統更新,並移除伺服器上不再使用的應用程式。接著修正弱點,最後,則要修改伺服器上管理者的所有帳號及密碼。

如果網站擁有乾淨,但是較舊版本的備份,則必須先要確認這個備份是在網站被駭之前建立的。接下來要建立目前這個被駭網站的備份,以避免在後續步驟誤刪重要檔案或內容(包括資料庫和多媒體檔案)。

接下來,將舊版本的備份還原,移除伺服器上不再使用的應用程式並修正弱點,再以diff指令比對舊版備份與新版備份的檔案差別。找出差別之後,在舊版備份的基礎上,上傳已移除威脅的新版檔案。

而假如網站沒有任何備份,則應先建立兩份目前這個被駭網站的備份(備份A、備份B),包含圖片、音樂與資料庫等,備份B是為了留作復原失敗時的緊急情況使用。

接下來,根據步驟5所建立的清單,清理或移除備份A(而非目前伺服器)上受感染的檔案、修正弱點、修改伺服器上管理者的所有帳號密碼,包括FTP、資料庫等。以上步驟結束後,備份A應該要是乾淨的狀態,將備份A保留起來,並以此備份運行網站。

5. 移除不必要的應用程式:系統越簡單,越有利於日後維護。

6. 建立一個長期的網站安全維護計畫:其中包括建立定期的網站自動備份機制、定期軟體更新、並確保任何安裝至伺服器的軟體安全無虞,此外,網站管理者應建立足夠強度的密碼,並定時更換密碼。

步驟9:提交網站至Google審查

即使將網站復原了,如果沒有提交Google審查,Google仍會將此網站標示為不安全網站,並在使用者造訪時發出警告。因此網站修復後,管理者應盡快提出審查申請,恢復使用者的正常瀏覽。

而由於審查須耗時1天至數日,因此應再次確認以上8個步驟都已執行完成。再依據被駭的種類(垃圾訊息、惡意程式、網路釣魚)來進行不同的手續。

1. 垃圾訊息審查:在網址列輸入「www.google.com/WebMasters/tools/reconsideration」,並選取要驗證的網站,閱讀審查聲明並勾選同意後,按下要求重新審查,即可送出審查請求。垃圾訊息的審查需要較長時間,可能是數日以上,審查通過後,搜尋結果的警告標示就會移除。

2. 惡意程式審查:登入WebMaster,並選擇你已修復的網頁,在「Health」欄位下選取「Malware」,選擇「Request Review」,來提交網頁至Google的惡意程式掃瞄系統做審查。這個過程約需1天,審查結束後,Google會回覆審查結果至WebMaster,如果審查過關,使用者將不會在搜尋結果中看到警告訊息。

3. 網路釣魚審查:在「google.com/safebrowsing/report_error/」提交已清除釣魚攻擊的網址給Google審查。這個審查約要花費1天,如果審查過關,使用者將不會在搜尋結果中看到警告訊息。

網站成功復原

如果審查通過,代表網站被駭情形已經解除。網站將不再於Google搜尋結果中被標記為不安全網站了。但假如審查失敗,就必須從步驟4開始重新檢查各項步驟是否已確實完成。

Google提供的方法固然可解決基本的網站被駭問題,然而,駭客的攻擊手法日新月異,自動化攻擊工具也讓攻擊門檻大幅降低,企業除了採取此一緊急因應措施,平時亦應部署相關的防禦措施,例如入侵偵測系統,弱點掃瞄系統與日誌管理系統等防禦機制,才是網站防駭根本之道。


報名台灣唯一超規格資安盛會


熱門新聞

Advertisement