WordPress

弱點掃描和惡意軟體掃描不一樣,網站健檢該先做哪個?

後台一打開,某支外掛旁邊亮著「有新版本可以更新」的提示,大多數人看到就順手點下去,很少人停下來想這個提示背後在說什麼。其實那不只是「有新功能」這麼單純,它常常代表舊版本裡藏著一個已經被記錄下來、任何人都查得到的漏洞,而你的網站正好還沒補上。

這正是「弱點掃描」要處理的事:把網站上安裝的核心、外掛、主題版本抓出來,拿去跟一個持續更新的已知漏洞資料庫比對,找出「理論上有破綻、但還沒被人拿來實際攻擊」的軟體版本。它跟「惡意軟體掃描」是兩件不同的事,惡意軟體掃描是在檔案裡找已經被植入的可疑程式碼,代表網站可能已經中標;弱點掃描則是在事情發生之前,先把還沒鎖好的門找出來。很多整合型資安外掛其實兩種功能都做,搞不清楚自己開的是哪一個開關,很容易誤以為裝了防毒功能就等於做完了健檢。

先從弱點掃描實際在比對什麼講起,再一路拆到怎麼動手做、怎麼判斷輕重緩急。

弱點掃描找的是漏洞,惡意軟體掃描找的是入侵痕跡

Jetpack 的資安教學文章用一個很直接的比喻說明這兩種掃描,漏洞是網站程式碼裡一個脆弱的破口,惡意軟體則是攻擊者拿來鑽過這個破口的有害程式。把漏洞想成一把壞掉的門鎖,惡意軟體就是那個從沒鎖好的門走進來搞破壞的人。弱點掃描器要找的是「哪些鎖已經壞了」,好讓你在有人闖進來之前先修好;惡意軟體掃描器找的則是「有沒有人已經闖進來了」。

這個分工很重要,因為它們回答的是不同階段的問題。弱點掃描告訴你「這支外掛的這個版本,已經被公開記錄有安全問題」,這時候網站不一定出事,只是存在風險;惡意軟體掃描告訴你「檔案裡出現了不該有的程式碼」,這通常代表已經有人得逞。如果只裝了一種,又以為兩種都涵蓋到,等於留了一個盲區沒人看。美國國家標準暨技術研究院(NIST)在資安詞彙表裡對弱點掃描工具的定義也是同一套邏輯:一種用來辨識主機及其屬性、並找出對應弱點(包括已公開登記的漏洞編號)的工具或軟體。

弱點掃描找的是有已知漏洞的軟體版本,惡意軟體掃描找的是檔案裡已被植入的可疑程式碼
弱點掃描不是找已中標的程式碼,而是在事情發生前,先找出還沒鎖好的破口。

值得留意的是,不少市面上的資安外掛把這兩個功能包在同一套產品裡,介面看起來只有一個開關,但背後其實是兩套不同的偵測邏輯在跑。裝之前先弄清楚自己要的是哪一種,或者乾脆兩種都要,免得以為裝了「掃毒」外掛就等於做了完整的資安健檢。

外掛、主題是已知漏洞最集中的地方

WordPress 核心本身的更新頻率高,核心團隊與社群投入的維護資源也多,實際出問題的比例相對小。Jetpack 的文章就直接點出,跟主題與外掛比起來,WordPress 核心佔整體漏洞數量的比例非常低,這個落差正好說明了風險集中在哪裡。真正的破口幾乎都集中在外掛與主題,尤其是那些很久沒更新、甚至作者已經停止維護的項目。

這背後有一個容易被忽略的邏輯,漏洞一旦被公開列進資料庫,等於漏洞的細節已經攤在陽光下。WordPress.org 的網站強化文件說得很清楚,一旦某個漏洞被發現、也釋出了修補版本,要利用這個漏洞所需要的資訊幾乎必然已經進入公開領域,這讓還沒更新的舊版本變得更容易被鎖定攻擊,也是持續保持更新的核心理由之一。換句話說,漏洞公開的那一刻,等於把攻略書一併發給了所有想找目標的自動化攻擊工具,不需要駭客本人親自出馬,批次掃描的機器人就能把還在用舊版本的網站一個個挑出來。

