防駭與弱點
這個分類下的問題與解答。點標題可以展開答案,也可以點右上角進到單題頁面。
多數入侵不是針對你
這是最需要先建立的認知。很多業主認為「我們公司很小,沒有人會想駭我們」——但絕大多數的入侵是自動化程式做的,不是有人特別針對你。
攻擊程式會持續掃描網路上的網站,尋找已知的漏洞。它不在乎你是誰、規模多大,只在乎你有沒有那個漏洞。
這代表:小網站被入侵的機率不會比較低,甚至因為維護較少而更高。
入侵的目的是什麼
理解目的,才知道要防什麼、也才知道被入侵後該檢查什麼。
| 目的 | 做法 | 你會看到 |
|---|---|---|
| 搜尋引擎寄生 | 植入隱藏的連結或頁面,導向博弈、成人等網站 | 搜尋自己網站出現奇怪內容 |
| 散發垃圾郵件 | 利用你的主機大量寄信 | 網域被列入黑名單、信件寄不出去 |
| 作為跳板 | 從你的主機攻擊其他目標 | 主機商警告或停權 |
| 竊取資料 | 取得會員、訂單、表單資料 | 通常沒有明顯跡象 |
| 導流或詐騙 | 把訪客導向釣魚頁面 | 客戶反映被導到奇怪的網站 |
| 勒索 | 加密或刪除資料後索取贖金 | 網站無法運作 |
竊取資料最麻煩——因為它不需要破壞任何東西,通常要等到資料外流才會被發現。
六種主要的入侵途徑
一、未更新的系統與外掛
這是最大宗。 已公開的漏洞會被寫成自動化工具,掃到未更新的網站就直接利用。
特別危險的是:漏洞被公開修補之後,未更新的網站反而更危險——因為攻擊者知道該找什麼。
處理方式見更新與弱點管理。
二、帳號被盜用
密碼太弱、密碼在其他服務外洩後被拿來嘗試、或被釣魚訊息騙走。
這一類不需要任何技術漏洞——攻擊者是以合法身分登入的,因此特別難察覺。
防護方式見後台的資安。
三、來源不明的版型或外掛
可能夾帶後門程式,且沒有更新來源。安裝時就等於自己開了門。
四、檔案上傳的漏洞
如果網站允許上傳檔案而沒有適當限制,攻擊者可能上傳可執行的程式。
表單的防護見表單的防灌水與資安。
五、程式的輸入處理不當
網站接收使用者輸入時(搜尋框、表單、網址參數)若沒有適當處理,可能被注入惡意指令,讀取或竄改資料庫。
這一類屬於開發層面,發包時應確認廠商有處理。
六、共用主機的鄰居
虛擬主機上其他網站被入侵,可能波及同一台主機上的其他站台。
三個常見的錯誤認知
「我們沒有會員資料,不怕被駭」
入侵的目的不一定是資料。只要有一個能執行程式的主機,對攻擊者就有價值——可以拿來發垃圾信、當跳板、或植入導流連結。
「網站有 SSL 就安全了」
加密保護的是傳輸過程,不能防止網站本身被入侵。這是兩件不同的事,見SSL 是什麼。
「被駭再處理就好」
事後處理的成本遠高於預防。而且被入侵的損失不只是修復費用:
- 網站停擺期間的營業損失
- 搜尋引擎標記為危險網站,恢復需要時間
- 客戶的信任受損
- 若涉及個資外洩,還有法律責任
防護的四個層面
- 保持更新——系統、外掛、程式語言版本。投報率最高的一項
- 控制存取——帳號權限、密碼強度、兩步驟驗證
- 限制與監控——主機層設定、異常偵測
- 備份——所有防護都可能失效,這是最後一道防線
第一項是效益最明顯的。 多數入侵利用的是已知且已有修補的漏洞——只要有更新,就擋掉了大部分的自動化攻擊。
維護方案的價值就在這裡
更新、監控、備份都是持續性的工作,不是一次性的設定。
不買維護方案網站不會停止運作,但風險是:有漏洞時沒人更新、出事時沒有可用的備份、需要協助時要另外排隊。
是否需要,取決於網站對業務的重要程度。界線說明見保固與維護有什麼不同。
攻擊手法與防護技術持續演變,本文說明的是原則與流程。實際的技術設定與工具選擇,建議依網站架構與主機環境評估,必要時尋求專業協助。
更新是最有效的防護
如果只能做一件事,那就是保持更新。
理由很直接:多數自動化攻擊利用的是已經公開、也已經有修補的漏洞。只要更新了,那些攻擊就無效。
一個反直覺的重點
漏洞被公開修補之後,未更新的網站反而更危險。
因為修補資訊公開後,攻擊者也知道了「哪個版本有什麼問題、怎麼利用」,接著就會有自動化工具開始掃描。
換句話說:更新公告發布的那一刻,就是風險開始升高的時候。 拖越久越危險。
要更新的四個層面
| 層面 | 內容 | 誰負責 |
|---|---|---|
| 網站系統核心 | 網站程式本身 | 廠商或維護方 |
| 外掛與模組 | 額外安裝的功能 | 廠商或維護方 |
| 程式語言版本 | 執行環境 | 主機商或維護方 |
| 伺服器軟體 | 作業系統與服務 | 主機商 |
責任分屬不同對象,這是實務上最容易漏掉的地方——各方都以為是別人在負責。應該在合約或維護方案中界定清楚。
不更新的三種常見理由與回應
「更新會不會弄壞網站?」
確實有這個風險,這是合理的擔憂。但正確的處理是建立更新流程,不是不更新。
建議流程:
- 先備份
- 在測試環境更新並驗證
- 確認無誤後套用到正式環境
- 更新後檢查主要功能——首頁、表單、後台、金流
如果沒有測試環境,至少要在流量低的時段更新,並準備好還原方案。
「網站好好的,為什麼要動它?」
因為看起來正常不代表沒有漏洞。漏洞是被動存在的,它不會影響網站運作,只是在等被利用。
「更新要花錢」
相對於被入侵後的處理成本——修復、還原、搜尋引擎警告移除、客戶信任損失——定期更新的成本低得多。
版本終止支援的問題
每一種軟體都有生命週期。過了支援期限之後,即使發現新漏洞也不會再有修補。
常見的情況
- 網站系統的舊版本停止維護
- 程式語言的舊版本終止支援
- 某個外掛的作者停止更新
處理方式
- 提前規劃升級——不要等到停止支援才處理
- 移除不再維護的外掛,尋找替代方案
- 若系統本身已無官方支援,評估重建可能比持續修補更合理
重建的判斷見網站改版的流程。
外掛越少越好
每一個外掛都是一個可能的入侵點。而且外掛的品質參差不齊——有些長期沒有更新,有些作者已經不維護了。
建議的做法
- 定期盤點——列出目前安裝了什麼、各自的用途
- 移除不再使用的——很多網站有裝了但早就不用的功能
- 移除功能重複的
- 停用不等於安全——停用但未刪除的外掛,程式檔案仍在主機上,仍可能被利用
最後一項最容易被忽略。 不用的外掛應該刪除,不是停用。
建立一份軟體清冊
這是弱點管理的基礎——不知道自己裝了什麼,就無法知道有沒有風險。
| 欄位 | 內容 |
|---|---|
| 項目 | 系統、外掛、語言版本 |
| 目前版本 | |
| 用途 | 還需要嗎 |
| 負責更新 | 廠商、主機商、自己 |
| 最後檢查日 |
與網域、主機的到期日總表放在一起管理。
更新的節奏建議
- 安全性更新——盡快處理,這類通常修補已知的漏洞
- 一般功能更新——每季一次即可
- 大版本升級——需要規劃與測試,不要臨時進行
- 每半年盤點一次——確認清冊是最新的、有沒有即將終止支援的項目
發包與維護時該確認的事
- 系統與外掛的更新由誰負責?
- 程式語言版本升級時,網站需要調整嗎?費用怎麼算?
- 有沒有測試環境?
- 更新前會備份嗎?
- 使用了哪些第三方外掛?來源是什麼?
第二題特別重要——主機商淘汰舊版本時,網站可能需要調整才能運作,這筆工時的歸屬應該事先講清楚。
攻擊手法與防護技術持續演變,本文說明的是原則與流程。實際的技術設定與工具選擇,建議依網站架構與主機環境評估,必要時尋求專業協助。
把入口減到最少
防護的基本邏輯是:每一個對外開放的服務、每一個帳號、每一個可寫入的目錄,都是潛在的入口。
能關的就關,能限制的就限制。
一、存取管道的控制
檔案傳輸
- 使用加密的傳輸方式——傳統的未加密傳輸協定會讓帳號密碼在網路上明文傳送
- 不用的帳號要刪除——尤其是離職員工與已結束合作的廠商
- 限制連線來源——若可行,只允許特定位址連線
遠端管理
- 盡量使用金鑰而非密碼登入
- 不要開放最高權限帳號直接遠端登入
- 非必要不對外開放管理連接埠
資料庫
- 不要對外開放連線——除非確實需要
- 使用專屬帳號,只給必要的權限
- 不要用預設的帳號名稱
二、檔案權限
權限設定的原則是「剛好夠用」:
- 程式檔案不應該可被網站程式寫入——除非更新時需要
- 上傳目錄不應該可執行程式——這是很重要的一項,能阻止上傳的惡意檔案被執行
- 設定檔要限制讀取權限——裡面通常有資料庫密碼
- 不要為了「方便」而把權限全開
「上傳目錄不可執行」這一項,能擋掉相當比例的檔案上傳類攻擊,建議發包時直接列入需求。
三、隱藏不必要的資訊
攻擊的第一步通常是探測——確認你用什麼系統、什麼版本,再去找對應的漏洞。
- 不要對外顯示系統與版本資訊
- 錯誤訊息不要顯示技術細節——資料庫錯誤的原文可能洩漏結構
- 關閉目錄瀏覽——避免整個目錄的檔案清單被看見
- 備份檔不要放在網站可存取的位置
最後一項是很常見的疏忽。 把資料庫備份檔放在網站目錄下,等於公開了整份資料。
四、登入的保護
- 限制連續失敗次數——連續錯誤數次後暫時鎖定,能有效阻擋自動化嘗試
- 後台路徑不使用最常見的預設值——這不是真正的安全機制,但能減少自動化掃描
- 管理者開啟兩步驟驗證
- 考慮限制後台的連線來源
帳號層面的完整說明見後台帳號與權限怎麼規劃。
五、應用層防火牆
它會檢查進入網站的請求,攔截符合已知攻擊特徵的內容。
它能做什麼
- 阻擋常見的攻擊嘗試
- 在漏洞尚未修補前提供緩衝
- 過濾異常的請求量
它不能做什麼
- 不能取代更新——它是輔助,不是替代方案
- 可能誤擋正常的操作
- 對帳號被盜用這類「合法登入」無效
部分 CDN 服務含有這類功能,取捨見要不要用 Cloudflare 這類第三方 DNS 與 CDN。
六、備份:最後一道防線
所有防護都可能失效,備份是唯一能保證復原的機制。四個條件:
- 不存在同一台主機——主機被入侵時備份也會受影響
- 包含資料庫——只備份檔案還原出來的是空殼
- 保留多個時間點——入侵可能數週後才被發現,最新的備份可能已被污染
- 測試過能還原——沒有實際測試過的備份不算備份
第三項對防駭特別重要。 如果只保留一份最新備份,發現被入侵時可能已經無乾淨版本可用。
完整說明見操作紀錄、備份與資料救回。
七、共用主機的考量
虛擬主機上其他網站被入侵可能波及你。降低風險的方式:
- 選擇有做站台隔離的主機商
- 流量或重要性較高時,考慮獨立的環境
- 確認主機商的安全防護與回應機制
主機類型的選擇見主機規格與網站速度的關係。
依網站類型的建議程度
| 類型 | 建議做到 |
|---|---|
| 純展示型網站 | 保持更新、強密碼、定期備份 |
| 有後台與表單 | 加上登入保護、檔案權限、隱藏版本資訊 |
| 有會員或交易 | 再加上應用層防火牆、存取限制、監控 |
不必一次做到最完整。 先把更新、密碼、備份三件事做好,那已經擋掉大部分的風險。
攻擊手法與防護技術持續演變,本文說明的是原則與流程。實際的技術設定與工具選擇,建議依網站架構與主機環境評估,必要時尋求專業協助。
被入侵通常沒有明顯跡象
電影裡的駭客會留下訊息,實際上不會。攻擊者希望你越晚發現越好——這樣才能持續利用你的主機。
所以不能等「網站壞掉」才處理,必須主動檢查。
常見的徵兆
明顯的
- 網站出現不是自己放的內容或連結
- 首頁被替換
- 瀏覽器或搜尋結果顯示安全警告
- 網站突然無法開啟
不明顯的
- 搜尋自己的公司名稱,出現奇怪的標題或描述
- 後台出現不認識的帳號
- 網站突然變慢,或主機商通知資源用量異常
- 客戶反映收到來自你網域的可疑信件
- 信件開始被大量退回——可能網域已被列入黑名單
- 檔案的修改時間有不明變動
- 存取紀錄中有異常的請求
「搜尋自己的公司名稱」是最簡單有效的檢查,建議每月做一次。
對搜尋引擎隱藏的手法
這是最難發現的一種:惡意內容只對特定對象顯示。
常見的做法是:
- 只對從搜尋引擎進來的訪客顯示——你直接輸入網址看不到
- 只對特定地區或裝置顯示——例如只對手機使用者導向釣魚頁
- 只對搜尋引擎的爬蟲顯示——你看到正常內容,搜尋結果卻是垃圾內容
怎麼檢查
- 在搜尋引擎搜尋你的網址,看標題與描述是否正常
- 從搜尋結果點進去,而不是直接輸入網址
- 用手機測試,而不只是電腦
- 用 Search Console 的網址檢查,看搜尋引擎實際抓到什麼內容
第四項最可靠——它顯示的是搜尋引擎看到的版本,能揭露對爬蟲隱藏的內容。
定期檢查的項目
每月
- 搜尋公司名稱與網址,確認結果正常
- 檢查後台的帳號清單,有沒有不認識的
- 查看 Search Console 有沒有安全性問題通知
每季
- 檢視系統與外掛的版本狀態
- 確認備份確實在產生
- 檢查上傳目錄有沒有異常檔案
- 查看主機的資源用量趨勢
隨時留意
- 主機商的通知
- Search Console 的通知
- 客戶反映的異常
Search Console 的安全性通知
如果搜尋引擎偵測到網站有問題,會在這裡發出通知。這是最重要的預警管道之一。
但要注意:通知會寄到當初驗證時使用的信箱,而那個信箱常常是離職員工的,或根本沒人在看。
務必確認通知信箱是有人固定查看的職務型信箱。 設定方式見分析工具怎麼安裝與驗證。
監控機制
如果網站對業務重要,值得設定自動監控:
- 可用性監控——網站無法開啟時立即通知
- 檔案異動監控——程式檔案被修改時發出警示
- 惡意內容掃描——定期檢查是否有已知的惡意程式特徵
- 黑名單監控——網域或 IP 被列入黑名單時通知
這些通常包含在維護方案中。沒有監控的話,發現問題的管道通常是「客戶打電話來說網站怪怪的」——那時已經過了一段時間。
檢查主機端的線索
如果懷疑被入侵,可以請廠商或主機商協助查看:
- 檔案修改時間——近期有哪些檔案被異動,尤其是程式檔
- 存取紀錄——有沒有異常的請求模式
- 寄信紀錄——是否有大量非預期的寄信
- 排程工作——是否被加入不明的定時任務
- 資料庫——是否有不明的管理者帳號或內容
排程工作這一項容易被忽略——攻擊者常會加入定時執行的程式,即使檔案被清除也會重新植入。
發現異常時的第一步
- 不要急著刪除或修改——先保留現場,那是釐清入侵途徑的線索
- 立即聯繫廠商或維護方
- 記錄你觀察到的現象——時間、症狀、截圖
- 評估是否需要暫時關閉網站——若正在對訪客造成危害,關閉是合理的
後續的完整處理見網站被入侵後怎麼處理與復原。
攻擊手法與防護技術持續演變,本文說明的是原則與流程。實際的技術設定與工具選擇,建議依網站架構與主機環境評估,必要時尋求專業協助。
處理的三個目標
- 停止繼續受害
- 找出並堵住入侵途徑
- 清理並恢復正常
第二項最常被跳過,也是最容易重複被入侵的原因。 只清除症狀而沒有找出原因,通常幾天內就會再次發生。
完整的處理步驟
第一階段:止血
- 評估是否暫時關閉網站——若正在對訪客造成危害(導向惡意網站、散發惡意程式),關閉是負責任的做法
- 保留現況的完整備份——即使是被污染的狀態,那是後續調查的依據
- 聯繫廠商或維護方
- 通知主機商——他們可能有更多線索,也可能已經注意到異常
第二階段:切斷存取
- 更改所有相關密碼——後台、主機控制台、資料庫、檔案傳輸、網域註冊商
- 移除不認識的帳號——後台與主機端都要檢查
- 撤銷可能外洩的金鑰與存取權杖——包含串接的第三方服務
第七項容易被漏掉。 如果網站串接了金流、API 或其他服務,那些憑證也可能已經外洩。
第三階段:找出途徑
- 檢查檔案修改時間——定位異動的時間點與範圍
- 查看存取紀錄——找出攻擊的入口
- 確認系統與外掛版本——是否有已知的未修補漏洞
- 檢查排程工作——是否被植入定時執行的程式
第四階段:清理與復原
- 從乾淨的備份還原——時間點要在入侵發生之前
- 更新所有系統與外掛
- 堵住已確認的漏洞
- 重新設定權限
- 完整測試——前台、後台、表單、金流
第五階段:善後
- 在 Search Console 提出重新審查——若網站被標記為危險
- 確認網域是否被列入郵件黑名單,必要時申請除名
- 若有個資可能外洩,依規定通知當事人與主管機關
- 加強監控——後續數週密切觀察
為什麼「清乾淨」很困難
這是需要理解的現實:入侵之後,你很難百分之百確定所有的後門都被清除了。
原因包含:
- 後門可能藏在正常檔案中,只有幾行程式碼
- 可能植入了多個備援後門
- 可能修改了資料庫中的內容
- 可能建立了看似正常的管理帳號
- 排程工作可能會重新植入
所以「從乾淨備份還原」優於「逐一清除」
如果有入侵之前的完整備份,還原比清理可靠得多——但前提是能確定那份備份是乾淨的。
這也是為什麼備份要保留多個時間點——如果只有最新的一份,它可能已經包含後門了。
什麼情況該考慮重建
有時候重建比修復更合理:
| 狀況 | 建議 |
|---|---|
| 有乾淨備份且入侵途徑明確 | 還原並修補 |
| 沒有乾淨備份 | 考慮重建 |
| 系統已無官方支援 | 建議重建——漏洞永遠不會被修補 |
| 反覆被入侵 | 建議重建——代表有未找出的後門 |
| 原始碼被大幅改過又無文件 | 評估重建 |
「在有裂縫的地基上加蓋」是不划算的。 反覆修補的成本,往往超過一次重建。
搜尋引擎的警告怎麼移除
如果網站被標記為危險,處理流程:
- 確實清除所有惡意內容——沒清乾淨就申請,會被駁回
- 堵住漏洞
- 在 Search Console 提出重新審查,說明採取了哪些措施
- 等待審查——需要時間,且不保證立即通過
警告移除後,排名不會立刻恢復——這段期間流失的流量與信任需要時間重建。
這也是預防遠比事後處理划算的原因。
個資外洩的處理
如果會員、訂單或表單資料可能外洩:
- 釐清範圍——哪些資料、多少筆、什麼時間
- 通知當事人——說明外洩內容與建議的因應措施
- 依規定通報主管機關
- 保留處理紀錄
延遲通知通常會讓後果更嚴重。 個資處理的原則見會員資料與個資保護。
事後檢討
處理完之後,建議釐清:
- 入侵途徑是什麼? 未更新、密碼、外掛、還是其他
- 為什麼沒有及早發現? 監控與檢查機制的缺口
- 備份是否可用? 如果不可用,那是最需要改善的一項
- 責任歸屬——依合約與維護方案界定
責任的界定
這是實務上容易爭議的地方。建議在合約或維護方案中事先約定:
- 系統更新由誰負責
- 備份由誰執行、保留多久
- 被入侵時的協助範圍與費用
沒有事先約定,事發時容易變成「這算不算保固」的爭執。界線說明見保固與維護有什麼不同。
最實際的結論
被入侵的處理成本——修復工時、停擺損失、搜尋警告恢復、客戶信任——通常是預防成本的好幾倍。
而預防的核心只有三件事:保持更新、管好帳號、備份可用。
攻擊手法與防護技術持續演變,本文說明的是原則與流程。實際的技術設定與工具選擇,建議依網站架構與主機環境評估,必要時尋求專業協助。
準備好讓網站 開始幫你帶生意了嗎?
不論是要做新網站、救舊網站,還是只想先聊聊方向——先諮詢,不用先付錢,我們照實給你建議。
