---
title: 安全需求總表
eyebrow: Guidant AI 資安檢視總報告 · 安全需求（SR）
h1: ▸ 安全需求總表
subtitle: 81 條、十章、怎麼來的
lede: 把 26 條連線頁的 162 條防線去重、按主題歸成 **81 條安全需求（SR）**。每條一句可驗證的要求，標明它從哪條連線的哪條防線來、擋哪種威脅、怎麼證明做到了。這一頁是總表與讀法；逐條內容在各章。
chips:
  - { text: "81 條", kind: accent }
  - { text: "掃描驗證 52", kind: ok }
  - { text: "標準做法 29", kind: plain }
  - { text: "十章", kind: plain }
---

> **這份文件回答的是「系統應該怎樣」**，不是「現在怎樣」。現況（每條做到哪）放在[符合性矩陣](SR-matrix.html)，可隨程式改動重產；需求本體不跟著程式變。

## 一、怎麼來的

```{.mermaid cap="從掃描到需求的四層：模組頁逐條問題 → STRIDE 六頁標發生在哪條線 → 26 條連線頁各自歸納威脅（T）與防線（D）→ 162 條 D 去重歸十章成 81 條 SR。T 不進需求，T 是測試案例的素材。"}
%%{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
```

每條 SR 固定六欄：

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

**來源兩種**，每條都標：

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

## 二、十章總表

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

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

## 三、怎麼用

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

## 四、與其他文件的關係

| 文件 | 回答什麼 | 從哪連過去 |
|---|---|---|
| [模組頁 M01～M24](../M01-remote-agent.html) | 掃描抓到的每一條問題 | 連線頁威脅表的實例 |
| [STRIDE 六頁](../STRIDE/S-spoofing.html) | 每條問題的九欄展開、發生在哪條線 | 同上 |
| [DFD Level 0](../DFD/dfd-level0.html) | 系統有哪些連線 | SR 的適用連線 |
| [連線頁 C01～C25](../connections/C01-browser-to-frontdoor.html) | 每條線的威脅與防線 | SR 的來源 |
| 本組 SR-01～SR-10 | 系統應該怎樣 | — |
| [符合性矩陣](SR-matrix.html) | 現在做到哪 | 每條 SR |

---

*對照工作稿（162 條 D → 81 條 SR 的去重過程）在 `requirements/_drafts/D-to-SR.md`，不進側欄。*