「舊版本能跑就別動」是很多人維運網站時的直覺,尤其擔心更新會弄壞現有功能。但把這個心態擺在剛剛那個邏輯底下看,風險其實比想像中更高,你不更新,不是繼續停在「未知」的安全狀態,而是停在一個「已經被公開寫明白怎麼攻擊」的狀態。這也是為什麼弱點掃描要當成例行動作,而不是等網站出事才想起來要查。

從內建工具到專用外掛,把健檢動作實際走一遍

健檢不是裝一個外掛、按一次掃描鍵就結束,而是有先後順序的一連串動作。第一步用 WordPress 內建、不用額外安裝任何東西的工具,先抓一輪最基本的體質;接著才輪到專門比對已知漏洞資料庫的免費工具,做真正的弱點掃描;掃出結果之後,還要看懂嚴重程度才知道該多急著處理;最後依照有沒有更新可用來決定實際的處理方式,而不是看到警告字樣就急著把外掛整個刪掉。

WordPress 網站健檢四步驟:先用內建網站狀態工具,再用弱點掃描外掛比對已知漏洞資料庫,接著看懂 CVSS 嚴重程度,最後依更新決定處理方式
網站健檢照順序走一遍:內建工具抓體質、弱點掃描外掛比對資料庫、判斷嚴重程度、再決定處理方式。

後台內建的網站狀態工具,先做第一輪基本檢查

打開後台的「工具」選單,找到「網站狀態」,這個畫面分成兩個分頁:「網站狀態」列出網站目前的重大問題與建議改善項目,「網站狀態資訊」則是站台環境的技術總覽,包含 WordPress 版本、外掛清單、伺服器設定等細節。這個功能不是外掛,而是 WordPress 核心自帶的診斷工具,不用額外安裝就能用。

WordPress 後台內建的網站狀態工具,把重大問題與建議改進項目分別標上安全性、效能類型
後台「工具、網站狀態」是核心自帶、免安裝的診斷工具,會分頁列出重大問題與建議改進項目。

「網站狀態」分頁裡,有幾項重大問題會被明確標上「安全性」類型,值得優先看:PHP 版本過舊、已經不再接收安全性更新,有外掛正在等待更新、背景自動更新沒有正常運作,以及網站被設定成對外顯示除錯錯誤訊息(這可能連帶洩漏伺服器檔案路徑之類的敏感資訊)。其中「有外掛在等更新」這一項,直接對應到後面要抓的過時外掛,算是最基本、也最容易被忽略的一步。

要提醒的是,這一步的偵測邏輯跟真正的弱點掃描不一樣,它不會拿你的外掛版本去比對已知漏洞資料庫,嚴格來說還稱不上是弱點掃描,比較像是體檢報告裡的基本生理指標。但它完全免費、不用裝任何外掛就能先抓出最基本的體質問題,做為健檢的起手式相當划算。

弱點掃描外掛把已裝版本拿去比對已知漏洞資料庫

這一步才是真正的弱點掃描。這類工具的共同邏輯,是把網站上核心版本、每一個外掛版本、每一個主題版本抓出來,拿去跟一個持續更新的已知漏洞資料庫比對,一旦有版本命中就示警。以下三個免費可用、邏輯略有不同的選項,都不需要離開後台、也不用懂任何指令。

WPVulnerability 是完全免費、不需要申請 API 金鑰的選項,外掛頁面說明它整合的檢測範圍不只有核心、外掛、主題,還包括 PHP 版本以及 Apache、nginx、MySQL 這類伺服器軟體。它可以直接把檢測結果整合進前一節提到的「網站狀態」畫面裡顯示,也支援用指令列查詢,對熟悉指令的使用者算是加分。

