主機安全資安健診維運

主機怪怪的?伺服器資安健診會檢查什麼

客戶打電話來的說法通常很像:這台機器最近怪怪的。CPU 沒跑什麼東西卻長期八九成,遠端連線變慢,或是某天登入時多出一個沒印象的帳號。這些現象可能來自硬體老化或設定沒調好,也可能代表有人已經在裡面挖礦、留了後門。伺服器資安健診的作用,是在你決定要不要重灌之前,先把這台主機的現況盤點清楚:跑了什麼、開了什麼、誰有權限、修補到哪一版。這篇說明健診檢查哪些面向、報告會給你什麼,以及它跟弱點掃描、防毒軟體的分工。

1. 哪些徵兆代表主機可能出問題

找上門的客戶,多半是先感覺到不對勁,才回頭查紀錄。下面這些徵兆單獨看都有無害的解釋:CPU 滿載可能是排程備份,連線變慢可能是頻寬被佔。但若同時出現兩三項,或它們在同一段時間開始,就值得排查。挖礦程式的特徵相對明顯,長時間高負載加上對外連到礦池;後門與遠端控制工具安靜得多,通常只在帳號、排程與開放埠口留下痕跡。

自我檢查

  • CPU 或 GPU 長時間維持高負載,但業務量沒變化,離峰時段也降不下來。
  • 對外連線異常:連到沒聽過的網域或 IP、固定間隔的心跳流量、高位埠有長時間連線。
  • 使用者清單多出沒印象的帳號,或既有帳號被加進 Administrators/sudo 群組。
  • 防毒或 EDR 被停用、即時防護被關、排除清單被加了奇怪的資料夾路徑。
  • 排程工作(Windows 工作排程器/Linux cron)多出你沒建立的項目,尤其是開機或每小時觸發的。
  • 系統整體變慢、磁碟空間莫名減少、事件日誌被清空或某段時間缺漏。

2. 健診實際會檢查哪些面向

健診的核心是盤點:把這台主機當下的狀態逐項列出來,再判斷合不合理。我用自行開發的工具,以管理員權限在主機上跑一輪,蒐集程序、修補狀態、帳號、已安裝軟體等資料。工具負責收集與比對,判讀由人來做,因為「這個程序該不該出現在這台機器上」要看它的業務用途。

自我檢查

  • 執行中的程序:名稱、執行檔完整路徑、啟動帳號、父程序,特別留意跑在暫存目錄或使用者資料夾的執行檔。
  • 系統與套件修補狀態:作業系統版本、已安裝與缺漏的更新、距離上次修補多久。
  • 本機帳號與權限:有哪些帳號、誰在管理員群組、密碼原則、長期閒置或離職未刪的帳號。
  • 已安裝軟體清單:版本過舊的元件、遠端控制工具、破解版軟體、來路不明的工具程式。
  • 開放服務與埠口:哪些服務在監聽、是否對外網開放,RDP 3389、SSH 22、資料庫 1433/3306 是重點。
  • 排程工作與開機自動啟動項目,包含服務、啟動資料夾與登錄檔的自動執行位置。
  • 日誌:登入成功與失敗紀錄、帳號建立與權限變更、服務反覆異常重啟。

3. 程序比對 VirusTotal 在做什麼?能與不能發現什麼

蒐集到程序清單後,我會取每支執行檔的雜湊值(hash)送 VirusTotal 比對。VirusTotal 匯集數十家防毒引擎的判定,一個檔案若被其中十幾家標記為惡意,訊號就很清楚。用 hash 比對的好處是只送出檔案指紋,不上傳檔案內容,避免公司資料外流。判讀時要看命中的引擎數量與命中名稱是否一致,單一引擎的通用型判定常是誤報。

自我檢查

  • 查得到的:已被收錄的挖礦程式、遠控木馬、常見後門,以及被濫用的正規工具(例如遠端連線軟體被拿來當跳板)。
  • 查不到的:針對你客製的惡意程式、剛出現尚未被收錄的樣本、只存在記憶體不落地的攻擊。
  • 誤報需要人判讀:自製或小眾程式常被一兩家引擎誤標,要看整體命中比例才準。
  • 檔案沒被標記,只代表「這個 hash 目前沒有引擎認為它惡意」,這不等於主機乾淨。
  • 遇到 VirusTotal 沒收錄的檔案,會回頭看路徑、數位簽章、建立時間與網路連線行為,用這些線索補判斷。

4. 健診、弱點掃描、防毒軟體差在哪

這三件事常被當成同一種服務詢價,它們看的東西與時間點都不同。防毒軟體是常駐的即時防線,比對特徵與行為,攔已知樣本,它看的是「檔案與行為」。弱點掃描以掃描器比對已知弱點資料庫,依 CVSS 排序告訴你哪些洞可能被利用,它看的是「版本與設定」。健診則是進到主機裡面盤點當下狀態,跑了什麼、誰有權限、開了什麼服務、排程有什麼,它看的是「現況與組態」。

