iT邦幫忙

2025 iThome 鐵人賽

DAY 7
0
Security

從稽核發現到落實保護_會這麼做的不愧是勇者系列 第 7

Day 7:八大項 | 使用者弱點掃描

  • 分享至 

  • xImage
  •  

前言

前面相關稽核所使用的工具介紹已大致介紹完畢,接下來將切入有關於稽核的事項。

今天的內容聚焦於八大項的使用者電腦安全檢測-使用者電腦弱點掃描,幫我們對組織內電腦逐一檢查,看看作業系統、應用程式是否有已知漏洞,防毒是否正常運作,是否開放不該開的服務,甚至帳號權限是不是設太高。透過掃描工具,我們可以很快地盤點出潛在風險,並依照嚴重程度來排定修補順序。

今天會分享掃描的目的、怎麼做、通常會用到哪些工具,以及最後能產出什麼結果。讓大家更清楚,為什麼光靠安裝防毒軟體還不夠,定期的弱點掃描才是守住電腦安全的關鍵。


目標、範圍與掃描方式

目標:辨識組織內管理的使用者終端(桌機、筆電、授權開發機)上的已知弱點與錯誤設定,並提供可操作的優先修補建議與驗證方法,以降低終端成為入侵切入點的風險。

適用範圍:列入資產清單之所有組織端點,含 Windows、macOS、Linux 等作業系統,以及常用第三方應用程式。

弱點掃描方式

  1. 憑證式 (Credentialed / Authenticated Scan)
    掃描器受控授權帳號(通常為 read-only 帳號或 SSH key)連到目標主機,執行查詢命令或 API 呼叫,從內部直接讀取完整補丁清單、已安裝套件、註冊表、系統設定、事件日誌等資料,再與漏洞資料庫比對。

    適用情境:

    • 需要高準確度的漏洞與補丁資訊(合規稽核、內部安全強化)。
    • 想減少 false positive,或需取得 KB 編號直接自動化修補。
  2. 非憑證式(Non-credentialed / Unauthenticated Scan)
    掃描器從網路層、 port 與服務暴露面進行偵測(像是外部攻擊者的視角),利用 port 掃描、服務指紋、banner 掃描與已知的遠端漏洞檢測。

    適用情境:

    • 初次或大範圍掃描網段、外部攻擊面快速評估或在無法取得憑證時的替代方案。
  3. Agent(Agent-based / Continuous)
    在終端安裝小型軟體(agent),該 agent 會定期或即時蒐集系統資訊(補丁 patch、已安裝套件、異常行為、檔案指紋)並回傳中央平台,支援即時偵測、離線設備回報與長期趨勢分析。

    適用情境:

    • 大規模環境、需長期合規追蹤、含行動與遠端工作者、需要即時告警或行為檢測。

常用通道與 port

  • Windows:WinRM HTTPS 5986、WinRM HTTP 5985、WMI / RPC (135 + 動態 RPC 49152–65535)、SMB 445、RDP 3389、LDAP / Kerberos 389, 636, 88。
  • Linux:SSH 22、SNMP 161, 162、Syslog 514、Web Application 80, 443、MySQL 3306、PostgretSQL 5432。

稽核要點

  1. 作業系統是否存在未安裝之安全更新或重要修補。
  2. 已安裝之第三方軟體是否含高風險漏洞(含瀏覽器外掛、PDF 閱讀器、Office 套件等)。
  3. 本機或遠端服務是否暴露弱配置(例如 SMBv1、遠端桌面RDP無限制存取)。
  4. 端點偵測與回應EDR / 防毒AV 是否安裝且為最新版本,是否處於啟用狀態。
  5. 本機帳號的管理是否有過多管理員帳號或未紀錄的服務帳號。
  6. 未授權軟體或可疑執行檔之存在。
  7. 日誌或檔案(事件日誌、啟動項、排程任務)是否有異常跡象。
  8. 修補與配置管理流程是否能落實漏洞修復追蹤與驗證。