Jetpack Protect 是 Automattic 出品的免費外掛,使用 WPScan 的漏洞資料庫做比對,介面是獨立的後台儀表板,產品定位同時涵蓋弱點掃描與惡意軟體掃描兩種功能,不過免費版做的是每日弱點掃描,自動惡意軟體掃描屬於付費升級功能,目前收錄的弱點資料庫規模已經來到數萬筆。它的優勢是介面直覺、跟 Jetpack 其他功能整合度高,適合本來就在用 Jetpack 系列外掛的網站。

Patchstack 的免費 Personal 方案同樣是把已裝版本拿去比對資料庫,外掛頁面說明免費版可以偵測、透過 email 通知、查看快照報告,對新發現的弱點提供最長四十八小時的提早示警,也能選擇只替有弱點的外掛開啟自動更新。要留意的是,FAQ 明確寫著免費版不含防火牆,主力放在弱點偵測與通知,真正能主動擋下攻擊的「虛擬修補」要另外付費加購。

如果想更進一步,直接掃描別人的網站或串進自動化流程,可以考慮 WPScan CLI,但門檻明顯高一截,它是用 Ruby 寫成的指令列工具,需要先裝好 Ruby 環境。免費方案每天只給二十五次 API 查詢額度,而 WPScan 的使用文件也提到,平均一個 WordPress 網站安裝二十二支外掛,單單掃一次核心版本加上每支外掛、每個主題各一次查詢,額度很容易一次掃描就用完,WPScan 估計免費額度大概只夠涵蓋一半左右的 WordPress 網站規模。這個選項比較適合技術背景較強、或需要批次掃描多個網站的人,一般網站主直接用前面三個外掛就夠。

嚴重程度分級決定了處理的優先順序

拿到掃描報告以後,重點不是有沒有紅字,而是紅字有多急。業界共通的做法是用 CVSS(Common Vulnerability Scoring System)分數來衡量嚴重程度,多數弱點掃描工具在回報結果時,都會標出這個分數或對應的質化等級。CVSS 的制定組織 FIRST.org 在 CVSS v3.1 規格文件裡,把分數換算成好懂的文字分級:

質化分級CVSS 分數區間
無0.0
低0.1–3.9
中4.0–6.9
高7.0–8.9
危急9.0–10.0

FIRST.org 對這套分級的定位講得很直接,CVSS 用來擷取一個弱點的主要特徵,產出一個反映其嚴重程度的數值分數,再把這個數值轉換成低、中、高、危急這類文字說法,幫助組織適當評估與排定弱點管理的優先順序。

實際判斷可以用一個簡單邏輯,分數落在高或危急、而且該外掛目前仍在啟用中,應該當下就處理;分數落在中或低、或掃到的是早就停用的外掛主題,排進本週待辦即可。同時要留意另一個線索,是否已經有證據顯示這個漏洞已經被實際拿來攻擊(業界稱為 exploited in the wild)。這種已經被實際攻擊的漏洞,即使分數不是最高,也應該優先處理,因為它已經從「理論風險」變成「正在被利用的風險」,跟分數高低是兩個獨立的判斷維度,兩者要一起看,不能只看其中一個。

CVSS 分數落在高或危急且外掛仍啟用時當下就處理,中低分或已停用的排本週待辦,已被實際攻擊的漏洞不論分數優先處理
用 CVSS 分數高低搭配外掛是否仍在啟用來排優先序,已被實際攻擊的漏洞則不論分數都要先處理。

處理順序看更新是否已經釋出,而非急著刪除外掛

掃描報告列出問題之後,實際能照做的判斷流程可以收斂成幾步。第一步先看有沒有新版本可以更新,大多數情況下開發者已經釋出修補版本,直接更新就能解決,這永遠是第一優先,也是最省事的處理方式。

如果該外掛已經被開發者放棄維護,wordpress.org 的外掛頁面通常會標示很久沒更新,甚至整支外掛已經被下架關閉,這種情況下已知漏洞不會再有人修補,繼續用下去等於留著一個永遠不會被補上的破口,這時候該做的是找功能相近的替代品,而不是留戀原本的設定繼續用。

