Guidant AI · 內部教材 · OSCAL v1.2.2
六種文件、一個故事、一套狀態流程。這份教材帶你走完一次完整稽核——用虛構的「精誠機械 CUI Enclave」申請 CMMC Level 2 當例子,搞懂每份文件由誰寫、什麼時候會被定版存證、資料怎麼在文件之間流動。
六份文件,三種「能不能改」的規則。記住這張表,後面每一節都是它的展開。
| 文件 | 一句話 | 誰寫的 | 裡面的證據 | 能不能改 |
|---|---|---|---|---|
| catalog | 這個框架包含哪些控制項 | 框架方/平台 | — | 很少改 |
| profile | 從 catalog 挑出這次要用哪一組 | 框架方/平台 | — | 很少改 |
| SSP | 我的系統每條控制是怎麼做到的 | 受評公司 | 自己準備的佐證(平常一直在補) | 隨時能改 |
| AP | 稽核員打算怎麼查 | 稽核員 | 沒有證據,只有計畫 | 查核當下定版 |
| AR | 稽核員實際看到什麼、判定過或沒過 | 稽核員 | 查核記錄(引用佐證+稽核員的判讀) | 寫完就定版 |
| POA&M | 沒過的怎麼補、補到哪了 | 受評公司 | 整改的證據(一直更新) | 隨時能改 |
用「精誠機械申請 CMMC Level 2」這條故事,各舉一個具體例子,讓抽象的名字落地。
六份文件不是並排的清單,而是一條有方向的鏈。後面一份會引用前面一份;越左邊的越少改、越右邊的越固定。
SSP 是受評公司自己寫的:「我的系統每條控制是怎麼做到的」。六份文件裡,只有它是平常隨時可以改的。
| 區塊 | 回答的問題 |
|---|---|
import-profile | 我這次要遵循哪一組控制(哪個 baseline) |
system-characteristics | 系統是什麼、範圍邊界到哪裡、資料有多敏感 |
system-implementation | 系統由哪些設備、人員、資產組成 |
control-implementation | 每條控制具體是怎麼做到的(這裡是主體) |
很多人以為 SoA 要在 SSP「之前」先聲明好。其實不是——
SoA 不是獨立的一步,它就是 SSP 的一部分:在 SSP 裡,每條控制旁邊標上「適不適用、為什麼」。對外要交一份 SoA 文件時,從這些標記直接匯出就好。
兩件事要分清楚(混在一起是最常見的錯)
| 在問什麼 | 答案 | 後果 |
|---|---|---|
| 適不適用 (這條我們要不要做) | 適用/不適用 | 標「不適用」→ 不用準備證據、稽核時跳過、永遠不會變成缺失 |
| 做了沒 (要做的,現在做到哪) | 已完成/部分/規劃中/還沒做 | 標「還沒做」→ 是缺口,稽核會開不符合、要進整改清單 |
混在一起的後果:分不清「我們決定不做(有正當理由)」和「我們該做但還沒做」。標「不適用」也不是真的隱形——稽核員還是會檢查你的理由站不站得住腳,只是不用真的去驗那條控制(跳過查驗、但不跳過審查理由)。
這是整套流程最容易搞混、也最關鍵的一點。想通這個,後面的二次稽核就全懂了。
定版鎖住的不是 SSP 本身,是「交出去的那一份副本」。你手上的 SSP 一直都能繼續改。
稽核員在開始查之前先講清楚:要查哪些控制、會碰到哪些東西、什麼時候查、怎麼查、有什麼規矩。裡面沒有任何證據,也還沒有任何結論。
它回答一個很具體的問題:稽核員那天會實際碰到哪些東西?——抽哪幾台機器來看、找哪些人訪談、進哪個機房。做法就是拿出 SSP 快照裡的資產清單,把這次要查的勾起來;抽查就是「只勾其中幾台」。
稽核員的正式記錄。核心是這條鏈:先記下「看到什麼」,再判定「過或沒過」,最後說明「沒過會造成什麼問題」。
finding 和 risk 為什麼要分成兩個
| finding(判定) | risk(風險) | |
|---|---|---|
| 在講什麼 | 對照規則,過了沒 | 沒過會造成什麼問題 |
| 答案形式 | 只有兩種:過/沒過 | 有輕重、有緩解、會變化 |
| 會不會改 | 當下定版 · 不再改 | 持續追蹤 · 從未解到關閉 |
| 給誰看 | 決定能不能發證 | 決定先修哪個、能不能接受不修 |
就像「錯題本」:只把沒過的那幾條挑出來,連同訂正需要的背景一起抄進去。由受評公司負責,一直更新到全部補完關閉。
這是 PM 最常經手的一段。每一步標了:誰動手、動哪份文件、什麼時候從稽核員手上換到受評公司手上。
這一節是給工程參考的:把 OSCAL 概念對應到 Guidant AI 的資料表。✓ 已經對好;⚠ 做 ISO 整合前建議調整。
| OSCAL 概念 | Guidant AI | 狀態 |
|---|---|---|
| SoA(applicability+理由) | project_control_applicability | ✓ |
| SSP statements | assessment_objective 層描述 | ✓ 粒度對齊 |
| SSP by-components | ssp_component_mappings | ✓ |
| SSP snapshot | launch_audit 的 snapshot | ✓ |
| AP reviewed-controls | applicability 表生成 | ✓ |
| AR results[] | audit_rounds + AR | ✓ |
| observation.relevant-evidence | ar_evidences → job_evidence_id(引用不複製) | ✓ 教科書級 |
| finding.target(objective) | ar_findings | ⚠ 改全量判定矩陣 |
| POA&M poam-item+risk | oscal.poams(兩層壓一張) | ✓ 合理 |
| risk.remediations.tasks | poam_milestones | ⚠ 加 assignee |
| risk.status 生命週期 | poams status 五態 | ⚠ ISO 需擴充 deviation |
800-171r2:3.13.11、iso27001-2022:A.8.24),支撐 L1→L2 升級證據沿用、跨框架 crosswalk。從概念進到實作。控制集在系統裡分三層存放,每層的邊界都做一次「複製並固定」,讓上游的改動不會波及下游正在進行的工作。