檢測工具使用指南
適用對象:負責設定檢測工具的系統管理者、規劃稽核任務的專案管理者,以及需要協助準備目標主機環境的 IT 管理人員。 本文用途:說明 Guidant AI 目前提供的檢測工具各能做什麼、貴公司需要事先準備什麼、以及從設定到取得稽核證據的完整操作流程。 不在本文範圍:稽核專案的建立與生命週期(請見《稽核生命週期與 Use Case 說明書》)、系統安裝部署(請見開發部署手冊)。
一、檢測工具在稽核流程中的位置
稽核最耗時的環節之一,是為每個控制項蒐集「我們確實有做到」的客觀證據。過去這些證據多半靠人工操作掃描工具、匯出報告、再手動上傳歸檔——工具跑一次、報告存一份,跟控制項的對應關係只存在承辦人腦中。
Guidant AI 的檢測工具功能把這條流程接進系統:設定一次連線資訊 → 在稽核任務上指定要用哪個工具與掃描範圍 → 執行後報告自動存進該任務的證據池。稽核員在查核時直接看到該控制項底下掛著哪一份掃描報告、什麼時候跑的、結果如何,不必再問「這份 PDF 是對應哪一條」。
整體位置如下:
合規框架(控制項)
└─ 稽核專案
└─ 評估對象(AO)
└─ 工作任務 ──── 任務類型選「檢測工具執行」
│
├─ 指定使用哪個檢測工具
├─ 填寫掃描參數(目標、範圍、模式)
│
└─ 執行 → 產出報告 → 自動存入該任務證據池
三種角色各自負責的部分:
| 角色 | 在檢測工具這件事上做什麼 | 在哪個畫面 |
|---|---|---|
| 系統管理者 | 填寫並維護各工具的連線資訊與稽核帳號、測試連線是否正常 | 系統管理 →「檢測工具管理」 |
| 專案管理者 | 在稽核任務上指定要用哪個工具、填寫掃描目標與範圍 | 專案規劃 → 任務配置 |
| 任務執行人員 | 觸發執行、查看執行紀錄、下載報告 | 我的任務 → 任務抽屜「執行紀錄」 |
| IT 管理人員(不一定是系統使用者) | 依本文「前提條件」準備目標主機環境、安裝必要程式、開放連線 | 不在系統內,屬環境準備工作 |
一個重要觀念:Agent 是誰? Guidant AI 的檢測動作不是由雲端主機直接連到貴公司的機器,而是由部署在貴公司內部網路的 Agent 執行。設定連線資訊時所填的位址與帳號,都必須是這台 Agent 連得到的——例如 ZAP 服務位址不能填
localhost,那指的是 Agent 自己而不是 ZAP 主機。若不確定 Agent 部署在哪台機器,請洽貴公司的系統部署負責人。
二、目前提供的檢測工具
本文說明的是本次新增的五款工具。系統另有 OpenVAS(網路弱點掃描)與 OpenSCAP(Linux 主機組態檢測)兩款先前已上線的工具,操作流程相同。
| 工具 | 用來查什麼 | 對應的常見控制項類型 | 連線方式 | 貴公司需要準備 |
|---|---|---|---|---|
| ZAP | 網站與網頁應用程式的弱點(注入、跨站腳本、安全標頭與組態不當等) | 網站安全檢測、應用程式弱點管理 | 由 Agent 連上貴公司自建的 ZAP 服務 | 自行安裝並常駐一套 ZAP 服務 |
| CINC Auditor | 主機作業系統的組態是否符合基準(Linux 與 Windows 皆可) | 系統組態強化、基準組態符合性 | Agent 以 SSH(Linux)或 WinRM(Windows)登入目標主機 | 目標主機開放連線並提供稽核帳號 |
| Nmap | 網路上實際開放的連接埠、服務與版本 | 開放服務盤點、關閉非必要服務、防火牆規則驗證 | Agent 以 SSH 登入「執行主機」,再由該主機掃描目標 | 一台已安裝 nmap 的執行主機 |
| GCB | 主機組態是否符合政府組態基準(TWGCB) | 公務機關資通設備組態基準符合性 | 同 CINC Auditor | 同 CINC Auditor |
| SonarQube | 原始碼中的安全弱點、缺陷與不良寫法(靜態分析,不執行程式) | 安全開發流程、程式碼安全檢測 | 由 Agent 連上貴公司自建的 SonarQube 服務 | 自行架設並常駐一套 SonarQube 服務 |
選擇建議:
- 要查的是網站(有網址、用瀏覽器開的) → ZAP
- 要查的是主機設定(作業系統層的設定值是否合規) → CINC Auditor;若貴公司受政府組態基準規範,改用 GCB
- 要查的是網路上開了哪些服務 → Nmap
- 要查的是原始碼(程式還沒跑起來,逐行檢查寫法) → SonarQube
CINC Auditor 與 GCB 的關係:兩者使用的是同一顆檢測引擎,差別只在「用哪一套檢測基準」。CINC Auditor 讓貴公司自行指定要套用的檢測內容;GCB 則專指政府組態基準這一套。設定方式與目標主機的準備工作完全相同。
三、共通操作流程
五款工具的操作步驟一致,只有填寫的欄位不同。各工具專屬的欄位與注意事項見第四章。
3.1 步驟一:填寫連線資訊
畫面:系統管理 →「檢測工具管理」 執行者:系統管理者 頻率:每個工具設定一次即可,日後帳號或位址異動時才需回來修改
- 在工具卡片上按「設定」(已設定過的工具顯示為「編輯」)。
- 依畫面欄位填入連線資訊。每個工具的欄位不同,畫面上會有說明文字。
- 按儲存。
開始填之前,建議先看「部署前提說明」。 每張工具卡片右上角的選單裡有「部署前提說明」,內含該工具的環境準備步驟與可直接複製的準備指令。指令依用途分段呈現,可逐段複製——例如 Linux 目標與 Windows 目標的準備腳本是兩套互斥的內容,複製時請只取用貴公司需要的那一段。
關於憑證分組(多組互斥憑證的工具)
CINC Auditor 與 GCB 支援兩種連線方式,設定畫面因此分成左右兩個獨立面板:
| 面板 | 什麼時候填 |
|---|---|
| Linux 目標(SSH) | 貴公司要掃 Linux 主機時填 |
| Windows 目標(WinRM) | 貴公司要掃 Windows 主機時填 |
兩組不需要都填。只掃 Linux 就填左邊、右邊整組留空即可,反之亦然;兩種主機都要掃才兩組都填。實際執行時要用哪一組,由稽核任務上選的「連線方式」決定。
關於密碼、私鑰這類機敏欄位
- 已儲存的機敏欄位在畫面上一律不回顯原值。
- 只想改其中一項時,只填想改的那一個欄位就好——沒有填值的機敏欄位會保留原本已儲存的內容,不會被清空。例如 CINC Auditor 同時存有 SSH 私鑰與 WinRM 密碼,只想更換 WinRM 密碼時,SSH 私鑰欄位留空即可,原本的私鑰仍然有效。
- 若要讓某工具的所有憑證作廢重填,請用工具卡片選單的「重置金鑰」。
3.2 步驟二:測試連線
畫面:系統管理 →「檢測工具管理」→ 工具卡片上的「測試連線」(已完成設定的工具才會出現)
測試連線會用已存檔的設定值,透過 Agent 實際連到目標端驗證,不會執行任何掃描、不會產生報告、也不會對目標送出檢測流量。建議每次修改設定後都跑一次。
依工具型態,測試連線會先問幾件事:
| 工具 | 測試前會先問什麼 | 原因 |
|---|---|---|
| ZAP / SonarQube | 不會問,直接測 | 連線資訊已完整存在設定裡 |
| CINC Auditor / GCB | ① 要測哪一組憑證(Linux 或 Windows)② 一台測試主機的位址 | 兩組憑證互斥,系統不會自行猜測要測哪一組;主機位址屬任務層資訊,不存在設定裡 |
| Nmap | 一台執行主機的位址 | 同上 |
為什麼要自己選憑證組別:兩組憑證都填了的情況下,若由系統自行挑一組來測,測過了也不代表另一組沒問題,反而會給出錯誤的安心感。因此改為由您明確指定,測哪一組就確實驗證那一組。
測試結果會分段告訴您問題出在哪一環——連不上(網路或連接埠)、連得上但帳密不對、帳密對但目標主機缺少必要程式、程式在但權限不足。請依訊息所指的環節排查,不要從頭全部重來。
3.3 步驟三:把工具綁到稽核任務上
畫面:專案規劃 → 任務配置 執行者:專案管理者
- 在評估對象底下新增或編輯工作任務。
- 任務類型選「檢測工具執行」。
- 在「檢測工具」下拉選單選定要用的工具。
- 選定後畫面會出現該工具的掃描參數欄位(每個工具不同,見第四章)。有預設值的欄位會自動帶入,可直接沿用或改寫。
- 選擇完成模式(掃描完成後任務是自動結案,還是仍需人工確認)。
- 儲存任務。
部分參數欄位提供下拉選項,同時也允許自行輸入。 例如「檢測 Profile 位置」的下拉列出系統已驗證可用的選項,若貴公司有自己的檢測內容,直接在欄位內輸入即可,不受下拉清單限制。
3.4 步驟四:執行檢測與取得證據
畫面:我的任務 → 點開任務抽屜 執行者:任務執行人員
- 檢測工具型任務的抽屜會有「開始執行」按鈕(執行過的顯示「重新執行」)。
- 按下後任務進入排隊,由 Agent 接手實際執行。抽屜下方的「執行紀錄」區塊會顯示本次執行的狀態。
- 執行完成後,該次紀錄會顯示結果摘要(例如通過與未通過的項目數、發現的問題數),並可下載報告。報告同時自動存入該任務的證據池,稽核員在查核時看得到。
SonarQube 的「上傳原始碼壓縮包」模式在這一步才提供檔案:任務設定頁沒有上傳欄位,發起執行時於抽屜的上傳區選檔(首次執行必須先上傳;之後可沿用同一包或更換新版)。詳見 §4.5。
掃描結束會發送通知。 掃描完成或失敗時,系統會通知該任務的指派人與所屬專案的管理者、覆核人——內容包含專案、控制項、任務、使用的工具、掃描設定、目標主機、起訖時間與結果狀態,成功時附報告檔名、失敗時附錯誤訊息。除 Email 外,若貴公司已在通知設定啟用 Discord 或 Telegram,會一併送達。收到失敗通知時,請點開任務抽屜的執行紀錄查看細節。
執行紀錄區塊的操作:
| 動作 | 說明 |
|---|---|
| 展開/收合 | 最新一筆在最上方;執行中或最近一次失敗的紀錄預設展開 |
| 取消 | 執行中的紀錄列上有取消按鈕,可中止該次執行 |
| 下載報告 | 一次執行若掃了多台主機,會產出多份報告,點選後可逐份下載 |
| 查看摘要 | 紀錄列的資訊圖示可查看該次執行的參數與結果概要 |
一次掃多台主機時的行為:CINC Auditor、GCB、Nmap 都支援一次填入多台主機(逗號分隔)。系統會逐台執行、逐台產出報告,其中一台失敗不會影響其餘各台,失敗的那台會單獨標示原因。
Nmap 的執行紀錄會分開顯示「執行主機」與「掃描目標」——這兩者是不同的機器,前者是跑 nmap 的那台,後者是被探測的位址。詳見 §4.3。
四、各工具說明
4.1 網頁弱點掃描(ZAP)
用途:對執行中的網站送出測試請求,找出注入、跨站腳本、安全標頭缺漏、Cookie 屬性不當、資訊洩漏等網頁層弱點。屬於動態測試——查的是網站實際跑起來的行為,不是原始碼。
適合用在:網站安全檢測、應用程式弱點管理類的控制項。
前提條件(貴公司需準備)
| 項目 | 說明 |
|---|---|
| 一套常駐的 ZAP 服務 | 由貴公司自行安裝並以背景服務模式常駐,建議版本 2.17.0 以上。本平台不代為安裝或啟動 |
| 服務位址與存取金鑰 | ZAP 服務需允許 Agent 主機連入,並設定一組存取金鑰 |
| 網路可達 | 防火牆需允許 Agent 主機連到 ZAP 服務的連接埠;此埠不需要對外網開放 |
| 掃描授權 | 主動掃描會對目標網站送出真實的攻擊測試流量,請務必先取得目標方授權 |
具體的安裝與啟動指令,請看工具卡片選單的「部署前提說明」。
設定欄位
| 欄位 | 填什麼 |
|---|---|
| ZAP 服務位址 | Agent 主機連得到的位址,例如
http://<ZAP 主機 IP>:8080。請勿填
localhost |
| API Key | ZAP 啟動時設定的那一組金鑰 |
任務參數
| 參數 | 說明 |
|---|---|
| 掃描目標網址 | 要掃描的網站起始網址 |
| 掃描模式 | 被動掃描(預設)/主動掃描/登入後主動掃描,三選一 |
| 登入頁網址、測試帳號、測試密碼、登入成功特徵字串 | 僅在選「登入後主動掃描」時才出現,未選則整組隱藏 |
| 逾時秒數 | 單次掃描的時間上限,預設 3600 秒 |
三種掃描模式的差別:
| 模式 | 做什麼 | 對目標的影響 | 什麼時候用 |
|---|---|---|---|
| 被動掃描 | 只爬取網站、觀察回應,不送出任何攻擊測試流量 | 最低 | 預設值。想先看看網站表層狀況、或不確定是否已取得授權時 |
| 主動掃描 | 在爬取之後另外送出攻擊測試請求 | 會產生真實測試流量 | 需要完整弱點檢測,且已取得授權 |
| 登入後主動掃描 | 先登入網站,再對登入後才看得到的頁面做主動掃描 | 同上,且會對登入後的功能操作 | 需要涵蓋登入後功能頁面時 |
⚠️ 重要限制:登入後掃描不支援單頁式應用(SPA)
請勿對單頁式應用使用「登入後主動掃描」。
單頁式應用(Single Page Application,常見於用 React、Vue、Angular 等技術建置的新式網站)的登入方式與傳統網站不同——畫面上沒有可供掃描工具操作的傳統登入表單,登入狀態的判斷方式也不一樣。ZAP 無法登入成功,會判定「尚未登入」而反覆重試。
後果不只是掃不完整:
- 重試累積到一定次數後會觸發 ZAP 本身的保護機制,ZAP 服務會自行停止。
- 掃描不會完成,也不會產出任何報告。
- 更需要留意的是,ZAP 服務由所有掃描任務共用——一旦被觸發停止,同一時間其他人正在進行的掃描也會一併中斷。
此限制僅影響「登入後主動掃描」這一種模式。 被動掃描與主動掃描不需要登入,對單頁式應用一樣可以正常執行、正常產出報告。
不確定貴公司的網站屬於哪一種時的判斷方法:先用被動掃描跑一次,檢查報告涵蓋的網址清單。若只列出首頁與 JS/CSS 等靜態檔案、沒有任何功能頁面的網址,多半就是單頁式應用。
單頁式應用的登入後掃描支援已列為後續開發項目。
報告與證據
報告以 HTML 格式存入證據池,用瀏覽器可直接開啟、也可列印。執行紀錄上另會顯示各嚴重程度的問題數量統計。
4.2 主機組態合規檢測(CINC Auditor)
用途:檢查主機作業系統的組態設定是否符合安全基準——例如密碼原則、服務啟用狀態、檔案權限、稽核紀錄設定等。逐項回報符合或不符合。
適合用在:系統組態強化、基準組態符合性類的控制項。Linux 與 Windows 主機皆可檢測。
前提條件(貴公司需準備)
檢測程式裝在 Agent 端,目標主機不需要安裝任何掃描程式。 目標端只需要開放連線並提供一組稽核帳號。
| 目標主機類型 | 連線方式 | 目標端需準備 |
|---|---|---|
| Linux | SSH | 一組稽核帳號(搭配私鑰或密碼)、開放 SSH 連線;多數檢測項目需要 sudo 提權才讀得到系統設定 |
| Windows | WinRM | 一組具本機管理員權限的帳號、啟用 WinRM 服務並對 Agent 主機開放對應連接埠 |
準備目標主機的具體指令(Linux 建帳號腳本、Windows 啟用 WinRM 的 PowerShell 指令),請看工具卡片選單的「部署前提說明」,可分段複製。
關於授權:本功能使用的是 Apache 2.0 授權的自由版本,已隨 Agent 提供,貴公司不需另外購買或安裝任何授權。請勿自行改用需要商業授權金鑰的版本。
設定欄位
設定畫面分成左右兩個面板,依貴公司要掃的主機類型填寫(只掃一種就只填一邊):
| Linux 目標(SSH)面板 | Windows 目標(WinRM)面板 |
|---|---|
| SSH 稽核帳號 | WinRM 稽核帳號(需管理員權限) |
| 認證方式(私鑰/密碼)+ 對應的私鑰或密碼欄位 | WinRM 密碼 |
| SSH 連接埠(預設 22) | WinRM 連接埠(HTTP 為 5985、HTTPS 為 5986) |
| 是否使用 sudo 提權(預設開啟) | 是否使用 HTTPS、是否允許自簽憑證 |
關於 sudo 提權:多數系統層檢測項目需要提權才讀得到設定檔,因此預設為開啟。若貴公司政策不允許免密碼提權,可以關閉,但需要權限的檢測項目會回報為「無法判定」而非通過。
任務參數
| 參數 | 說明 |
|---|---|
| 掃描目標 | 目標主機的 IP 或名稱,多台以逗號分隔。每台各產出一份報告,其中一台失敗不影響其餘台 |
| 連線方式 | SSH(Linux 目標)或 WinRM(Windows 目標)。決定實際使用哪一組憑證 |
| 檢測 Profile 位置 | 要套用哪一套檢測基準(見下方說明) |
| 逾時秒數 | 每台目標各自計時,不是所有目標的總時間。預設 3600 秒 |
一個任務只掃同一種連線方式的主機。 若貴公司同時有 Linux 與 Windows 主機要檢測,請分別建立兩個任務。
檢測 Profile 位置怎麼填
「Profile」指的是一套檢測規則的集合,定義了要檢查哪些項目、什麼樣算通過。
首選:從下拉選單選用「掃描設定檔庫」內的項目。 下拉列出的是系統管理者在「掃描設定檔管理」頁維護的設定檔(平台提供的公用版+貴公司自行上傳的版本),選了就能用、執行時由系統自動取得內容,不需要預先下載或部署。貴公司自行撰寫或採購的檢測內容,請先請管理者上傳入庫(完整說明見《掃描設定檔管理使用指南》)——上傳入庫後封閉網路(Agent 無法連外)環境也能使用。
欄位同時保留自行輸入能力,臨時要用不在庫內的來源時可直接填:
| 來源 | 填法 | 適用情況 |
|---|---|---|
| 網址 | 檢測內容的下載網址(建議使用壓縮檔形式的網址) | 臨時取用公開位置的內容;Agent 需能連到該網址 |
| Agent 主機上的本機路徑 | 檢測內容存放在 Agent 主機上的目錄或壓縮檔路徑 | 曾以人工方式部署內容到 Agent 主機的既有環境 |
| Profile 名稱 | 公開檢測內容庫(Supermarket)上的名稱 | 使用該平台既有的檢測內容時 |
檢測內容放在私有版本庫(需帳號權杖才能下載)時,請改走「打包上傳到掃描設定檔庫」——欄位不支援填寫權杖,也不應把權杖寫進網址。
⚠️ Windows 檢測結果正確性的注意事項
Windows 組態檢測需讀取登錄檔的政策區,該區域需管理員權限才能完整讀取,權限不足時對應項目會回報為失敗或無法判定。
更需要留意的是:政策區以外位置的設定,在群組原則套用前不會被清空,會殘留舊值。檢測規則若讀到殘留的舊值,會把「政策其實沒有生效」誤判為通過——在稽核情境這屬於嚴重問題。因此檢測規則一律應以政策區的值為準;貴公司自行提供檢測內容時,請確認判定依據落在政策區底下。
報告與證據
報告以 HTML 格式存入證據池,內含每個檢測項目的編號、標題、嚴重程度與通過與否,瀏覽器可直接開啟且不需連網(適合長期保存後再查閱)。執行紀錄上會顯示通過/未通過/無法判定的項目數量統計。
4.3 網路埠與服務探測(Nmap)
用途:對指定的位址或網段送出探測封包,盤點實際開放的連接埠、執行中的服務與版本。用於驗證「對外暴露的服務是否僅限必要範圍」「防火牆規則與實際開放狀態是否一致」。
適合用在:開放服務盤點、關閉非必要服務、防火牆規則驗證類的控制項。
⚠️ 先分清楚兩種主機
這是本工具最容易搞混的地方——「執行主機」與「掃描目標」是兩個不同的對象:
| 角色 | 是什麼 | 需要準備什麼 |
|---|---|---|
| 執行主機 | Agent 登入進去、實際跑 nmap 的那台機器 | 安裝 nmap、建立稽核帳號、開放 SSH 連線 |
| 掃描目標 | 被探測的位址或網段 | 不需要任何準備——不必安裝程式,也不必提供帳號 |
由於系統設定與執行紀錄上這兩者會同時出現,執行紀錄的摘要卡已分開顯示,避免誤讀。
執行主機的網路位置會影響掃描結果。 請選一台在網路上看得到掃描目標的機器(例如與目標同網段、或防火牆允許它連入)。從一台看不到目標的機器發動掃描,結果會是「什麼都沒開」,那不是真實狀況。
前提條件(貴公司需準備)
| 項目 | 說明 |
|---|---|
| 一台執行主機 | 由貴公司自行選定並安裝 nmap。本平台不隨附 nmap,Agent 端也不會安裝它 |
| 執行主機的 SSH 連線 | 建立一組稽核帳號(搭配私鑰或密碼)、開放 SSH |
| 掃描授權 | 埠掃描會對目標送出真實的探測封包,可能觸發資安設備(IDS/IPS)告警或被誤判為攻擊行為。請確認掃描的網段屬於受稽核範圍且已取得授權 |
關於授權:nmap 的授權條款不允許將它隨商業軟體一同散布,因此本平台不內含 nmap,改為呼叫貴公司自行安裝的副本。
各主流 Linux 發行版的安裝與帳號建立指令,請看工具卡片選單的「部署前提說明」。
設定欄位
填的是執行主機的 SSH 憑證(不是掃描目標的):
| 欄位 | 說明 |
|---|---|
| 稽核帳號 | 登入執行主機用的帳號 |
| 認證方式 | 私鑰或密碼,二選一,選定後只出現對應欄位 |
| SSH 連接埠 | 預設 22 |
| 使用 sudo 提權 | 預設關閉,僅在需要使用 SYN 掃描時才需開啟 |
任務參數
| 參數 | 說明 |
|---|---|
| 執行主機 | Agent 要登入並執行 nmap 的機器,多台以逗號分隔(各自產出一份報告) |
| 掃描目標 | 要探測的 IP、網段或主機名稱,例如
192.168.1.0/24,多筆以逗號分隔 |
| 掃描方式 | 三選一,見下表 |
| 埠範圍 | 例如 1-1024 或 22,80,443。預設
1-1024;留空則掃 nmap 預設的常見埠 |
| 逾時秒數 | 每台執行主機各自計時,預設 3600 秒 |
三種掃描方式:
| 掃描方式 | 需要提權 | 說明 |
|---|---|---|
| TCP 連線掃描(預設) | 否 | 三者中最保守的一種。對每個連接埠完成一次完整連線,速度較慢,且目標端的應用程式可能留下連線紀錄 |
| SYN 掃描 | 是 | 不完成連線交握,較快且對目標端應用程式較不打擾。需要提權 |
| 服務版本偵測 | 否 | 在埠掃描後額外送出探測封包判斷服務種類與版本。探測流量較多,請確認已獲授權 |
選了 SYN 掃描卻未在設定中開啟提權時,掃描會明確回報權限不足而失敗,不會靜默改用其他掃描方式產出看似正常的結果。
報告與證據
報告以人類可讀的格式存入證據池,內含各目標開放的連接埠與偵測到的服務。執行紀錄上會顯示開放埠數等摘要,並分開標示執行主機與掃描目標。
4.4 政府組態基準檢測(GCB)
用途:依**政府組態基準(TWGCB)**檢測主機組態,對應我國公務機關資通設備組態基準的稽核需求。
適合用在:受政府組態基準規範的機關或供應商,其組態基準符合性類的控制項。
與 CINC Auditor 的關係
兩者使用的是同一顆檢測引擎,差別只在於本工具使用的是政府組態基準的檢測內容。因此:
- 前提條件完全相同——目標主機不需安裝任何掃描程式,只需開放 SSH(Linux)或 WinRM(Windows)並提供稽核帳號
- 設定欄位完全相同——同樣分左右兩個面板(Linux/Windows),同樣的憑證分組規則
- 任務參數完全相同——掃描目標、連線方式、檢測 Profile 位置、逾時秒數
- Windows 政策區與殘留舊值的注意事項同樣適用(見 §4.2)
請直接參照 §4.2 的說明,此處只列差異。
提供的政府組態基準檢測內容
檢測 Profile 位置的下拉選單列出掃描設定檔庫中平台預先提供的政府組態基準檢測內容,涵蓋常見的作業系統版本(Windows Server 2016/2019/2022、Windows 11、Red Hat Enterprise Linux 8/9、Ubuntu 22.04 LTS 等),各套涵蓋的檢查項目數已標示在名稱上。選了即可執行,內容由系統自動送達執行端,不需要任何人工部署——封閉網路環境也適用。
貴公司若有依自身例外情形調整過的基準內容,可請系統管理者在「掃描設定檔管理」以公用版為底「複製為自有」後修改,或直接上傳貴公司版本(見《掃描設定檔管理使用指南》)。
4.5 原始碼安全檢測(SonarQube)
用途:在不執行程式的前提下逐行分析原始碼,找出安全弱點、缺陷與不良寫法,並對應 OWASP Top 10、CWE 等弱點分類,逐項標示問題所在的檔案與行號。屬於靜態測試——查的是程式碼本身的寫法,與 ZAP 查「跑起來的網站」互補。
適合用在:安全開發流程、程式碼安全檢測類的控制項。
前提條件(貴公司需準備)
| 項目 | 說明 |
|---|---|
| 一套常駐的 SonarQube 服務 | 由貴公司自行架設並持續運作,支援 9.9 LTS 以上版本(含免費的 Community Build 與各付費版本)。本平台不代為安裝 |
| 網路可達 | Agent 主機需連得到 SonarQube 服務;此埠不需要對外網開放 |
| 一組 User Token | 於 SonarQube 個人帳號的 Security 頁產生。型別務必選 User
Token(squ_ 開頭)——另外兩種 Analysis Token
只能推送分析、不能讀取結果,填錯測試連線會失敗 |
產生 Token 的逐步畫面說明與型別對照表,請看工具卡片選單的「部署前提說明」。
設定欄位
| 欄位 | 填什麼 |
|---|---|
| SonarQube 服務位址 | Agent 主機連得到的位址,例如
http://<SonarQube 主機>:9000。請勿填
localhost |
| User Token | 上面產生的 squ_ 開頭字串,視同密碼、儲存後不再顯示 |
三種執行模式
本工具在任務參數以「執行模式」分成三種用法,差別在原始碼從哪裡來、由誰發動掃描:
| 模式 | 由誰發動掃描 | 原始碼來源 | 對貴公司 SonarQube 的動作 | 什麼時候用 |
|---|---|---|---|---|
| 原始碼掃描(預設) | 本平台 | 您指定的公開 Git 儲存庫 | 寫入——分析結果會推送回貴公司的 SonarQube | 沒有 CI 整合、要掃「稽核當下」這一版原始碼 |
| 上傳原始碼壓縮包 | 本平台 | 您上傳的壓縮包 | 寫入(同上) | 原始碼在私有版本庫、或根本不在版本庫(委外交付的原始碼包、特定版本快照)——打包上傳即可,不必把版本庫的帳號權杖交給平台 |
| 讀取既有結果 | 貴公司自己的 CI 流程 | 平台不碰原始碼 | 唯讀——只取回最近一次分析結果 | 已有成熟 CI、SonarQube 天天在跑,只要把結果收進證據池 |
三種模式都需要貴公司具備 SonarQube 服務——掃描工具沒有「只分析不推送」的模式,結果必須先推送到服務端才讀得回來。差別只在「誰發動掃描」,不在「要不要有服務」。
⚠️ 前兩種模式是「寫入」行為,執行前必讀
- 會在貴公司的 SonarQube 建立或更新專案。
對應專案不存在時會自動建立,專案代碼固定為
Guidant-AI-<您填寫的後綴>——前綴由平台加上,讓貴公司一眼辨識哪些專案由本平台產生。建立任務時畫面上會有明確警語提醒。 - 若不希望平台自行建立專案:由貴公司管理員預先手動建立同代碼的專案,並移除 Token 所屬帳號的「Create Projects」全域權限(SonarQube 沒有「禁止自動建立專案」的專門開關,這是唯一做法;詳見「部署前提說明」)。
- 支援的程式語言僅限七種:Python、JavaScript、TypeScript、Go、PHP、Ruby、Kotlin(共同特徵是不需編譯即可分析)。C# 與 VB.NET 請務必改用「讀取既有結果」模式——這兩種語言的分析必須在編譯過程中進行,技術上永遠無法以掃描模式處理;送進去不會報錯,但會產出一份幾乎沒有分析到任何內容的報告,「沒有發現問題」與「根本沒掃到」在報告上不易分辨,可能誤導稽核結論。Java 與 C/C++ 目前亦不支援。
- 報告不會有涵蓋率(Coverage)數字。 本平台不執行測試,若貴公司的品質門檻(Quality Gate)含涵蓋率條件,報告會因此顯示未通過——該紅燈來自缺少測試報告,不代表程式碼有問題。
各模式的任務參數
| 模式 | 參數 | 說明 |
|---|---|---|
| 原始碼掃描 | Git 儲存庫網址 | 公開儲存庫的 HTTPS 網址。不支援需要帳號密碼或金鑰的私有儲存庫(私有原始碼請改用上傳模式) |
| 原始碼掃描/上傳 | 專案代碼後綴 | 只填後半段識別字,實際專案代碼為
Guidant-AI-<此欄位> |
| 讀取既有結果 | 專案代碼 (Project Key) | SonarQube 專案頁「Project Information」可查得,不是專案顯示名稱 |
| 讀取既有結果 | 分支 | 留空即可。多分支分析是付費版功能,免費版填了會回報錯誤 |
上傳模式的操作方式
壓縮包不在任務設定頁上傳——任務設定只需把執行模式選為「上傳原始碼壓縮包」;實際的檔案在「我的任務」點開任務抽屜、發起執行時提供。這樣安排是因為壓縮包代表「這一次要掃的原始碼版本」,不是任務的長期設定。
- 把要掃的原始碼打包為
.zip、.tar、.tar.gz或.tgz(單一檔案的.gz不接受),單檔上限預設 100 MB。原始碼壓縮率高,100 MB 已可容納相當大的專案;不夠時可請系統管理員調整上限。 - 請勿把
node_modules、vendor、.git、建置產物等目錄一併打包——它們會大幅撐大檔案且不會被分析。 - 在任務抽屜按「上傳壓縮包」選檔,上傳完成後按「開始執行」。首次執行必須先上傳,未上傳時執行按鈕不可按。
- 再次執行同一任務時可直接沿用:抽屜會顯示「目前檔案:xxx.zip」,不上傳新檔直接按執行=掃同一包原始碼;要掃新版本按「更換檔案」上傳新檔即可。替換後舊檔仍會保留,每一筆執行紀錄都能對回當時實際掃描的檔案。
- 上傳過程不會顯示進度百分比,檔案較大時請耐心等候。
執行時間與報告
掃描本身加上貴公司 SonarQube 端的排隊處理,通常需要數分鐘至數十分鐘(讀取既有結果模式則為秒級)。報告以 HTML 格式存入證據池,內容包含分析時間、品質門檻結果、核心度量(缺陷/弱點/程式碼異味/安全熱點等)、嚴重度分佈與問題明細;問題明細僅列嚴重度最高的前 200 條(報告會標示總數),上方統計數字為全量。「讀取既有結果」模式的報告請留意分析時間欄位——那是貴公司上次掃描的時間,可能不是最近的狀態。
五、常見問題與排查
5.1 設定與測試連線
| 狀況 | 可能原因與處理 |
|---|---|
| 工具卡片是灰的、寫著「敬請期待」 | 該工具尚未開放,目前無法設定 |
| 工具卡片上沒有「測試連線」按鈕 | 該工具尚未完成設定。先按「設定」填完連線資訊並儲存,按鈕才會出現 |
| 測試連線回報「找不到可用的 Agent」 | 貴公司的內網 Agent 未啟動或未正常連線。請洽系統部署負責人 |
| 測試連線回報連不上目標 | 依序確認:目標主機是否開機、連接埠是否正確、防火牆是否允許 Agent 主機連入。注意是 Agent 連得到,不是您的電腦連得到 |
| 測試連線回報帳號或密碼錯誤 | 憑證有誤。請重新填寫;若不確定原本存的是什麼,可用「重置金鑰」清空後重填 |
| 測試連線回報目標主機找不到必要程式 | 這是目標端環境問題,不是本平台的問題。例如 Nmap 的執行主機尚未安裝 nmap。請依「部署前提說明」完成安裝 |
| CINC Auditor/GCB 測試連線時問我要測哪一組 | 正常行為。這兩個工具有兩組互斥憑證,需由您指定要驗證哪一組。詳見 §3.2 |
| 改了密碼但其他憑證不見了 | 不會發生——未填值的機敏欄位會保留原值。若確實遺失請回報 |
5.2 任務設定與執行
| 狀況 | 可能原因與處理 |
|---|---|
| 任務配置頁的檢測工具下拉找不到某工具 | 該工具尚未在「檢測工具管理」完成設定。請先請系統管理者設定 |
| 選了工具但沒出現參數欄位 | 稍候片刻;參數欄位是選定工具後才向後端取得的 |
| 掃描一直沒有結束 | 各工具都有逾時上限(預設 3600 秒)。若確定不需再等,可用執行紀錄列上的取消按鈕中止 |
| 一次掃多台,其中一台失敗 | 正常行為——各台獨立執行、獨立產出報告,失敗的那台會單獨標示原因,其餘台不受影響 |
| 下載報告只拿到一份,但我掃了多台 | 點下載後會開出報告清單,請逐份下載 |
5.3 各工具專屬
| 狀況 | 處理 |
|---|---|
| ZAP 掃描沒有完成、也沒有報告,其他人的掃描也一起中斷了 | 極可能是對單頁式應用使用了「登入後主動掃描」。請改用被動或主動掃描。詳見 §4.1 的限制說明 |
| ZAP 報告只列出首頁與 JS/CSS 檔案 | 目標多半是單頁式應用。被動與主動掃描對這類網站只能涵蓋到組態層問題,屬預期範圍 |
| CINC Auditor 很多項目顯示「無法判定」 | 權限不足。Linux 請確認已開啟 sudo 提權,Windows 請確認稽核帳號具本機管理員權限 |
| CINC Auditor/GCB 回報取不到檢測內容 | 手填的網址或路徑有誤,或 Agent 主機連不到手填的網址。建議改從下拉選用掃描設定檔庫內的項目(內容由系統內部通道送達,封閉網路也適用);私有版本庫的內容請打包上傳入庫 |
| Nmap 掃出來什麼都沒開 | 先確認執行主機在網路上看得到掃描目標。從看不到目標的機器發動掃描,結果不具參考價值 |
| Nmap 回報權限不足 | 選了 SYN 掃描但未開啟提權。請改用 TCP 連線掃描,或在設定中開啟提權並於執行主機開放對應權限 |
| GCB 想找某個作業系統版本的基準但下拉沒有 | 下拉列的是掃描設定檔庫的內容。平台已提供常見版本(見 §4.4);此外的版本可由貴公司自行上傳,或洽平台提供 |
| SonarQube 測試連線失敗,但服務確定有開 | 多半是 Token 型別選錯——只有 User
Token(squ_ 開頭)可用,兩種 Analysis Token
無法讀取結果。請重新產生正確型別的 Token。詳見 §4.5 |
| SonarQube 上傳模式的任務找不到上傳欄位 | 上傳不在任務設定頁——請到「我的任務」點開該任務的抽屜,發起執行時上傳。詳見 §4.5 |
| SonarQube 上傳的壓縮包被拒絕 | 確認格式為
.zip/.tar/.tar.gz/.tgz(單一檔案的
.gz 不接受)且未超過大小上限(預設 100 MB)。過大時先移除
node_modules、.git
等不會被分析的目錄再打包 |
| SonarQube 報告的品質門檻因涵蓋率顯示未通過 | 本平台不執行測試,報告必然沒有涵蓋率數字;該紅燈不代表程式碼有問題。詳見 §4.5 |
| SonarQube 報告看起來正常但幾乎沒有問題明細 | 若掃的是 C#/VB.NET 專案,這是「根本沒掃到」而非「很乾淨」——該兩種語言請改用「讀取既有結果」模式。詳見 §4.5 |
5.4 什麼情況該找誰
| 問題性質 | 找誰 |
|---|---|
| 畫面操作、欄位怎麼填 | 本文件;仍不清楚時洽系統管理者 |
| 目標主機的帳號、連線、防火牆、程式安裝 | 貴公司 IT 管理人員 |
| Agent 未上線、Agent 版本 | 貴公司系統部署負責人 |
| 掃描設定檔(檢測內容)的上傳與維護 | 貴公司系統管理者;操作見《掃描設定檔管理使用指南》 |
| 檢測結果的判讀與稽核認定 | 稽核員/合規顧問 |
附錄:名詞對照
| 名詞 | 意思 |
|---|---|
| Agent | 部署在貴公司內部網路、實際執行檢測動作的程式。所有連線資訊都必須是這台機器連得到的位址 |
| 連線資訊/憑證 | 在「檢測工具管理」填寫的帳號、密碼、私鑰、服務位址等,一個工具設定一次,全租戶共用 |
| 掃描參數 | 在稽核任務上填寫的目標、範圍、模式等,每個任務各自設定 |
| Profile/檢測內容 | 一套檢測規則的集合,定義要檢查哪些項目、什麼樣算通過 |
| 執行主機(Nmap 專屬) | Agent 登入進去、實際跑 nmap 的機器,不是被掃描的對象 |
| 掃描目標 | 被檢測的對象——網址(ZAP)、主機(CINC Auditor/GCB)、位址或網段(Nmap)、原始碼(SonarQube) |
| 執行模式(SonarQube 專屬) | 原始碼從哪裡來、由誰發動掃描的三種用法:原始碼掃描(公開 Git 儲存庫)/上傳原始碼壓縮包/讀取既有結果。前兩者由本平台發動掃描並把結果寫入貴公司的 SonarQube |
| 證據池 | 稽核任務底下存放佐證資料的地方。檢測報告產出後自動存入,稽核員查核時可直接查閱 |