若還沒有修補版本釋出、而這個功能又暫時拿不掉,免費工具能做的處理有限,可以考慮先停用該外掛降低暴露面,或限制後台登入的來源。前面提過的「虛擬修補」這類能直接擋下攻擊嘗試的功能,通常是付費服務才有,免費版大多只能提醒、無法自動攔截。處理完之後別急著結案,回頭再掃一次確認警示真的消失,收到通知代表偵測到問題,不代表問題已經解決,實際處理有沒有生效還是要靠複掃確認。

還有一個常被忽略、卻幾乎零成本的動作,WordPress 預設會在頁面原始碼的 generator 標籤裡直接寫出目前的版本號,等於幫攻擊者省下「這個網站是不是還在跑有已知漏洞的版本」這個偵察步驟。健檢的時候順手把這個版本資訊藏起來,也是一個成本很低、卻能降低被鎖定機率的小動作。

自動更新與通知設定讓健檢變成例行動作

手動掃一次,只能保證掃描那個當下是乾淨的,隔天冒出的新漏洞不會主動舉手告訴你。真正省力的做法,是把前面提到的工具設成自動幫你盯著,而不是每次都要自己記得點開後台掃描。

WordPress 核心本身從 3.7 版開始就內建自動更新功能,既有網站預設只涵蓋次要版本,也就是安全性更新,5.6 版之後的新安裝則連主要版本也預設自動更新;外掛與主題的自動更新則要自己在外掛列表與佈景主題畫面裡逐一開啟,並不會預設全開。如果「網站狀態」跳出背景更新沒有正常運作的警訊,代表連這一層最基本的自動防護都失效了,這種情況要優先排查,通常是主機環境或某個設定擋住了背景排程,而不是先急著檢查外掛版本。

前面提到的三個免費弱點掃描工具,也都有各自的通知機制可以設定,不必每天登入後台檢查。WPVulnerability 可以用指令把 email 通知的頻率設成每天或每週;Patchstack Personal 方案內建新弱點的提早示警,同樣透過 email 通知;Jetpack Protect 免費版則會在偵測到弱點時,在後台儀表板顯示提示,偵測到威脅時的即時 email 通知屬於付費升級功能。把這些通知管道設定好,健檢就從一件要記得排進行事曆的事,變成問題自己跳出來提醒你的例行機制。

免費工具的偵測範圍有限,站的規模夠大該加開專業健檢

這幾個免費工具做的都是「已裝版本」對照「已知漏洞資料庫」的比對,它們抓不到還沒被任何人發現、還沒被寫進資料庫的零時差漏洞,也抓不到權限設定太鬆、表單邏輯本身有破綻這類需要人工實際測試才看得出來的設定缺陷。換句話說,免費工具能幫你補上已經被記錄下來的已知風險,但沒辦法幫你找出全新、還沒被公開的問題。

免費弱點掃描工具抓得到已被記錄的已知漏洞,抓不到零時差漏洞與需人工實測的設定缺陷
免費工具補的不是全新未公開的問題,而是已經被記錄下來的已知風險。

免費額度也有現實限制。前面提過 WPScan CLI 每天只給二十五次免費 API 查詢,一個網站平均安裝二十二支外掛,額度很容易一次掃描就用完。這類限制提醒使用者,免費工具比較適合當成日常監控的第一道防線,而不是唯一的資安投入。

如果掃描結果顯示網站已經被植入惡意程式,那已經超出本篇談的弱點掃描範圍,而是入侵後的事件應變,處理方式跟單純的漏洞修補完全不同,需要先隔離、清查、再重建,而不是繼續掃弱點報告。美國網路安全暨基礎設施安全局(CISA)在弱點掃描服務的說明文件裡,把這項服務定位成:持續評估對外可及資產的健康狀態,檢查已知弱點、脆弱的設定或設定錯誤,以及不夠理想的安全實務,這套服務處理的同樣是「已知風險」的範疇,跟入侵後的鑑識與應變是不同工作。