read-only 掃描帳號 (on Windows)

  1. 權限原則

    • 不加入 Administrators。
    • 加入 Event Log ReadersPerformance Monitor Users 等 read-only 群組。
    • 針對 WMI namespace 授予 Remote Enable 與 Execute Methods(僅讀)視需要配置。
    • 限制帳號與到期日。
  2. WinRM 與 WMI 的設定建議

    • 啟用 WinRM over HTTPS 並使用憑證綁定,避免明文 HTTP。
    • 若使用 RPC/WMI,限制動態 RPC 範圍,例如設定 port 範圍 50000–50100。
    • 防火牆只放行掃描器的 IP。
  3. 在 PowerShell 建立帳號

    # 建立AD帳號(AD 域環境,需有權限執行)
    New-ADUser -Name "scanner" -SamAccountName "scanner" -AccountPassword (ConvertTo-SecureString "ScannerPassword" -AsPlainText -Force) -Enabled $true -Path "OU=ServiceAccounts,DC=contoso,DC=local"
    # 加入 Event Log Readers 群組(在目標機器或以 GPO 下發)
    Add-LocalGroupMember -Group "Event Log Readers" -Member "CONTOSO\scan_readonly"
    # 設定帳號到期日,7天使用期限
    Set-ADUser -Identity "scan_readonly" -AccountExpirationDate (Get-Date).AddDays(7)
    
    1. New-ADUser (建立 AD 使用者)

      • -Name:後面接使用者顯示名稱。
      • -SamAccountName:登入帳號的名稱。
      • -AccountPassword:SecureString(安全字串),範例中用 ConvertTo-SecureString "ScannerPassword" -AsPlainText -Force 將明文轉 SecureString。
      • -Enabled:後面接 $true$false,表示帳號是否啟用。
      • -Path:後面接 LDAP 路徑(OU 路徑),例如 "OU=ServiceAccounts,DC=contoso,DC=local",決定帳號放在哪個 OU。
    2. Add-LocalGroupMember (加入本地群組)

      • -Group:群組名稱。
      • -Member:要加入的帳號。
    3. Set-ADUser (修改 AD 屬性)

      • -Identity:要修改的使用者。
      • -AccountExpirationDate:到期時間。

執行步驟

  1. 準備階段
    • 取得管理層授權。
    • 取得完整資產清單(Hostname、IP、OS、使用者、部門)。
    • 與 IT、業務協調掃描時段與例外清單,定義不可掃描或需在維護窗做的設備。
    • 決定掃描類型:非憑證(外向視角)與憑證(內視角)掃描,必要時部署 Agent。
  2. 非憑證快速掃描(先盤點)
    • 模擬未登入狀態或外部攻擊者的偵測。
    • 用 Nmap 做 port 與服務偵測,找出網路層的暴露。
    • 結果:哪些主機開啟了哪些服務、哪些可能被遠端利用。
  3. 憑證深度掃描
    • 使用 read-only 帳號進行深度檢測。
    • 使用 Agent 在大量終端或離線設備上提供持續掃描與事件回報。
    • 抓取作業系統的補丁 (patch) 清單、已安裝軟體版本、本機設定、事件日誌等。
    • 這步驟能減少假陽性,也能直接取得修補所需的 KB 編號或版本資訊。
  4. 手動驗證 (針對高風險)
    • 對高風險項目用 Sysinternals、PowerShell、事件檔確認是否真實可利用。
    • 將人工驗證的證據(截圖、指令輸出)附在報告上。
  5. 風險評估與定義優先順序
    • 結合 CVSS、是否有公開 exploit、以及資產重要性,定出 高風險 (P1) / 中風險 (P2) / 低風險 (P3)。
    • 修補期限(範例):
      • P1:3 個工作天內緩解、14 天內修補
      • P2:14 天內修補
      • P3:月度處理
  6. 修補與 re-scan 驗證
    • 修補後用相同設定 重新掃描re-scan,確認漏洞已修補並記錄驗證結果。

常用工具

  • 商用:Nessus、Qualys、Rapid7 InsightVM。
  • Agent / 持續型:Qualys agent、Tenable agent、Microsoft Defender for Endpoint。
  • Open Source:OpenVAS / Greenbone、Nmap、OSQuery、Sysinternals(Windows)。
  • 手動工具:PowerShell、wmic、eventvwr、Autoruns。

