Guidant AI 資安檢視總報告 · 安全需求(SR)
81 條安全需求現在做到哪
每條安全需求(SR)對照連線頁「目前做到哪」的核實結果,彙整成一個燈號。這是看程式的初步檢查,不是測試跑出來的結果——真正的驗證等測試案例實跑後回填。連線頁改了用腳本重產,不手改。
燈號怎麼來的:每條 SR 的來源防線(D)在連線頁第五段都有「目前做到哪」,由 runner 開程式核實——✅ 有機制保證、⚠️ 只靠慣例或只守到局部、🚫 決策者裁定不做。一條 SR 有多個來源 D 時取最差的(⚠️ 排最前:某個子項裁定不做不等於整條被放棄,其他子項只做一半時整條就是 ⚠️;全部來源都裁定不做才顯示 🚫)。「最高風險」是這條 SR 擋的威脅(T)裡最高的燈號,用來排修正優先序。
| 現況 | 條數 | 占比 |
|---|---|---|
| ✅ 符合 | 7 | 8% |
| ⚠️ 部分 | 74 | 91% |
| 合計 | 81 |
怎麼讀 ⚠️ 占多數:⚠️ 不是「沒做」,是「做了一部分、或靠人記得而不是靠機制」。連線頁 D 的現況欄多半是「✅ 某某已做;⚠️ 但某某沒有機制保證」,兩者並存就算 ⚠️。這是第一輪修完 234 件問題後的典型形狀——洞補了、守門的機制還沒長成。
| SR | 要求 | 現況 | 最高風險 | 撐它的防線 |
|---|---|---|---|---|
| SR-01.1 | 不需登入的入口,回應不得帶任何可直接使用的祕密(重設鑰匙、權杖、一次性碼);祕密只走第二通道送到本人;成功與失敗回應逐位… | ⚠️ 部分 | 🔴 | C01 D1 ⚠️ |
| SR-01.6 | 機器(代理程式)身分只認後端簽發的簽章通行證,不認自報編號;每個請求驗簽並查撤銷;通行證效期與撤銷配套,撤銷後所有通道同… | ⚠️ 部分 | 🔴 | C20 D1 ✅、C20 D6 ⚠️ |
| SR-01.7 | 機器報到比其他端點更嚴:憑證申請名稱必須等於本機指紋、重新登記附舊私鑰持有證明、被撤銷者一律拒收;註冊 token 有效… | ⚠️ 部分 | 🔴 | C20 D2 ⚠️ |
| SR-03.6 | 雙向憑證(mTLS)要嘛真驗、要嘛拿掉,不留「出示但不看」的假象;agent 資料面入站強制客戶端憑證+綁這台的短效票 | ⚠️ 部分 | 🔴 | C20 D7 ⚠️、C21 D1 ⚠️ |
| SR-07.7 | agent 側的暫存(S3 bucket、工作目錄、cache)有容量上限與清理,磁碟低於門檻告警;agent 對 pr… | ⚠️ 部分 | 🔴 | C22 D4 ⚠️、C23b D6 ⚠️、C21 D5 ⚠️ |
| SR-09.2 | agent 資料面 :8443 只對雲端開(客戶防火牆放行雲端來源 IP),安裝文件明寫;demo 模式(`AGENT_… | ⚠️ 部分 | 🔴 | C21 D6 ⚠️、C21 D7 ⚠️ |
| SR-01.2 | 以外部身分提供者(Google、LDAP)登入或綁定時,必須真的向提供者驗證(驗簽、驗受眾、驗效期、或以使用者密碼實際 … | ⚠️ 部分 | 🟠 | C04 D3 ⚠️、C11 D1 ✅ |
| SR-01.8 | 即時連線(socket)在交握時驗身分,每個事件重新注入伺服器端身分;署名與租戶只取伺服器端值 | ⚠️ 部分 | 🟠 | C03 D1 ⚠️、C03 D2 ⚠️ |
| SR-02.1 | 每張業務表都有資料庫層隔離牆(RLS),牆的形狀只有一種標準規則;無租戶欄位的子表用跟隨規則;視圖以查詢者身分執行;有一… | ⚠️ 部分 | 🟠 | C05 D1 ⚠️、C05 D7 ⚠️ |
| SR-02.11 | 跨出本系統的動作(開外部問題單、分享資料夾、送帳密測試連線)之前先比對歸屬或能力點,非本人一次外部呼叫都不送 | ⚠️ 部分 | 🟠 | C15 D2 ✅、C14 D3 🚫、C21 D2 ⚠️ |
| SR-02.14 | 停權記在客戶身上不記在授權檔上;出貨版只認正式簽發站公鑰 | ⚠️ 部分 | 🟠 | C18 D2 ⚠️、C18 D3 🚫 |
| SR-02.3 | 沒有登入身分時隔離一律最嚴(看不到任何東西);繞牆必須具名宣告系統身分;刪除類背景作業刪前先確認「看得到東西」 | ⚠️ 部分 | 🟠 | C05 D3 ⚠️、C02 D5 ⚠️、C09 D3 ✅ |
| SR-02.4 | 帶資源編號的端點先 resolve 資源、再查呼叫者與資源的關係(專案成員/角色/歸屬),守門統一走 `common/a… | ⚠️ 部分 | 🟠 | C02 D1 ⚠️ |
| SR-02.5 | 請求帶父子兩個編號時必核對子屬於父;刪實體檔用過濾後的清單 | ⚠️ 部分 | 🟠 | C02 D2 ⚠️、C07 D3 ⚠️ |
| SR-02.6 | 能力點(RBAC)掛在 route decorator;選單可見性與端點守門用同一張表,看不到的功能網址也打不到 | ⚠️ 部分 | 🟠 | C02 D4 ⚠️ |
| SR-02.7 | 全站共用設定(登入規則、帳號目錄、日誌轉送去向)的寫入要總部層級,判斷點只有一個函式 | ⚠️ 部分 | 🟠 | C02 D5 ⚠️、C12 D3 ✅ |
| SR-02.8 | 每份檔案有歸屬登記;無人認領一律拒絕;拒絕回「找不到」不回「無權限」;下載問「能看」、刪除問「能刪」分開問 | ⚠️ 部分 | 🟠 | C07 D2 ⚠️ |
| SR-02.9 | 背景工作入列前以呼叫者身分守門;執行時以建單者身分、RLS 照常;系統身分旗標不隨單走;跨租戶工作比對「預期的公司」不同… | ⚠️ 部分 | 🟠 | C09 D1 ⚠️、C09 D2 ⚠️、C14 D2 ⚠️ |
| SR-03.2 | 對外部服務的加密連線必須驗對方憑證與主機名;「不驗證」只能是明示選項不能是預設;自簽憑證以貼信任憑證解決,不是關掉驗證;… | ⚠️ 部分 | 🟠 | C06 D1 ⚠️、C10 D2 ⚠️、C11 D3 ⚠️、C12 D1 ⚠️、C15 D1 ⚠️、C23a D1 ⚠️ |
| SR-03.3 | 可選加密的整合(LDAP、SIEM、WinRM、ZAP/SonarQube)預設加密,明文要客戶明示才開;設定頁對「不驗… | ⚠️ 部分 | 🟠 | C11 D4 ⚠️、C10 D6 ⚠️、C23 D4 ⚠️、C23a D2 ⚠️ |
| SR-03.5 | 內網服務(DB、Redis、檔案儲存、沙箱、agent 的 S3)不映射到主機埠、不對外 | ⚠️ 部分 | 🟠 | C05 D8 ⚠️、C06 D2 ✅、C07 D6 ⚠️、C22 D1 ⚠️ |
| SR-04.1 | 驗身分之前只做便宜、有上限的事:每一步對輸入長度設上限、耗時隨長度線性 | ⚠️ 部分 | 🟠 | C01 D2 ⚠️ |
| SR-04.2 | 所有匯入與解析端點在解析前先量大小(上傳檔、解開後、檔案數、膨脹倍數),解析時有逾時與記憶體上限,上限常數集中在共用層不… | ⚠️ 部分 | 🟠 | C02 D8 ⚠️、C07 D7 ⚠️、C19 D1 ✅、C08 D1 ⚠️、C05 D6 ⚠️ |
| SR-04.3 | 列表查詢條件沒填就拒絕;每頁筆數在共用分頁格式設上限 | ⚠️ 部分 | 🟠 | C02 D3 ⚠️ |
| SR-04.4 | 回程交回瀏覽器的檔案由伺服器決定格式:可預覽格式白名單、讀檔頭驗真實格式、網頁類帶 CSP sandbox、所有檔案回應… | ⚠️ 部分 | 🟠 | C01 D4 ✅、C07 D1 ⚠️、C20 D3 ⚠️ |
| SR-04.5 | 不需登入的頁面,網址參數不進頁面程式:只認白名單代碼、顯示文字由前端查翻譯、內嵌前跳脫、頁面帶 nonce CSP | ⚠️ 部分 | 🟠 | C01 D3 ⚠️、C04 D1 ⚠️ |
| SR-04.6 | 外部系統回來的一切都是外部輸入:代理程式回報、受檢主機結果、工具伺服器報告、沙箱回傳、AI 回覆——大小上限、格式驗證、… | ⚠️ 部分 | 🟠 | C20 D3 ⚠️、C23 D5 ⚠️、C23a D5 ⚠️、C08 D5 ⚠️、C13 D5 ⚠️ |
| SR-04.7 | 使用者的字送進 AI 前獨立成「不可信段」與指令分開;AI 輸出只能從白名單選動作;背景處理的外來內容當資料不當指令 | ⚠️ 部分 | 🟠 | C13 D2 ⚠️、C09 D5 ⚠️ |
| SR-04.8 | 交給外部程式(cinc-auditor)執行的內容先看內容不只驗結構(含樣板記號即拒);外部程式關進沙箱(獨立容器、無網… | ⚠️ 部分 | 🟠 | C19 D2 ⚠️、C19 D5 ⚠️ |
| SR-05.1 | 所有使用者輸入在出口依目的地格式跳脫:Excel 公式前綴、Word 範本語法、HTML 信件、LDAP 查詢字串、Go… | ⚠️ 部分 | 🟠 | C02 D7 ⚠️、C10 D4 ⚠️、C11 D2 ⚠️、C14 D4 ⚠️、C16 D2 ⚠️、C12 D2 ⚠️ |
| SR-05.2 | 回應 schema 白名單:設定類回應一律遮密鑰;錯誤訊息只回代碼,原始例外只進日誌 | ⚠️ 部分 | 🟠 | C02 D6 ⚠️、C10 D3 ⚠️ |
| SR-05.3 | 前門對所有回應加安全標頭:全站 CSP(限本站、禁 inline)、HSTS、X-Frame-Options/`fr… |
⚠️ 部分 | 🟠 | C01 D5 ⚠️、C01 D6 ⚠️ |
| SR-06.2 | 祕密在寫出去的那一刻就遮掉:日誌三個出口(請求標頭、內容、回應)接同一支遮蔽;失敗紀錄只記位址與錯誤類別不記設定物件;診… | ⚠️ 部分 | 🟠 | C05 D4 ⚠️、C10 D3 ⚠️、C03 D4 ⚠️、C12 D4 ⚠️ |
| SR-06.8 | 備份與匯出受同等保護:備份加密或限權、不隨意複製;回廠診斷包經同一套遮蔽 | ⚠️ 部分 | 🟠 | C05 D9 ⚠️ |
| SR-07.1 | 前門有請求大小與速率上限;不需登入的端點(回呼、webhook)另有濫用上限與告警 | ⚠️ 部分 | 🟠 | C01 D7 ⚠️、C04 D4 ⚠️、C14 D7 ⚠️ |
| SR-10.1 | Drive:不接受呼叫者直接給雲端檔案編號,先驗檔案屬於這批且呼叫者是專案成員;查不到即 404 不退回讀雲端;OAut… | ⚠️ 部分 | 🟠 | C14 D1 ⚠️、C14 D6 ⚠️ |
| SR | 要求 | 現況 | 最高風險 | 撐它的防線(連線 D) |
|---|---|---|---|---|
| SR-01.1 | 不需登入的入口,回應不得帶任何可直接使用的祕密(重設鑰匙、權杖、一次性碼);祕密只走第二通道送到本人;成功與失敗回應逐位元組相同 | ⚠️ 部分 | 🔴 | C01 D1 ⚠️ |
| SR-01.2 | 以外部身分提供者(Google、LDAP)登入或綁定時,必須真的向提供者驗證(驗簽、驗受眾、驗效期、或以使用者密碼實際 bind 一次),不… | ⚠️ 部分 | 🟠 | C04 D3 ⚠️、C11 D1 ✅ |
| SR-01.3 | 登入失敗次數與帳號鎖定涵蓋所有登入路徑(本地、LDAP、雙因子驗證碼) | ⚠️ 部分 | — | C11 D5 ⚠️ |
| SR-01.4 | OAuth 回呼同時驗「連結是真的」(一次性、短效、不可猜的狀態碼)與「回來的是發起的瀏覽器」(HttpOnly cookie 綁定) | ⚠️ 部分 | ⚪ | C04 D2 ⚠️ |
| SR-01.5 | 安全計數(登入失敗、雙因子失敗、節流)不得只存在易失儲存;儲存不可用時拒絕而非放行 | ⚠️ 部分 | — | C06 D4 ⚠️ |
| SR-01.6 | 機器(代理程式)身分只認後端簽發的簽章通行證,不認自報編號;每個請求驗簽並查撤銷;通行證效期與撤銷配套,撤銷後所有通道同時失效 | ⚠️ 部分 | 🔴 | C20 D1 ✅、C20 D6 ⚠️ |
| SR-01.7 | 機器報到比其他端點更嚴:憑證申請名稱必須等於本機指紋、重新登記附舊私鑰持有證明、被撤銷者一律拒收;註冊 token 有效期與使用次數上限 | ⚠️ 部分 | 🔴 | C20 D2 ⚠️ |
| SR-01.8 | 即時連線(socket)在交握時驗身分,每個事件重新注入伺服器端身分;署名與租戶只取伺服器端值 | ⚠️ 部分 | 🟠 | C03 D1 ⚠️、C03 D2 ⚠️ |
| SR | 要求 | 現況 | 最高風險 | 撐它的防線(連線 D) |
|---|---|---|---|---|
| SR-02.1 | 每張業務表都有資料庫層隔離牆(RLS),牆的形狀只有一種標準規則;無租戶欄位的子表用跟隨規則;視圖以查詢者身分執行;有一支守衛測試掃全庫確認… | ⚠️ 部分 | 🟠 | C05 D1 ⚠️、C05 D7 ⚠️ |
| SR-02.2 | 租戶層級比對只准前綴比對;子單位看不到母公司與兄弟;「子讀母」例外只管讀 | ✅ 符合 | 🟠 | C05 D2 ✅ |
| SR-02.3 | 沒有登入身分時隔離一律最嚴(看不到任何東西);繞牆必須具名宣告系統身分;刪除類背景作業刪前先確認「看得到東西」 | ⚠️ 部分 | 🟠 | C05 D3 ⚠️、C02 D5 ⚠️、C09 D3 ✅ |
| SR-02.4 | 帶資源編號的端點先 resolve 資源、再查呼叫者與資源的關係(專案成員/角色/歸屬),守門統一走 common/authz/ 決策表… |
⚠️ 部分 | 🟠 | C02 D1 ⚠️ |
| SR-02.5 | 請求帶父子兩個編號時必核對子屬於父;刪實體檔用過濾後的清單 | ⚠️ 部分 | 🟠 | C02 D2 ⚠️、C07 D3 ⚠️ |
| SR-02.6 | 能力點(RBAC)掛在 route decorator;選單可見性與端點守門用同一張表,看不到的功能網址也打不到 | ⚠️ 部分 | 🟠 | C02 D4 ⚠️ |
| SR-02.7 | 全站共用設定(登入規則、帳號目錄、日誌轉送去向)的寫入要總部層級,判斷點只有一個函式 | ⚠️ 部分 | 🟠 | C02 D5 ⚠️、C12 D3 ✅ |
| SR-02.8 | 每份檔案有歸屬登記;無人認領一律拒絕;拒絕回「找不到」不回「無權限」;下載問「能看」、刪除問「能刪」分開問 | ⚠️ 部分 | 🟠 | C07 D2 ⚠️ |
| SR-02.9 | 背景工作入列前以呼叫者身分守門;執行時以建單者身分、RLS 照常;系統身分旗標不隨單走;跨租戶工作比對「預期的公司」不同即整棵不建 | ⚠️ 部分 | 🟠 | C09 D1 ⚠️、C09 D2 ⚠️、C14 D2 ⚠️ |
| SR-02.10 | AI 代替使用者執行的每一支查詢都申報權限,未申報即拒絕;參數由申報處硬綁 | ⚠️ 部分 | 🟡 | C13 D4 ⚠️ |
| SR-02.11 | 跨出本系統的動作(開外部問題單、分享資料夾、送帳密測試連線)之前先比對歸屬或能力點,非本人一次外部呼叫都不送 | ⚠️ 部分 | 🟠 | C15 D2 ✅、C14 D3 🚫、C21 D2 ⚠️ |
| SR-02.12 | HTTP 中介層擋的每一項(授權到期唯讀、租戶隔離、請求上限),socket 側逐項核對有對應擋法 | ⚠️ 部分 | ⚪ | C03 D3 ⚠️ |
| SR-02.13 | 端點守門覆蓋率用程式產清單(每支路由掛哪個軸、哪些只驗 JWT),定期產表對照,不靠記憶 | ⚠️ 部分 | — | C02 D9 ⚠️、C09 D9 ⚠️ |
| SR-02.14 | 停權記在客戶身上不記在授權檔上;出貨版只認正式簽發站公鑰 | ⚠️ 部分 | 🟠 | C18 D2 ⚠️、C18 D3 🚫 |
| SR | 要求 | 現況 | 最高風險 | 撐它的防線(連線 D) |
|---|---|---|---|---|
| SR-03.1 | 對外入口只走 HTTPS;:80 只轉向不供站;憑證缺失寧可不啟動;加 HSTS | ⚠️ 部分 | — | C01 D6 ⚠️ |
| SR-03.2 | 對外部服務的加密連線必須驗對方憑證與主機名;「不驗證」只能是明示選項不能是預設;自簽憑證以貼信任憑證解決,不是關掉驗證;程式裡不得出現 `v… | ⚠️ 部分 | 🟠 | C06 D1 ⚠️、C10 D2 ⚠️、C11 D3 ⚠️、C12 D1 ⚠️、C15 D1 ⚠️、C23a D1 ⚠️ |
| SR-03.3 | 可選加密的整合(LDAP、SIEM、WinRM、ZAP/SonarQube)預設加密,明文要客戶明示才開;設定頁對「不驗憑證」「明文」有明顯… | ⚠️ 部分 | 🟠 | C11 D4 ⚠️、C10 D6 ⚠️、C23 D4 ⚠️、C23a D2 ⚠️ |
| SR-03.4 | SSH 連線驗主機指紋(首次記下、之後不符即拒,或由客戶預填) | ⚠️ 部分 | — | C23 D3 ⚠️ |
| SR-03.5 | 內網服務(DB、Redis、檔案儲存、沙箱、agent 的 S3)不映射到主機埠、不對外 | ⚠️ 部分 | 🟠 | C05 D8 ⚠️、C06 D2 ✅、C07 D6 ⚠️、C22 D1 ⚠️ |
| SR-03.6 | 雙向憑證(mTLS)要嘛真驗、要嘛拿掉,不留「出示但不看」的假象;agent 資料面入站強制客戶端憑證+綁這台的短效票 | ⚠️ 部分 | 🔴 | C20 D7 ⚠️、C21 D1 ⚠️ |
| SR-03.7 | 依設定才存在的對外連線(AI、License、規則包、webhook)位址只收 https,拒內網段,host 精確比對 | ⚠️ 部分 | 🟡 | C13 D6 ⚠️、C18 D5 ⚠️、C19 D3 ⚠️、C24 D1 ⚠️、C16 D1 ✅ |
| SR | 要求 | 現況 | 最高風險 | 撐它的防線(連線 D) |
|---|---|---|---|---|
| SR-04.1 | 驗身分之前只做便宜、有上限的事:每一步對輸入長度設上限、耗時隨長度線性 | ⚠️ 部分 | 🟠 | C01 D2 ⚠️ |
| SR-04.2 | 所有匯入與解析端點在解析前先量大小(上傳檔、解開後、檔案數、膨脹倍數),解析時有逾時與記憶體上限,上限常數集中在共用層不各入口各補 | ⚠️ 部分 | 🟠 | C02 D8 ⚠️、C07 D7 ⚠️、C19 D1 ✅、C08 D1 ⚠️、C05 D6 ⚠️ |
| SR-04.3 | 列表查詢條件沒填就拒絕;每頁筆數在共用分頁格式設上限 | ⚠️ 部分 | 🟠 | C02 D3 ⚠️ |
| SR-04.4 | 回程交回瀏覽器的檔案由伺服器決定格式:可預覽格式白名單、讀檔頭驗真實格式、網頁類帶 CSP sandbox、所有檔案回應帶 `nosniff… | ⚠️ 部分 | 🟠 | C01 D4 ✅、C07 D1 ⚠️、C20 D3 ⚠️ |
| SR-04.5 | 不需登入的頁面,網址參數不進頁面程式:只認白名單代碼、顯示文字由前端查翻譯、內嵌前跳脫、頁面帶 nonce CSP | ⚠️ 部分 | 🟠 | C01 D3 ⚠️、C04 D1 ⚠️ |
| SR-04.6 | 外部系統回來的一切都是外部輸入:代理程式回報、受檢主機結果、工具伺服器報告、沙箱回傳、AI 回覆——大小上限、格式驗證、進證據前消毒、XML… | ⚠️ 部分 | 🟠 | C20 D3 ⚠️、C23 D5 ⚠️、C23a D5 ⚠️、C08 D5 ⚠️、C13 D5 ⚠️ |
| SR-04.7 | 使用者的字送進 AI 前獨立成「不可信段」與指令分開;AI 輸出只能從白名單選動作;背景處理的外來內容當資料不當指令 | ⚠️ 部分 | 🟠 | C13 D2 ⚠️、C09 D5 ⚠️ |
| SR-04.8 | 交給外部程式(cinc-auditor)執行的內容先看內容不只驗結構(含樣板記號即拒);外部程式關進沙箱(獨立容器、無網路、唯讀) | ⚠️ 部分 | 🟠 | C19 D2 ⚠️、C19 D5 ⚠️ |
| SR-04.9 | 伺服器端抓取外部網址(規則包、AI base_url、源碼包)有 SSRF 防線:scheme 白名單、每顆 IP 查禁區、IP 釘住、大小… | ⚠️ 部分 | — | C19 D4 ✅、C24 D4 ⚠️、C23b D5 ⚠️ |
| SR-04.10 | 源碼包與規則包四道關卡:磁碟檢查 → 串流下載計量 → sha256 對帳(解壓前)→ 安全解壓(路徑消毒+炸彈防護);掃描工具關鍵參數由命… | ⚠️ 部分 | — | C23b D3 ⚠️、C23b D4 ⚠️ |
| SR-04.11 | 沙箱(檔案拆解)有資源上限、逾時殺得掉、入口驗身分、路徑不跳出工作目錄、同批次檔案互相隔離、裡面什麼都拿不到 | ⚠️ 部分 | ⚪ | C08 D1 ⚠️、C08 D2 ✅、C08 D3 ⚠️、C08 D4 ⚠️ |
| SR-04.12 | 推播訊息送進瀏覽器前由 socketio 端驗格式,只接受固定事件型別與欄位 | ⚠️ 部分 | — | C06 D5 ⚠️ |
| SR | 要求 | 現況 | 最高風險 | 撐它的防線(連線 D) |
|---|---|---|---|---|
| SR-05.1 | 所有使用者輸入在出口依目的地格式跳脫:Excel 公式前綴、Word 範本語法、HTML 信件、LDAP 查詢字串、Google 搜尋語法、… | ⚠️ 部分 | 🟠 | C02 D7 ⚠️、C10 D4 ⚠️、C11 D2 ⚠️、C14 D4 ⚠️、C16 D2 ⚠️、C12 D2 ⚠️ |
| SR-05.2 | 回應 schema 白名單:設定類回應一律遮密鑰;錯誤訊息只回代碼,原始例外只進日誌 | ⚠️ 部分 | 🟠 | C02 D6 ⚠️、C10 D3 ⚠️ |
| SR-05.3 | 前門對所有回應加安全標頭:全站 CSP(限本站、禁 inline)、HSTS、X-Frame-Options/`frame-ancest… |
⚠️ 部分 | 🟠 | C01 D5 ⚠️、C01 D6 ⚠️ |
| SR-05.4 | 推到第三方頻道(Discord、Telegram、外部問題單)的內容最小化:只說「有事發生」,不帶客戶內部的專案名、人名、附件 | ⚠️ 部分 | — | C16 D5 ⚠️、C15 D4 ⚠️ |
| SR-05.5 | 資料出境(送到外部 AI)的範圍有清單、客戶看得到;片段怎麼切、切多長說得出來 | ⚠️ 部分 | — | C13 D7 ⚠️ |
| SR | 要求 | 現況 | 最高風險 | 撐它的防線(連線 D) |
|---|---|---|---|---|
| SR-06.1 | 整合憑證(SMTP 密碼、AI 金鑰、Drive 密鑰、GitLab 通行證、webhook 網址、工具帳密)加密落庫、讀取遮罩、不以明文回… | ⚠️ 部分 | — | C10 D5 ⚠️、C15 D3 ⚠️、C16 D3 ⚠️ |
| SR-06.2 | 祕密在寫出去的那一刻就遮掉:日誌三個出口(請求標頭、內容、回應)接同一支遮蔽;失敗紀錄只記位址與錯誤類別不記設定物件;診斷包、轉送紀錄經同一… | ⚠️ 部分 | 🟠 | C05 D4 ⚠️、C10 D3 ⚠️、C03 D4 ⚠️、C12 D4 ⚠️ |
| SR-06.3 | 存著的密碼只能跟著存著的主機走:「測試連線」改了位址必須重新輸入密碼 | ⚠️ 部分 | 🟡 | C10 D1 ⚠️ |
| SR-06.4 | 解密後的帳密只留記憶體:派工單落庫不含明文、領單時當場解密、不落實體磁碟、不進命令列、不進日誌、不寫回任何表 | ⚠️ 部分 | 🟡 | C20 D4 ⚠️、C23 D2 ⚠️、C23a D3 ✅、C09 D8 ⚠️ |
| SR-06.5 | 位址跟著金鑰走:原廠金鑰只配原廠位址,新租戶不抄金鑰;AI base_url 與金鑰只能來自同一層 | ⚠️ 部分 | 🟡 | C13 D1 ⚠️ |
| SR-06.6 | 服務帳號最小權限:DB 服務帳號無特權、管理帳號只在建庫升級用;Redis 每個行程自己的帳號只開需要的指令與 key 前綴;密碼由安裝程式… | ⚠️ 部分 | — | C05 D8 ⚠️、C06 D3 ⚠️、C22 D1 ⚠️ |
| SR-06.7 | 原廠對簽發站的 X-API-Token 與 DB 密碼同級保管並有輪替 |
⚠️ 部分 | — | C18 D6 ⚠️ |
| SR-06.8 | 備份與匯出受同等保護:備份加密或限權、不隨意複製;回廠診斷包經同一套遮蔽 | ⚠️ 部分 | 🟠 | C05 D9 ⚠️ |
| SR | 要求 | 現況 | 最高風險 | 撐它的防線(連線 D) |
|---|---|---|---|---|
| SR-07.1 | 前門有請求大小與速率上限;不需登入的端點(回呼、webhook)另有濫用上限與告警 | ⚠️ 部分 | 🟠 | C01 D7 ⚠️、C04 D4 ⚠️、C14 D7 ⚠️ |
| SR-07.2 | 外部 AI 呼叫有四道上限:訊息長度(路由最外層擋)、逾時、每人每分鐘次數(跨行程計)、每租戶/每人每日額度 | ⚠️ 部分 | 🟡 | C13 D3 ⚠️ |
| SR-07.3 | 所有外部呼叫(AI、GitLab、Discord、Telegram、License、Drive)有逾時;失敗不拖垮本地操作 | ⚠️ 部分 | — | C15 D5 ⚠️、C16 D4 ⚠️ |
| SR-07.4 | 背景工作入列有去重、並行上限、排隊深度上限;工作有資源上限;佇列有租約、心跳、死 worker 重撿、重試上限、停機做完手上的單 | ⚠️ 部分 | 🟡 | C09 D4 ⚠️、C09 D7 ⚠️ |
| SR-07.5 | 即時連線每使用者同時連線數與每秒事件數有上限;跨來源白名單與 HTTP 側對齊 | ⚠️ 部分 | — | C03 D6 ⚠️、C03 D5 ⚠️ |
| SR-07.6 | 資料庫做的事有上限:statement_timeout;讀檔解析用串流、列數上限;一筆壞資料不拖垮整份查詢 |
⚠️ 部分 | 🟡 | C05 D6 ⚠️ |
| SR-07.7 | agent 側的暫存(S3 bucket、工作目錄、cache)有容量上限與清理,磁碟低於門檻告警;agent 對 probe 請求自己再守… | ⚠️ 部分 | 🔴 | C22 D4 ⚠️、C23b D6 ⚠️、C21 D5 ⚠️ |
| SR-07.8 | 掃描可即時取消、有逾時;預設強度保守(不預設 SYN、不預設破壞性 config、active scan 要勾) | ⚠️ 部分 | — | C25 D5 ✅、C25 D3 ⚠️ |
| SR-07.9 | Redis 不持久化、不留免密入口;衍生檔跟主檔同生共死;切換儲存後端不丟舊檔 | ⚠️ 部分 | ⚪ | C06 D2 ✅、C07 D5 ⚠️、C07 D8 ⚠️ |
| SR | 要求 | 現況 | 最高風險 | 撐它的防線(連線 D) |
|---|---|---|---|---|
| SR-08.1 | 紀錄是旁路:寫失敗不拖垮請求、超長先截斷、過期要真的刪;分區維護有排程 | ✅ 符合 | 🟡 | C05 D5 ✅ |
| SR-08.2 | 目標由呼叫者填的動作(測試連線、掃描、分享)要限量、收斂回應、稽核日誌記操作者/客戶/設定/工具/目標清單 | ⚠️ 部分 | 🟡 | C21 D3 ⚠️、C23 D1 ✅、C23a D4 ⚠️、C25 D1 ⚠️、C25 D2 ⚠️ |
| SR-08.3 | 刪除順序:先刪紀錄、紀錄真的刪掉才刪實體;原廠共用檔對寫入一律拒絕 | ✅ 符合 | 🟡 | C07 D4 ✅ |
| SR-08.4 | 日誌轉送(SIEM)有送達確認或至少斷線告警;加密設定變更觸發重掛 | ⚠️ 部分 | 🟡 | C12 D5 ⚠️、C12 D1 ⚠️ |
| SR-08.5 | 安全狀態(授權到期、唯讀)當場算,排程只寫副本;兩者取較嚴 | ✅ 符合 | ⚪ | C09 D6 ✅ |
| SR-08.6 | url 型規則包內容漂移可見:定期重抓比對 sha256,不符警告並拒派;清單頁說得出「哪一刻的快照」;抽取失敗的版本不得進可派工狀態 | ⚠️ 部分 | — | C24 D3 ⚠️、C19 D6 ⚠️、C24 D5 ⚠️ |
| SR | 要求 | 現況 | 最高風險 | 撐它的防線(連線 D) |
|---|---|---|---|---|
| SR-09.1 | 誰能派工、取消、重派、刪紀錄在畫面那頭就守住:只放行任務被指派人與專案管理者 | ✅ 符合 | 🟡 | C20 D5 ✅、C21 D4 ✅ |
| SR-09.2 | agent 資料面 :8443 只對雲端開(客戶防火牆放行雲端來源 IP),安裝文件明寫;demo 模式(`AGENT_AUTH_MODE=… | ⚠️ 部分 | 🔴 | C21 D6 ⚠️、C21 D7 ⚠️ |
| SR-09.3 | 證據的可信副本在雲端:回報一到立刻經資料面取回、算 sha256 落庫;取回失敗要告警;agent 側 S3 若要宣稱不可竄改須開 Obje… | ⚠️ 部分 | — | C22 D3 ⚠️、C22 D2 ⚠️、C22 D5 ⚠️ |
| SR-09.4 | 規則包完整性有信任根:file 型帶 sha256、url 型 agent 端比對雲端下發的指紋,與 file 型走同一條下載→對帳→安全解… | ⚠️ 部分 | 🟡 | C23b D1 ⚠️、C24 D2 ⚠️ |
| SR-09.5 | agent 容器非 root、cap_drop ALL、no-new-privileges、記憶體與 pids 上限;沙箱 imag… |
⚠️ 部分 | — | C23b D2 ⚠️、C08 D6 ⚠️ |
| SR-09.6 | 受檢主機用 agent 專用最小權限帳號,sudoers 只白名單必要二進位;文件指引客戶 | ⚠️ 部分 | 🟡 | C23 D6 ⚠️ |
| SR-09.7 | 掃描前畫面明示「將對以下目標發送掃描流量」;外部位址(非 RFC1918)額外確認;文件說清楚掃描就是攻擊流量、要與客戶資安協調 | ⚠️ 部分 | — | C25 D2 ⚠️、C25 D4 ⚠️ |
| SR | 要求 | 現況 | 最高風險 | 撐它的防線(連線 D) |
|---|---|---|---|---|
| SR-10.1 | Drive:不接受呼叫者直接給雲端檔案編號,先驗檔案屬於這批且呼叫者是專案成員;查不到即 404 不退回讀雲端;OAuth scope 收窄… | ⚠️ 部分 | 🟠 | C14 D1 ⚠️、C14 D6 ⚠️ |
| SR-10.2 | Drive 回呼身分只用於這一次寫入不殘留;Google 帳號一租戶一綁 | ⚠️ 部分 | — | C04 D5 ⚠️ |
| SR-10.3 | Drive webhook 固定時間比對、驗過只排工作不信內容;驗憑證按鈕疊能力點 | ✅ 符合 | ⚪ | C14 D5 ✅ |
| SR-10.4 | 授權序號約 128 位元隨機、有效期、失敗鎖定按來源計且有全站預算;收回的授權檔不因來源是簽發站就信,一律本地驗章+有界解析 | ✅ 符合 | 🟠 | C18 D1 ✅、C18 D4 ✅ |
| SR-10.5 | 外部 AI 輸入守門(私鑰格式 block、要密碼指令 block、個資 redact)與出口守門(回覆再掃一次) | ⚠️ 部分 | 🟡 | C13 D5 ⚠️ |
由 scripts/deliverables/build_sr_matrix.py 從連線頁與對照表產生,手改會被下次重產蓋掉。測試實跑結果回填時在本腳本加欄。