如果網站規模夠大,或是承載較多個資的類型,像是有會員系統或處理金流的電商站,除了免費 DIY 健檢之外,台灣也有政府管道可以多一層保障。數位發展部資通安全署在二零二六年三月三十一日發布的新聞稿提到,針對中小企業提供的資安協助裡,包含由大專院校學生組成的「資安健檢團」投入實地服務,經過扎實訓練後實際到場協助檢視;同時公布了適用中小企業的基本資安防護指引與自我檢核表,內容涵蓋帳號管理、設備管理與資料備份的具體建議,例如啟用生物特徵二階段驗證,以及落實資料保留三份、儲存於兩種媒介、一份異地存放的三二一備份原則。把這類政府資源當成免費 DIY 健檢之外多一層的選項,對規模較大或風險較高的網站來說是值得評估的方向。

弱點掃描本身不難,難的是把它變成習慣。裝一次工具、掃一次報告,只能解決當下這一批問題,真正讓網站長期安全的,是把更新、掃描、通知這三件事串成一個自己會運轉的流程,而不是等到哪天出事,才想起上一次檢查已經是很久以前的事了。

常見問答

本區問答由 AI 依文章內容自動整理,僅供快速參考,正式內容仍以全文為準。

弱點掃描和惡意軟體掃描差在哪?

弱點掃描是把網站核心、外掛、主題的版本拿去比對已知漏洞資料庫,在出事前找出還沒補上的破口;惡意軟體掃描則是在檔案裡找已經被植入的可疑程式碼,通常代表網站可能已經中標。

WordPress 網站狀態工具算弱點掃描嗎?

WordPress 內建的「網站狀態」嚴格來說不算弱點掃描,因為它不會拿外掛版本去比對已知漏洞資料庫。它比較像基本體檢,能免費抓出 PHP 版本過舊、外掛等待更新這類問題,適合當健檢的起手式。

有哪些免費的 WordPress 弱點掃描外掛?

免費的 WordPress 弱點掃描外掛有 WPVulnerability、Jetpack Protect 與 Patchstack 免費方案,都是把已裝版本拿去比對已知漏洞資料庫。Patchstack 免費版不含防火牆,能直接擋下攻擊的虛擬修補要另外付費加購。

弱點掃描結果要怎麼排處理順序?

弱點掃描結果可依 CVSS 分級判斷,分數落在高或危急、且外掛仍在啟用中,應該當下處理;中或低、或早已停用的外掛主題,排進本週待辦即可。已被實際拿來攻擊的漏洞,即使分數不是最高也要優先處理。

掃出有漏洞的外掛要馬上刪除嗎?

掃出有漏洞的外掛不必急著刪除,先看有沒有新版本,直接更新通常就能解決。外掛已被放棄維護才改找替代品;修補版本還沒釋出時,可先停用該外掛降低暴露面,處理完再複掃確認警示消失。

資料來源
  1. How to Scan a WordPress Site for Vulnerabilities (3-Step Guide) — Jetpack
  2. vulnerability scanner - Glossary | CSRC — NIST
  3. Hardening WordPress — WordPress.org
  4. Site Health screen — WordPress.org
  5. Upgrading WordPress — WordPress.org
  6. WPVulnerability — WPVulnerability
  7. WPVulnerability: WordPress Vulnerability Database API — WPVulnerability
  8. Jetpack Protect – WordPress plugin — Jetpack Protect
  9. Patchstack – WordPress & Plugins Security — Patchstack
  10. WPScan User Documentation — WPScan
  11. Common Vulnerability Scoring System v3.1: Specification Document — FIRST.org
  12. Cyber Assessment Fact Sheet: Vulnerability Scanning — CISA
  13. 資安防護,政府相挺:資安署力挺中小企業資安升級 三大策略強化數位防護力 — 數位發展部資通安全署