跳轉到

十二、檢測目標授權範圍

這章在講什麼:Agent 只准連到哪些主機、這份範圍由誰決定、貴單位還要在自己那邊做哪些設定。

就像派駐在貴單位的檢測員身上帶著一份「准入名單」——名單上沒有的門,就算總部打電話來要他去開,他也不開。名單由貴單位自己的管理員寫,檢測員自己也會核對。

什麼時候看:第一次規劃檢測範圍時、資安審查時、要掃一台新主機卻被擋下時、升級到 Agent 1.4.0 之前。這章給 IT 主管、資安人員與平台管理員看。

結論先講:Agent 只會連到「設備清冊」登記過的主機,以及「授權掃描網段」裡的網段。 這份範圍在平台上檢查一次,Agent 連線前自己再檢查一次。貴單位要做的是:把該掃的主機登記好、把權限分給不同的人、在 Agent 主機上加一道出口防火牆。


12.1 為什麼要限制 Agent 能連哪裡

Agent 是一個很方便的檢測工具:它裝在貴單位內網、手上有平台交給它的維運帳號(SSH 金鑰、Windows 管理員密碼),而且貴單位的防火牆通常不擋它——流量來自貴單位自己信任的機器。

這些特點反過來看,就是攻擊者最想要的東西。 如果平台被入侵,攻擊者不必自己架工具,叫 Agent 去連他想連的地方就好。

所以 Agent 連到哪裡必須有邊界,而且這個邊界不能只靠平台把關——平台被打穿時,邊界也一起失效。現在的做法是兩道:

哪一道 在哪裡檢查 擋什麼
第一道:平台 存檔任務設定、按開始執行、按測試連線的當下 使用者選了清冊外的主機、填了授權範圍外的網段
第二道:Agent 自己 每次真的要連出去之前 就算平台被竄改、派下來的工作要連清冊外的主機,Agent 也拒絕

第二道用的名單,是 Agent 每次心跳(預設 5 分鐘一次)從平台拿到、存在自己身上的一份「准連清單」。平台被入侵之後,攻擊者要改這份清單得先改設備清冊或授權網段——這兩件事都需要另外的權限、會留紀錄、會寄信通知管理員(見 12.3)。

這套設計擋不住的情況:攻擊者同時拿到「改設備清冊」或「改授權網段」的權限。所以 12.3 的權限分開與 12.4 的出口防火牆不是可有可無的建議。


12.2 設備清冊與授權掃描網段各管什麼

平台上有兩個地方決定 Agent 能連哪裡,管的是不同種類的目標:

設備清冊 授權掃描網段
在平台哪裡 系統管理 → 設備管理 系統管理 → 授權掃描網段
管的是 要一台一台登入的主機 要整段探測的網段
用在哪些檢測工具 CINC Auditor、GCB、OpenSCAP 的掃描目標;Nmap 的「執行主機」(Agent 登入去跑 Nmap 的那台) Nmap 的「掃描目標」;OpenVAS 的掃描目標
畫面上怎麼選 從設備清單多選,不能手打 IP 填網段(例如 192.168.50.0/24),必須整段落在已授權的網段內
通常有幾筆 幾十到幾百台 一到五條

另外兩條規則:

  • 只收內網位址。 設備的 IP 必須是內網位址(10.x、172.16~31.x、192.168.x 等)。公網 IP 即使登記了也不會被選為掃描目標。
  • 主機名稱一律不收。 掃描目標只認 IP 與網段。主機名稱會隨 DNS 改變指向,等於讓別人決定 Agent 連去哪。

ZAP 與 SonarQube 不受這套範圍限制。 ZAP 掃的是網址、SonarQube 拉的是原始碼,兩者都不是「登入一台主機」,目標由各自的連線設定決定。

授權掃描網段的「待確認」

授權掃描網段頁有一顆按鈕「依 Agent 位址產生建議」:系統會看每台 Agent 所在的內網位址,推出它所在的網段(例如 Agent 在 192.168.50.20,就建議 192.168.50.0/24),列成黃色的「待確認」。

待確認的網段不算授權。 管理員核對過、按「確認授權」轉成綠色「已授權」之後才生效。這是刻意的:系統猜的網段可能比貴單位真正想掃的範圍大,也可能因為網路位址轉換而猜錯。


12.3 權限分開:三件事不要給同一個帳號

這套範圍有用的前提是:能派掃描的人,不能自己擴大能掃的範圍。 平台把這三件事拆成三顆不同的權限:

動作 對應的權限(角色權限管理頁) 誰該有
執行掃描(設定檢測任務、按開始執行、測試連線) 檢測工具管理的「修改」、任務的執行權限 日常執行檢測的 IT 人員、稽核人員
改設備清冊(新增、修改、刪除、匯入設備) 設備管理的「新增/修改/刪除」 負責資產盤點的人
改授權掃描網段 授權掃描網段的「修改」 只給租戶管理員(出廠設定就只配給管理員角色)

