Guidant AI 資安檢視總報告 · 安全需求(SR)

▸ 安全需求總表

81 條、十章、怎麼來的

把 26 條連線頁的 162 條防線去重、按主題歸成 81 條安全需求(SR)。每條一句可驗證的要求,標明它從哪條連線的哪條防線來、擋哪種威脅、怎麼證明做到了。這一頁是總表與讀法;逐條內容在各章。

81 條 掃描驗證 52 標準做法 29 十章

這份文件回答的是「系統應該怎樣」,不是「現在怎樣」。現況(每條做到哪)放在符合性矩陣,可隨程式改動重產;需求本體不跟著程式變。

§1

一、怎麼來的

%%{init: {'theme':'base','themeVariables':{'primaryColor':'#E2F0F1','primaryTextColor':'#14201F','primaryBorderColor':'#0E7C86','secondaryColor':'#EEF2F3','secondaryTextColor':'#14201F','tertiaryColor':'#FBFCFC','tertiaryTextColor':'#14201F','lineColor':'#4A5A5C','textColor':'#14201F','mainBkg':'#E2F0F1','nodeBorder':'#0E7C86','nodeTextColor':'#14201F','edgeLabelBackground':'#FBFCFC','titleColor':'#14201F','clusterBkg':'#FBFCFC','clusterBorder':'#E4EAEB'}}}%%
flowchart LR
    M["24 個模組頁<br/>234 件問題"] --> ST["STRIDE 六頁<br/>311 條,每條標【連線 Cxx】"]
    ST --> CN["26 條連線頁<br/>106 種威脅 T/162 條防線 D"]
    CN -- "D 去重分章" --> SR["安全需求 81 條<br/>十章"]
    CN -. "T 當素材" .-> TC["測試案例<br/>(下一步)"]
    SR --> MX["符合性矩陣<br/>SR × 現況"]
    SR -.-> TC
從掃描到需求的四層:模組頁逐條問題 → STRIDE 六頁標發生在哪條線 → 26 條連線頁各自歸納威脅(T)與防線(D)→ 162 條 D 去重歸十章成 81 條 SR。T 不進需求,T 是測試案例的素材。

每條 SR 固定六欄:

欄 內容
編號 SR-<章>.<序>。編號一旦給出不再改,廢止的留號標「已廢止」
要求 一句可驗證的陳述。寫「必須/不得」,不寫「建議/盡量」
為什麼 不做會怎樣——攻擊者得手什麼。從對應威脅的「得手什麼」來
適用連線 這條要求管哪幾條線,連回連線頁
對應威脅 擋連線頁的哪幾種手法(T),連回去。純標準做法的沒有 T
驗證方式 一句講怎麼證明做到了。這是測試案例的種子

來源兩種,每條都標:

  • 掃描驗證:至少有一條掃描抓到的真實問題撐著(連線頁的 D 不帶 ◇)。證據強度高——我們知道不做會出事,因為已經出過。
  • 標準做法:依連線特性補的業界標準防線(連線頁的 D 帶 ◇),這一輪掃描沒抓到實例。不代表沒問題,多半是掃描範圍(程式碼)看不到部署設定與營運面。
§2

二、十章總表

章 主題 條數 掃描驗證 標準做法 一句話
SR-01 身分驗證 8 6 2 人、機器、外部身分提供者——「你是誰」要真的驗,不收自報
SR-02 授權 14 13 1 租戶隔離、專案角色、能力點、總部層級——「你能不能做」要有單一判斷點
SR-03 傳輸安全 7 3 4 對外 HTTPS、對外部服務驗憑證、內網不對外、mTLS 要真驗
SR-04 輸入處理 12 9 3 驗身分前只做便宜的事、解析前先量、外部回來的都是外部輸入
SR-05 輸出與回應 5 2 3 出口依格式跳脫、回應白名單、安全標頭、推出去的最小化
SR-06 祕密管理 8 4 4 加密落庫、寫出去就遮、解密後只留記憶體、最小權限帳號
SR-07 可用性與資源 9 4 5 大小、速率、逾時、佇列、連線數——每個入口都有上限
SR-08 紀錄與稽核 6 5 1 紀錄是旁路、目標由人填就要記誰按的、刪除有順序
SR-09 代理程式專章 7 2 5 誰能派工、資料面只對雲端開、證據可信副本在雲端、容器非 root
SR-10 外部整合專章 5 4 1 Drive 不收直接編號、授權序號夠長、AI 入口出口守門
合計 81 52 29

前八章是任何 web 系統都有的通用主題,後兩章是本產品特有的(代理程式裝在客戶機房、十條依設定才存在的外部整合)。通用的要求(如憑證驗證)即使只用在代理程式上也歸通用章,專章只放該領域特有的——審計方按主題翻比較順。

§3

三、怎麼用

  • 審計或問卷:按章找。「你們的身分驗證怎麼做」→ SR-01 八條,每條有驗證方式;「現在做到哪」→ 符合性矩陣。
  • 新功能設計:新端點/新連線開工前翻一遍適用的章,要求是 checklist。
  • 寫測試:每條 SR 的「驗證方式」是一個測試案例的種子;有對應威脅的,威脅的「駭客怎麼打 ①②③」就是攻擊步驟。
  • 修正排程:矩陣裡 ⚠️ 的條目依「對應威脅的風險燈號」排優先。
§4

四、與其他文件的關係

文件 回答什麼 從哪連過去
模組頁 M01~M24 掃描抓到的每一條問題 連線頁威脅表的實例
STRIDE 六頁 每條問題的九欄展開、發生在哪條線 同上
DFD Level 0 系統有哪些連線 SR 的適用連線
連線頁 C01~C25 每條線的威脅與防線 SR 的來源
本組 SR-01~SR-10 系統應該怎樣 —
符合性矩陣 現在做到哪 每條 SR

對照工作稿(162 條 D → 81 條 SR 的去重過程)在 requirements/_drafts/D-to-SR.md,不進側欄。