自我檢查

  • 防毒/EDR:常駐、即時、自動攔截;對客製化與無檔案攻擊有盲點;被關掉時你可能不會察覺。
  • 弱點掃描:定期執行、外部視角、依 CVSS 分級;找的是已知弱點,不會告訴你主機裡面已經被植入什麼。
  • 資安健診:單次、內部視角、以管理員權限盤點;能看到帳號、排程、自動啟動項目這些掃描器看不到的狀態,但不提供即時攔截。
  • 三者互補:健診回答「現在的組態有什麼問題」,掃描追蹤「已知弱點修了沒」,防毒負責日常攔截。
  • 三者都不等於事件調查鑑識。若要確認入侵時間軸與影響範圍,那是更深、更貴的另一種工作。

5. 報告會給你什麼:風險分級與加固建議

健診結束後交付一份報告,內容是盤點結果加上加固建議,每一項標註風險等級與判斷依據。分級的用意在於幫你排順序,中小企業的 IT 人力有限,一次修二十項不現實。高風險項目通常是可直接從外部利用的,例如 RDP 對整個網際網路開放、多年沒修補的作業系統、來路不明的管理員帳號。

自我檢查

  • 每一項發現:現況描述、風險分級(高/中/低)、可能造成的影響、建議處理方式。
  • 可疑程序清單與 VirusTotal 比對結果,附判讀說明,不會只丟一個分數給你。
  • 帳號盤點表:哪些建議停用、哪些權限過高、哪些長期沒登入。
  • 開放服務與埠口清單,標出建議關閉、改走 VPN 或限制來源 IP 的項目。
  • 修補落差:距離最新版差多久、哪些更新該優先安裝。
  • 建議依可行性分組,區分「今天就能改」與「需要停機或調整架構」的項目。

6. 需要提供什麼?會不會影響營運?

健診需要管理員權限(Windows 的本機系統管理員、Linux 的 root 或 sudo),因為要讀取程序清單、帳號資料與系統設定。執行過程只做讀取與盤點,不改設定、不刪檔案、不重啟服務。工具跑一輪通常在幾分鐘到十幾分鐘之間,視軟體數量而定,對效能的影響接近一般系統盤點指令。主機負載本來就吃緊的話,可以約離峰或夜間執行。

自我檢查

  • 需要提供:管理員帳號(事後可停用或改密碼)、遠端連線方式或到場時段、主機用途說明。
  • 執行方式:可遠端(RDP/SSH/VPN)或到場,依你的網路政策決定。
  • 非破壞性:僅讀取與盤點,修補與加固等你們評估後再另行安排時程。
  • 生產主機建議照例先做一次快照或備份,當作標準作業程序。
  • 計價依台計算,每台 $2,000,主機與伺服器皆適用;台數較多可以排在同一次進行。

7. 多久做一次比較合理

健診是一次性的盤點,反映執行當下的狀態,隔幾個月裝了新軟體、開了新服務,狀態就變了。合理的節奏是一年一到兩次,先從關鍵主機做起,例如檔案伺服器、ERP、對外提供服務的機器。除了固定頻率,有幾個時機值得插隊安排。

自我檢查

  • 新機器上線,或從前一個廠商手上接管既有主機時,先做一次建立基準。
  • 出現前面提到的徵兆(長時間高負載、不明帳號、防毒被關)時,盡快排查。
  • 人員異動後,確認離職者的帳號、遠端存取與共用密碼都清乾淨。
  • 系統大幅變更之後:升版、搬遷機房、新開對外服務。
  • 把修補與帳號盤點納入例行維運,健診就退回到驗收的角色,不需要每季重做。

伺服器資安健診交給你的,是一份清楚的現況清單和一組排好順序的加固建議,讓「主機怪怪的」這種模糊感覺變成可以逐項處理的工作。它無法保證找出每一支惡意程式,客製化或不落地的攻擊仍可能躲過盤點與 VirusTotal 比對。若盤點結果顯示已經被入侵,需要的是事件調查與鑑識,我會據實告訴你,並協助評估後續怎麼走。

常見問題

主機 CPU 一直滿載,一定是中挖礦程式嗎?
不一定。備份排程、資料庫索引重建、記憶體不足導致的持續換頁、失控的應用程式,都會造成長時間高負載。判斷方式是看哪個程序在吃 CPU、它的執行檔放在什麼路徑、離峰時段會不會降下來、有沒有對外連到不熟悉的位址。健診會把這幾項一起列出來,讓你有依據判斷,而非憑感覺重灌。
做完伺服器資安健診,可以保證主機沒有惡意程式嗎?
不能。健診是盤點與加固建議,涵蓋執行中的程序、帳號權限、排程工作、開放埠口與修補狀態,並用 VirusTotal 比對程序的 hash。客製化的惡意程式、尚未被收錄的新樣本、只存在記憶體的攻擊,都可能不會被標記出來。健診能縮小盲區、把明顯的風險攤開來,無法宣稱把主機清空。
健診會不會影響營運?需要停機嗎?
不需要停機。過程是以管理員權限讀取系統資訊,不變更設定、不刪除檔案、不重啟服務,一台通常幾分鐘到十幾分鐘。主機負載吃緊的話可以約離峰或夜間執行。後續的修補與加固由你們決定時程,我不會在健診當下逕行修改設定。

延伸閱讀