建議:三種權限不要落在同一個日常使用的帳號上。 尤其是「執行掃描」和「改授權網段」——同一個帳號兩者都有的話,帳號被盜時攻擊者可以先把網段擴大、再派掃描,兩道檢查都會放行。

改授權網段時平台會做兩件事:

  1. 留稽核紀錄——誰、什麼時候、把哪一段網段新增/修改/確認/刪除,改前改後的值都記下來。
  2. 寄信通知貴單位全部管理員——「誰把哪一段網段加進來了」。收到不認得的變更信,請立刻查。

「改設備清冊」的匯入與匯出也會留稽核紀錄(做了幾筆、什麼格式)。


12.4 Agent 主機的出口防火牆

前兩道檢查都在軟體裡。最後一道請放在作業系統的防火牆上:Agent 主機只准連出到授權範圍內的網段,以及平台本身。

這一道我們做不到——它是貴單位主機上的設定。但它是唯一一道「Agent 程式本身被換掉也擋得住」的防線,強烈建議設。

要放行的連出方向:

目的地 埠 用途
平台位址 平台的 https 埠(通常 443) 註冊、心跳、領工作(第九章 ①)
授權掃描網段 22(SSH)、5985/5986(WinRM),以及 Nmap、OpenVAS 要探測的埠 檢測
貴單位自建的 SonarQube/OpenVAS/ZAP、自有物件儲存 各自的服務埠 有用到時
DNS 伺服器 53 解析平台的網域名稱(平台用 IP 連就不需要)

連入方向不變:仍只需開放平台連入 8443(第九章 ②)。

Linux(iptables)範例

以下假設:平台在 203.0.113.10:443、授權網段是 192.168.50.0/24 與 10.20.0.0/16、DNS 在 192.168.1.53。請換成貴單位的實際值。

這幾步在做什麼:先放行已建立的連線與本機迴路,再逐條放行允許的目的地,最後把其餘連出全部擋掉。

# 已建立的連線(含平台連入 8443 的回應)與本機迴路一律放行
sudo iptables -A OUTPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A OUTPUT -o lo -j ACCEPT

# 平台
sudo iptables -A OUTPUT -d 203.0.113.10 -p tcp --dport 443 -j ACCEPT

# 授權掃描網段
sudo iptables -A OUTPUT -d 192.168.50.0/24 -j ACCEPT
sudo iptables -A OUTPUT -d 10.20.0.0/16 -j ACCEPT

# DNS
sudo iptables -A OUTPUT -d 192.168.1.53 -p udp --dport 53 -j ACCEPT
sudo iptables -A OUTPUT -d 192.168.1.53 -p tcp --dport 53 -j ACCEPT

# 其餘連出全部擋掉
sudo iptables -A OUTPUT -j REJECT

⚠️ Agent 跑在 Docker 容器裡,容器連出去的流量走的是 FORWARD 鏈與 Docker 自己的 DOCKER-USER 鏈,不經過上面的 OUTPUT。上面那組只管主機本身。要管到容器,同樣的規則要再寫一份到 DOCKER-USER(把 -A OUTPUT 換成 -I DOCKER-USER,並加上 -i docker0 或 Agent 所在的 bridge 介面限定;順序要倒過來寫,因為 -I 是插到最前面)。不確定怎麼寫時,請洽原廠協助,或在 Agent 主機前面的網路防火牆上設定同樣的規則——效果相同、也比較好管理。

設完先測再存:從 Agent 主機 curl -k https://<平台位址> 要通、curl https://example.com 要不通。確認無誤再把規則存成開機自動套用(iptables-save,或貴單位慣用的 firewalld/nftables 寫法)。設錯的典型症狀是 Agent 在平台上變成離線。

Windows 主機(受測端)

Agent 本身只裝在 Linux 上。Windows 主機的角色是被掃描的對象,要做的是反方向——只讓 Agent 主機連進來:

# 只允許 Agent 主機(192.168.50.20)連 WinRM;其他來源一律不准
New-NetFirewallRule -DisplayName "Guidant AI Agent WinRM" -Direction Inbound `
  -Protocol TCP -LocalPort 5985,5986 -RemoteAddress 192.168.50.20 -Action Allow

這步在做什麼:在受測的 Windows 主機上,把 WinRM 埠的連入限定為 Agent 主機的位址。若貴單位已有「允許任何來源連 5985/5986」的規則,請一併停用,否則這條限制不會生效。Linux 受測主機的 SSH 也比照辦理(sshd_config 的 AllowUsers <稽核帳號>@<Agent 主機 IP>,或主機防火牆只放行 Agent 主機連 22)。


12.5 設備清冊的匯入範本

設備清冊升格為「Agent 准連名單」之後,幾百台主機不必一台一台手打。設備管理頁有「匯入」與「匯出」:

匯入怎麼做:

  1. 設備管理 → 匯入 → 下載範本(Excel 檔)。
  2. 照下表填好,一列一台。
  3. 選擇檔案並驗證——系統逐列檢查,列出「可匯入/錯誤/重複」與每一列的原因,這一步不會寫進清冊。
  4. 看過結果沒問題,按「確認匯入」才真的寫入。

範本欄位:

欄位 必填 怎麼填
名稱 ✅ 設備名稱,排程與報告上顯示的就是它
IP ✅ 單一 IP(IPv4 或 IPv6)。不收網段——網段請到「授權掃描網段」登記
主機名稱 參考用,掃描不會拿它來連線
作業系統 例如 Ubuntu、Windows Server
OS 版本 例如 22.04、2019
設備類型 從下拉選:伺服器、工作站、筆記型電腦、網路設備、儲存設備、資安設備、行動裝置、印表機周邊、虛擬機、物聯網裝置、其他(填英文代碼也接受)
製造商
用途
描述

規則:

  • 支援 Excel(.xlsx)與 CSV(UTF-8)。檔案上限 5MB、一次最多 2,000 列。
  • IP 已在清冊內的列,預設跳過並標成「重複」。有「修改設備」權限的人可以勾選「改為更新既有設備」,用檔案內容覆蓋那一台。
  • 同一份檔案裡 IP 重複的列,只收第一列,後面的標成「重複」。
  • 匯出的檔案改完可以直接匯回去——欄位順序與範本相同(匯出多兩欄「建立者」「建立時間」,匯入時會忽略)。匯出可選 Excel 或 CSV,套用頁面上目前的搜尋與排序。

權限:下載範本與匯入需要「新增設備」權限;勾選「更新既有設備」另需「修改設備」權限;匯出需要「讀取設備」權限。


12.6 升級順序:先升平台,再升 Agent

Agent 1.4.0 起才有第二道檢查。 它要靠平台在心跳裡下發准連清單;平台還是舊版、沒有下發清單時,Agent 1.4.0 會拒絕所有掃描與測試連線——它沒有清單可以比對,寧可全部不連,也不要在沒有邊界的狀態下照單全收。

所以升級一定照這個順序:

① 先升級平台    →   ② 確認平台上設備清冊、授權網段都登記好了   →   ③ 再升級各台 Agent
   (見落地部署版手冊第五章,或由原廠升級雲端版)

順序弄反了會怎樣:

  • 平台 Agent 管理頁,這台 Agent 的版本欄會出現紅色「需升級雲端」。
  • 所有檢測任務失敗,Agent 記錄裡會寫「尚未收到雲端下發的授權目標清單」。
  • 資料不會壞。把平台升上去之後,下一次心跳(5 分鐘內)Agent 拿到清單就自動恢復,不必重裝或重新註冊。

平台升級後、Agent 升級前要做的事:

  • 升級前任務裡手打的 IP,平台升級時會自動搬進設備清冊(清冊已有同 IP 的設備就沿用,沒有就新建一台,名稱是 IP、用途寫「FR-129 遷移自任務」)。請到設備管理把這些自動建的設備改成看得懂的名稱。
  • 升級前任務裡手打的網段,如果不在任何授權網段內,平台升級時會自動建一筆「待確認」的授權網段。請到授權掃描網段頁逐筆核對、確認——不確認的話,那些任務存檔與執行都會被擋。

舊版 Agent(1.3.x 以前)連新版平台照常運作,只是沒有第二道檢查。新版平台的第一道檢查對舊版 Agent 一樣有效。


12.7 被擋下時怎麼辦

您看到的狀況 原因 怎麼處理
任務設定存檔時說「不在授權掃描網段內」 填的網段沒有整段落在已授權網段內(待確認的不算) 請管理員到授權掃描網段新增或確認那一段
任務設定存檔時說「必須從設備清冊挑選」 選的設備不存在、已被刪除,或 IP 不是內網位址 到設備管理登記或修正那台設備
按「開始執行」被擋 存檔之後設備被刪除,或網段被收回 同上,修正後重新存檔
任務結果顯示「TARGET_NOT_AUTHORIZED:目標未授權…(某個 IP)」 第二道(Agent 自己)擋下的。通常是剛登記、Agent 還沒拿到新清單 等下一次心跳(5 分鐘內)再跑一次。持續出現而平台上確實有登記時,請洽原廠——這代表派下來的目標與平台上的清冊不一致,需要查原因
Agent 管理頁版本欄紅色「需升級雲端」 Agent 比平台新 見 12.6,升級平台

要掃一台新主機:到設備管理登記它(或把它所在網段加進授權掃描網段並確認),下一次心跳後兩道檢查都會放行。