Tips: 若要長期管理端點安全,採用 Agent + 中央管理平台最為實用;若只是一次性的外部稽核,憑證掃描配合手動驗證即可。


報告產出

  1. 高階管理摘要(可視化圖表):高風險漏洞數、受影響關鍵資產、風險趨勢。
  2. 技術細項報告(每一漏洞):CVE 編號、CVSS、受影響主機、證據、修補步驟、建議時程。
  3. 可讀取的漏洞清單(CSV / Excel):便於匯入工單或補丁管理系統。
  4. 原始掃描檔(例如 Nessus XML):稽核證據保存用。

建議的 CSV 欄位

AssetID | Hostname | IP | OS | 漏洞標題 | CVE | CVSS | 優先等級 | 建議處置 | 預期完成日 | 修補狀態 | re-scan結果 

驗收檢查清單(Technical Checklist)

在進行使用者電腦弱點掃描時,工具執行只是「找出問題」的第一步,真正的價值在於把結果轉化為「可控、可驗證、可追蹤的安全流程」,讓弱點可以被證明、被改善與被稽核的安全證據。以下是完整的技術檢查要點:

  • 管理層書面授權包含掃描範圍與時間窗
    確保每一次掃描都有合法依據,避免未經授權的操作,並能在發生影響時追溯責任。
  • 已建立掃描用 read-only 帳號或部署 agent
    透過最小權限帳號或安全的 agent 收集資料,降低誤報並避免對生產系統產生不必要的風險。
  • 帳號權限符合最小權限原則且有到期設定
    防止憑證被長期濫用,確保帳號在專案結束後自動失效。
  • 憑證/密鑰透過 Vault 管理並有存取日誌
    避免明文密碼外洩,並能清楚記錄誰、何時取用憑證,滿足稽核需求。
  • 目標主機啟用必要通訊通道(WinRM/SSH)並限制來源 IP
    確保掃描器能正常連線,同時透過白名單降低攻擊面。
  • 掃描器設定文件(policy)已保存並納入稽核證據
    讓掃描結果能被重現,避免因 policy 變更造成無法比對。
  • 原始掃描輸出(XML/JSON)與 CSV 匯出已保存
    保存原始證據與可追蹤報表,便於後續派工、修補與審查。
  • 手動驗證證據對高風險 P1 項目已附檔並註記
    確保關鍵漏洞有經過人工確認,降低假陽性,並提供確實的修補依據。
  • re-scan 驗證已執行並比對結果
    修補完成後再度檢測,確認漏洞確實消失,並產生前後比對報告,形成閉環。

避免常見問題

  1. 使用最小權限做憑證掃描:不使用 admin 帳號;用 read-only 或受限管理帳號。並於掃描後停用該帳號。
  2. 掃描造成系統負荷或應用當機:先在測試機驗證 profile,於生產環境採分批或維護窗掃描,避免對生產系統造成不可預期影響。
  3. 把 false positive 當成待驗證項目,而不是直接關閉:先手動確認高風險項目。
  4. 搭配自動化補丁工具:掃描找出問題後,用自動化工具分批部署補丁,減少人力負擔。
  5. RPC/WMI 動態 port 未受控導致防火牆無法限制:限制 RPC port 範圍或優先使用 WinRM over HTTPS。
  6. 保存原始輸出(XML/CSV、截圖、指令輸出),以利後續稽核與追蹤。

結語

使用者電腦弱點掃描看起來像是資安人員的例行公事,但做得好能大幅降低被入侵的機率。重點不是掃描一次就完事,而是把掃描結果變成「可追蹤、可驗證、能持續改進」的流程。從盤點到憑證掃描、手動驗證到 re-scan,每一步都要有證據與負責人,這樣安全才會越來越牢靠。


上一篇
Day 6:實地稽核工具(3)
系列文
從稽核發現到落實保護_會這麼做的不愧是勇者7
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言