產業資訊

資安知識25 分鐘閱讀

登入後弱點掃描是什麼?Authenticated Scan 的帳號、Session、角色與安全測試完整指南

匿名掃描看不到登入後頁面、角色權限與租戶隔離。本文完整說明登入後弱點掃描的帳號矩陣、Session 維持、安全邊界、負向授權測試與複驗流程。

登入後弱點掃描不是把一組正式帳密交給工具,然後期待它自行理解系統。真正可靠的 Authenticated Scan,需要先界定授權範圍與資料副作用,準備可識別的測試帳號與角色/租戶矩陣,建立並持續驗證 Session,再用正向與負向案例檢查每一個資源和動作的授權邊界。這篇文章提供一套從準備、執行、監控到修復複驗都能落地的完整方法。

公開網站經核准登入與測試 Session 進入私有應用,並驗證角色及租戶允許與阻擋路徑
01

先講結論:Authenticated Scan 不是「有登入」就算完成

匿名掃描器從公開入口探索網站,能檢查登入頁、公開表單、靜態資源與不需身分的 API;但使用者個人資料、訂單、內部後台、管理功能與多數商業流程通常都位於登入後。若只掃公開區域,報告可能很乾淨,實際上卻只是沒有進入風險最集中的應用範圍。

登入後掃描的第一個成果不是更多弱點,而是可證明的覆蓋:哪一個帳號以哪一種角色登入、Session 在什麼時間有效、走過哪些 Route 與 API、嘗試過哪些不應允許的操作,以及哪些流程因安全或業務限制沒有測試。只有這些證據完整,弱點數量才有解讀價值。

因此成熟做法會把 Authenticated Scan 當成受控的安全測試工作流。它包含書面授權、帳號與資料準備、登入與 Session 健康檢查、角色化探索、負向授權驗證、副作用限制、證據去識別化、修復與複驗;其中任何一環缺失,都可能造成漏掃、誤判或營運事故。

  • 先定義可掃資產、帳號、角色、租戶、時間窗與禁止操作
  • 登入後持續確認 Session 與權限仍有效,不以 HTTP 200 當成成功
  • 正向測試確認本人可做的事,負向測試確認他人、他租戶或低權限角色不能做
  • 測試資料、通知、付款、刪除與外部整合必須有明確隔離或阻擋
  • 報告同時呈現弱點、覆蓋、限制、證據與可重現的修復驗證方式
02

匿名掃描與登入後掃描看見的攻擊面有什麼不同?

兩者不是互斥方案。匿名掃描模擬未取得帳號的外部攻擊者,登入後掃描則模擬已取得合法低權限身分、受邀使用者、內部成員或遭接管帳號後能觸及的範圍。完整檢測通常先建立匿名基線,再逐角色執行登入後測試,最後比較不同身分看到的 Route、物件與動作。

登入後覆蓋不只多了頁面數。當請求帶有 Cookie、Bearer Token 或其他身分資訊,應用會載入特定使用者、組織與租戶資料,也會開放建立、修改、匯出、邀請、審核等動作。這些以物件關係與業務狀態為核心的風險,往往無法從登入頁外推。

匿名與登入後弱點掃描的覆蓋差異
檢測面向匿名掃描登入後掃描仍需人工或專項驗證
公開攻擊面登入、註冊、搜尋、公開 API可重複檢查資產遺漏與業務脈絡
會員/內部功能通常不可見可探索頁面與 API多步驟與例外流程
物件層授權無合法物件基線可交換使用者與物件 ID複雜 ABAC/ReBAC 規則
角色權限看不到角色差異可比較一般、主管、管理者敏感管理決策
租戶隔離通常無租戶 Context可用 A/B 租戶交叉測試資料層、快取與非同步服務隔離
交易與狀態只能碰公開前置步驟能進入草稿、送審、核准等狀態付款、刪除與不可逆操作
03

登入後掃描能證明什麼?又不能證明什麼?

它能證明的是:在指定時間、環境、帳號、角色、資料與工具設定下,測試流程成功抵達的範圍,以及其中觀察到的弱點。它不能證明所有角色、所有狀態、所有租戶、所有 API 或所有業務邏輯都安全;未覆蓋與無法驗證的部分必須明列,而不是被零弱點數隱藏。

自動化特別適合重複檢查輸入點、回應、Cookie、Header、常見注入與已知配置問題,也能協助發現可疑的權限差異。但需要業務意圖才能判斷的流程,例如誰能核准退款、哪種合約可跨部門檢視、停用員工的歷史資料應保留到何時,仍需要安全人員與系統 Owner 共同定義預期結果。

登入後掃描結果的正確解讀
報告訊號可以合理解讀不能直接推論應補的證據
登入成功建立了一個可用 Session私有頁面都已掃描Session 健康與 Route 覆蓋
HTTP 200伺服器回傳成功狀態請求仍有授權回應指紋、身分標記與資料內容
零高風險弱點已測範圍未發現高風險整個應用安全範圍、角色、限制與未測項目
同角色測試通過已驗證特定案例所有物件都正確隔離跨物件、跨狀態與批次端點案例
掃描完成率高工具執行的任務多數完成安全覆蓋充分預期 Route/API 對實際命中率
04

第一道安全控制:先取得書面授權並建立範圍表

登入後掃描會執行比匿名掃描更接近真實使用者的操作,可能建立資料、觸發通知、佔用額度或呼叫第三方服務。開始前應由資產或服務 Owner 明確授權目標網域、API、環境、來源 IP、測試帳號、允許方法、時間窗、速率、聯絡人、停止條件與資料處理方式。NIST SP 800-115 也將規劃、執行、分析與緩解視為完整技術安全評估的一部分。

授權不能只寫『可以掃網站』。若 SSO 會跳到外部 IdP、頁面嵌入付款或客服服務、API 連到另一個網域,掃描器可能自動跟隨連結進入第三方範圍。應建立 Allowlist 與 Denylist,預設不對未明確列入的主機送出主動測試。

登入後掃描範圍文件至少要回答的問題
範圍欄位必須確認範例決策Owner
資產網域、子網域、API 與 IP只允許 app 與 api,不跟隨 IdP系統 Owner
身分帳號、角色、租戶與權限A/B 兩租戶各兩個一般帳號IAM/應用 Owner
動作GET、POST、更新、刪除與上傳允許測試資料 CRUD,禁止付款業務 Owner
流量來源、速率、並行與時間窗固定來源 IP、每秒上限與夜間窗SRE/網路團隊
資料可用資料與保存期限僅使用合成資料,證據保存 90 天資料 Owner
應變停止條件與聯絡路徑錯誤率或通知量超標立即停止Incident Contact
05

正式環境還是測試環境?依目標與副作用分層

測試環境便於準備帳號、覆蓋角色與控制副作用,但只有在版本、設定、功能旗標、身分整合、資料模型與網路邊界接近正式環境時,結果才有代表性。正式環境能驗證真實部署與控制,卻必須採用更保守的 Payload、速率與操作範圍。

實務上可分三層:在 CI 或隔離環境做廣泛主動測試;在類正式環境做完整登入、角色、租戶與業務流程;在正式環境做低風險驗證、配置觀測與經核准的精準複驗。不要為了方便在測試環境關閉 WAF、MFA 或授權檢查後,仍把結果當成正式風險結論。

不同環境的建議測試強度
環境主要目的可接受操作不得忽略
CI/短生命週期環境快速回歸與規則驗證高自動化、合成資料、重建環境與正式版本及設定差異
Staging/Pre-production完整流程與權限矩陣受控 CRUD、上傳、通知 StubSSO、Feature Flag、資料模型一致性
Production真實部署與精準複驗低速率、唯讀優先、指定測試資料營運監控、停止條件與第三方成本
06

帳號矩陣怎麼設計?至少要能比較人、角色與租戶

只提供一個 Administrator 帳號,是登入後掃描最常見也最嚴重的設計缺陷。它或許能讓工具抵達較多頁面,卻無法驗證一般使用者是否能越權,也無法區分功能本來就允許,還是授權檢查缺失。

最低可用矩陣通常包含同角色兩個帳號,用來交換物件 ID 驗證水平越權;至少一組高低權限角色,用來驗證垂直越權;若為 SaaS 或共享平台,再加入另一租戶的同角色帳號,驗證租戶隔離。高敏感系統還應準備停用、鎖定、權限剛變更與邀請尚未完成等生命週期狀態。

可執行的測試帳號矩陣
帳號角色租戶持有測試物件主要負向案例
A-user-1一般使用者Tenant AObject A1嘗試讀寫 A-user-2 與 Tenant B 物件
A-user-2一般使用者Tenant AObject A2驗證同角色不同擁有者隔離
A-manager主管/審核者Tenant AApproval A一般使用者不得呼叫主管動作
A-admin租戶管理者Tenant ATenant A 設定不得取得平台或 Tenant B 權限
B-user-1一般使用者Tenant BObject B1Tenant A Session 不得讀寫
disabled-user已停用使用者Tenant A歷史資料舊 Session、Token 與 API Key 應失效
07

為什麼不能只用 Super Admin?最小權限才看得見邊界

OWASP Authorization Cheat Sheet 建議最小權限、預設拒絕,並在每一個請求驗證權限。掃描若只用最高權限帳號,幾乎所有成功回應都可能是預期行為,工具沒有足夠對照組判斷越權;同時帳號一旦外洩或 Payload 失控,影響範圍也最大。

應以低權限帳號作為主要掃描身分,管理者帳號只用於確實需要的後台範圍,並設定更嚴格的 Endpoint Allowlist。若某功能只能由極高權限角色執行,也應為掃描建立專用角色,只授予必要範圍,而不是共用日常營運的真實管理者。

  • 每個掃描帳號只授予該次測試需要的最小權限
  • 不同角色使用獨立 Scan Profile、Cookie Jar 與報告標籤
  • 管理者測試限制可修改設定、成員、金鑰與整合的端點
  • 測試前後比對權限,避免掃描期間發生 Privilege Drift
  • 測試結束立即停用或回收帳號、Session、Token 與 API Key
08

測試資料與副作用:先定義什麼可以建立、修改與刪除

登入後爬行器會尋找表單、按鈕與 API;如果沒有副作用控制,可能送出邀請、發布內容、刪除資料、重設密碼、建立訂單、呼叫簡訊或消耗第三方額度。『使用測試帳號』不等於操作就是安全的,因為測試帳號仍可能連到真實租戶、通知管道與帳務系統。

最安全做法是建立可辨識的合成資料集與專用測試租戶,將郵件、簡訊、付款、Webhook 與外部整合指向 Sandbox 或 Sink。若正式環境無法完全隔離,使用唯讀模式與 URL/方法 Denylist,對必要寫入採用精準案例而非自動探索。

登入後掃描的副作用控制表
操作類型預設策略允許條件驗證/清理
讀取允許測試資料不得含非測試個資檢查資料隔離與證據遮罩
建立/更新限專用資料集可回滾且有唯一測試標記掃描後比對並清除
刪除預設禁止僅隔離環境與可重建物件確認軟刪除、恢復與 Audit Log
付款/額度禁止真實交易Sandbox、零金額或 Provider Mock核對無請款與帳務紀錄
通知/邀請導向 Sink核准收件網域與速率確認無外部寄送
檔案/匯出限制格式與大小合成內容、隔離儲存刪除檔案與暫存連結
09

先盤點登入機制:表單、SSO、MFA、API Token 與 mTLS

掃描器能否建立身分,取決於實際登入流程。傳統表單可能只需提交帳密並擷取 Cookie;SPA 常由前端呼叫 API 取得 Token;OIDC 或 SAML 會跨站導向 IdP;MFA 可能需要 TOTP、Push、Passkey 或裝置綁定;API 也可能使用 OAuth Client Credentials、API Key 或 mTLS。每種機制的自動化方式與安全邊界不同。

不要透過停用 MFA、繞過 CAPTCHA 或在前端硬塞 Token 來『讓掃描跑起來』。應由 IAM 與安全團隊建立經核准的測試路徑,例如測試 IdP、專用 Conditional Access Policy、受限來源 IP、短效測試 Token 或人工登入後安全移交 Session。任何例外都要限時、限範圍、可稽核並在測試後撤銷。

常見登入機制與可靠自動化方式
機制建議做法健康檢查常見失敗
HTML Form登入序列擷取動態欄位與 Cookie登入後專屬元素與身分 APICSRF Token 過期、隱藏欄位遺漏
OIDC/SAML SSO核准瀏覽器流程或測試 IdPCallback、Nonce/State 與最終 Session只重播 Callback 或共用 Session
MFA/Passkey專用測試策略或人工 Bootstrap第二因素完成且 Session 綁定正確直接停用正式控制
Bearer Token短效、最小 Scope 的專用 Token呼叫身分與 Scope 檢查端點Token 過期後仍繼續掃
API Key專用 Key、來源與 Scope 限制權限探測與 Audit Log共用正式整合 Key
mTLS專用短期 Client Certificate憑證鏈、Subject 與授權 Context私鑰長期留在掃描節點
10

Session 健康檢查是必要 Gate:不要把登入頁當成已登入頁

掃描器最危險的靜默失敗,是 Session 過期後被導回登入頁,卻因回應仍是 200 OK 而繼續執行。最後任務顯示完成,實際大部分時間都在重複掃登入畫面。健康檢查必須確認內容與身分,而不只是 Status Code。

每次開始、定期執行與敏感階段前,都應呼叫穩定的 Auth Check,例如 `/me` 或登入後專屬頁面,驗證使用者 ID、角色、租戶與預期標記;同時設定失敗指紋,例如登入表單、SSO Redirect、`401`、`403` 或匿名導覽。健康檢查失敗時應暫停、重新登入並隔離失效期間的結果。

Session 健康 Gate 的判定條件
檢查成功條件失敗訊號處置
身分回傳預期 Test User ID匿名或其他帳號立即停止並清除 Cookie Jar
角色/租戶與 Scan Profile 完全一致權限或 Tenant 改變隔離結果並通知 Owner
內容指紋登入後專屬元素存在登入表單或 SSO 頁面重新建立 Session
狀態與跳轉無未預期 Redirect401、403、302 到 IdP標記覆蓋中斷
有效時間Token 尚有安全餘裕即將過期或 Refresh 失敗在 Checkpoint 更新
權限探針允許與拒絕案例皆符合所有請求突然同樣回應判定 Session/WAF 異常
11

Cookie 與 Token 要怎麼保存、更新與隔離?

OWASP 指出 Session ID 或 Token 在有效期間近似於使用者完成的最強驗證,因此掃描憑證與 Session 都應視為 Secret。每個帳號使用獨立 Cookie Jar;儲存時加密;限制可讀取的掃描節點與人員;傳輸全程使用 TLS;Log、截圖、HAR 與報告不得保留完整 Cookie、Authorization Header、Refresh Token 或 API Key。

若應用在登入、重新驗證或權限提升後輪替 Session,掃描流程必須接收新值而不能固定重播舊 Cookie。若 Access Token 需要 Refresh,應在受控步驟執行並記錄時間,不要把長效 Refresh Token 散布到多個 Worker。所有 Session 在測試結束後都應從伺服器端失效,而不只是刪除本機檔案。

  • 每個角色與帳號使用獨立憑證、Session 與結果命名空間
  • Secret 只在執行時注入,不寫入程式碼、設定檔或任務輸出
  • 報告僅保留 Token 雜湊或末段指紋,足以關聯但無法重播
  • Session 更新、逾時、登出與撤銷都要有明確測試案例
  • 測試結束撤銷伺服器端 Session、Refresh Token、API Key 與憑證
12

角色化探索:每一個身分都要有自己的攻擊面清單

登入後不應把所有角色的 URL 混在同一份 Crawl Queue。應先以每個 Scan Profile 分別建立 Route、API、GraphQL Operation、表單、檔案與 WebSocket 清單,再比較交集與差異。這樣才能知道某管理 Endpoint 是只在前端隱藏,還是真的由伺服器拒絕低權限請求。

覆蓋率分母也不能只用掃描器自己發現的網址。從 OpenAPI、GraphQL Schema、前端 Bundle、Route Manifest、瀏覽器 Network、產品功能清單與伺服器 Access Log 建立預期清單,再對照實際命中;否則掃描器沒有發現的功能會同時消失在分子與分母,看起來仍是百分之百。

角色化攻擊面清單的資料來源
來源能補到的範圍需注意輸出
瀏覽器 Crawl可見頁面、表單與互動SPA 狀態與條件式 UIRoute 與動作
OpenAPI/GraphQL未被 UI 使用的 API版本、Introspection 與授權Method/Operation 清單
前端 Bundle/Route隱藏路徑與參數不代表後端一定開放候選 Endpoint
產品與權限矩陣預期角色能力文件可能落後正向/負向預期
Access Log/APM實際請求與非同步服務個資與採樣偏差未命中差距
人工業務流程多步驟與例外狀態需要可重複資料Workflow Test Case
13

授權測試的核心:正向與負向案例必須成對

只確認某帳號能打開自己的資料,是功能測試,不足以證明授權安全。每個敏感資源與動作至少要有一個 Allow Case 與多個 Deny Case:同角色的其他使用者、較低權限角色、其他租戶、停用帳號、缺少必要屬性或處於錯誤業務狀態。

OWASP 建議預設拒絕並對每一個請求驗證權限。測試時要修改 URL Path、Query、Body、Header、GraphQL Variable、批次項目、檔案 ID 與非同步 Job ID,而不是只看前端按鈕是否隱藏。拒絕結果也不能只看 403;應確認資料未改變、事件未送出、快取未洩漏且 Audit Log 合理。

正向與負向授權案例矩陣
邊界正向案例負向案例成功判定
物件擁有者A-user-1 讀寫 A1A-user-1 讀寫 A2拒絕且 A2 無變更
角色A-manager 核准申請A-user-1 呼叫核准 API伺服器端拒絕
租戶A-user-1 讀 Tenant A改 Tenant ID 讀 Tenant B無跨租戶資料或快取
狀態草稿可編輯已結案仍送更新狀態規則阻擋
欄位可改顯示名稱加入 role/owner/price 欄位敏感欄位未被接受
批次更新自己的一組 ID混入他人物件 ID整批安全失敗或逐筆拒絕
14

水平、垂直與跨租戶越權要分開驗證

水平越權發生在權限等級相同但擁有者不同,例如會員 A 讀到會員 B 的發票;垂直越權是低權限角色取得主管或管理功能;跨租戶越權則跨過組織邊界,影響可能擴大到多個客戶。三者需要不同帳號與資料對照,不能用單一測試取代。

多租戶系統還要檢查 Tenant Context 是否從已驗證 Session 推導,而不是信任客戶端送入的 Tenant ID。測試範圍應包含資料庫查詢、快取、物件儲存、搜尋索引、匯出檔、背景工作、Webhook 與 Audit Log,因為主畫面隔離正確,不代表所有資料路徑都正確。

15

Session 生命週期也要掃:登入、升權、逾時、登出與撤銷

登入後掃描不應只借用 Session,還要驗證 Session 本身。登入或重新驗證後應輪替識別值;閒置與絕對逾時應由伺服器端執行;登出後舊 Cookie 或 Token 不得恢復私有內容;密碼重設、帳號停用、角色移除與高風險事件後,也要確認既有 Session 是否依政策撤銷。

若使用 SSO,要分清應用 Session、IdP Session、Access Token 與 Refresh Token。登出其中一層不一定終止其他層,測試報告應說明實際生命週期,而不是用『已登出』概括。OWASP WSTG 也建議用舊 Session 值重新存取多個敏感頁面,確認伺服器端狀態確實失效。

Session 生命週期測試案例
事件預期控制測試方式失敗風險
登入成功Session ID 輪替比較登入前後識別值Session Fixation
權限提升/重驗新 Session 與新權限綁定重播舊值與低權限值升權混淆
閒置/絕對逾時伺服器端拒絕舊 Session依時序重送敏感請求長期劫持窗口
登出伺服器端失效恢復舊 Cookie、重新載入 API登出無效
密碼重設/停用依政策撤銷全部或高風險 Session以既有裝置再次操作被接管帳號持續存取
角色移除舊 Token 不保留權限重播升權前後請求權限變更延遲
16

CSRF 與敏感操作:有 Cookie 的請求不代表使用者同意

使用 Cookie 維持登入的網站,瀏覽器可能在跨站請求中自動帶上憑證。對會改變資料、權限、付款或帳號狀態的操作,應驗證 CSRF Token、SameSite、Origin/Referer 與重新驗證等控制是否依威脅模型正確部署。掃描器也要能更新一次性 Token,否則容易把流程失敗誤認成安全。

高風險交易不能只依一般 Session 判定。變更密碼、MFA、主要信箱、付款資訊、管理員與 API Key 等操作,應確認使用者重新驗證或執行交易授權,且關鍵資料由伺服器端綁定,不能透過客戶端參數繞過。

17

API、GraphQL 與 SPA:不要只掃瀏覽器渲染後的畫面

現代前端只是 API Client。登入後掃描應保存實際 Request Template、認證 Header、GraphQL Operation 與變數,從 OpenAPI、Schema、瀏覽器 Network 與行動端流量補齊 UI 沒走到的端點。每個 API 測試仍要綁定正確角色與租戶,不能把所有 Token 混用。

GraphQL 需特別檢查 Resolver 與欄位層權限、Alias/Batch、Nested Query、Mutation 與 Node ID;REST 則要覆蓋 Path ID、Filter、排序、批次、匯出與非同步 Job。若只確認 Endpoint 需要登入,卻未檢查使用者是否能操作那個特定物件,仍可能漏掉 BOLA。

登入後 API 掃描的額外檢查面
面向測試輸入授權問題安全判定
REST ObjectPath/Query/Body ID是否屬於該使用者與租戶每請求驗證 Ownership
批次 API混合允許與禁止 ID單筆檢查是否被跳過不得部分洩漏或越權寫入
GraphQLNode ID、Alias、Nested、MutationResolver/Field 是否逐層授權深層資料不因父層允許而外洩
非同步 JobJob ID、下載 URL建立者與讀取者是否綁定狀態與結果同樣受控
Webhook/IntegrationDestination、Secret、Tenant可否修改他人整合目的地與 Secret 不跨租戶
Export/FileFile ID、Signed URL連結是否可猜或過久短效且再次驗證授權
18

登入後弱點掃描的 10 階段標準流程

這套流程把安全前提放在掃描之前,把 Session 與覆蓋檢查放在執行期間,再把修復複驗與排程放在結果之後。它的目標不是讓工具盡可能多點按鈕,而是讓每個測試動作都能回答『用誰的身分、碰哪個資源、預期允許或拒絕、是否有副作用、如何證明』。

Authenticated Scan 十階段交付物
階段核心工作必要 Gate交付物
01 授權確認資產、方法、時窗與停止條件Owner 書面核准Scope Sheet
02 身分建立角色/租戶/狀態矩陣最小權限且可追蹤Account Matrix
03 資料準備合成物件與外部服務隔離無真實個資與不可逆副作用Test Data Plan
04 登入完成表單、SSO、MFA 或 Token 流程不繞過正式安全控制Login Profile
05 Session驗證身分、角色、租戶與有效時間健康檢查通過Session Evidence
06 探索依角色建立頁面與 API 清單預期範圍對實際覆蓋Coverage Map
07 負向授權跨使用者、角色、租戶與狀態測試資料與動作都被拒絕Authorization Matrix
08 受控操作驗證 CRUD、上傳與交易邊界Denylist、速率與清理有效Side-effect Log
09 報告去識別化證據、風險與修復方向可重現且不洩漏 SecretFinding Package
10 複驗部署確認、精準重測與排程回歸原案例通過且無退化Closure Evidence
從授權範圍、帳號角色矩陣、隔離資料、登入與 Session 健康到負向授權、受控操作、報告與複驗的十階段流程
登入後掃描不是單一登入腳本,而是從授權、身分、Session、角色覆蓋到複驗閉環的十階段工作流。
19

WAF Allowlist 與掃描白名單怎麼用才不會製造假安全?

固定掃描來源 IP 有助於辨識流量、套用速率與避免被一般 Bot Policy 阻斷,但不應無條件繞過所有正式安全控制。若白名單讓掃描器跳過身份驗證、授權、輸入驗證或 API Gateway Policy,測到的是不存在於正式攻擊路徑的另一套系統。

建議只調整會阻止合法測試執行的流量治理,例如明確速率、Bot Challenge 或觀測標記,並保留另一組不白名單的低風險檢查,用來驗證邊界控制真實行為。報告應列出測試來源獲得哪些例外、哪些控制仍啟用,以及這些差異對結果的影響。

20

可觀測性與緊急停止:掃描器也要像正式工作負載被監控

每個掃描任務應有唯一識別碼,並讓 Reverse Proxy、WAF、應用、身分系統與資料庫 Log 能關聯來源 IP、測試帳號、租戶、Request ID 與時間窗。這不只是追錯,也能確認請求真的到達預期服務、授權拒絕發生在哪一層,以及是否觸發異常通知或背景工作。

停止條件要能自動化,例如錯誤率、延遲、CPU、Queue、通知量、帳號鎖定、第三方費用或真實資料變動超過門檻。安全團隊、SOC、SRE 與系統 Owner 應有單一聯絡路徑;停止後先保存必要證據、撤銷 Session,再分析是否能安全恢復。

登入後掃描執行期間的監控與停止條件
訊號基線停止條件範例負責人
可用性正常錯誤率與 P95 延遲5xx 或延遲持續超標SRE
身分登入成功率與鎖定量測試帳號外的鎖定增加IAM
資料專用測試物件變更非測試資料被修改Data/App Owner
通知Sink 收件量外部收件者或簡訊出現業務 Owner
第三方Sandbox 呼叫與成本正式 Provider 或費用被觸發Integration Owner
安全控制預期 WAF/SOC 事件未預期封鎖或 IncidentSOC
21

證據如何保留又不洩漏帳密、Token 與客戶資料?

可重現性需要保存 Request、Response、身分 Context、物件關係與預期結果,但原始證據很可能包含 Cookie、Authorization Header、個資、檔案、內部網址與租戶識別資訊。應在收集端就進行最小化與遮罩,不要等到報告完成才人工塗黑。

每筆 Finding 應保留足以證明問題的最小片段:測試帳號代碼、角色、租戶代碼、已去識別的資源 ID、Request Method/Path、必要參數、遮罩後回應、時間、Correlation ID 與資料是否真的變更。完整原始資料若確有必要,應加密、限權、設定保存期限並與一般報告分離。

弱點證據的最小化與遮罩規則
資料報告中保留必須遮罩/移除安全關聯方式
帳號測試代碼、角色、租戶真實姓名、信箱、密碼Account Matrix ID
Session/Token類型、Scope、時間、末段指紋完整 Cookie、JWT、Refresh Token不可逆雜湊
RequestMethod、Path、關鍵參數Secret、個資、完整內網資訊Request/Correlation ID
Response證明越權的最小欄位無關客戶資料與完整檔案欄位遮罩與資料代碼
截圖必要 UI 與結果瀏覽器列、通知、姓名、網址 Token安全標註版本
Log時間、事件、決策與主體原始 Credential 與敏感 Payload集中 Log 查詢 ID
22

報告至少要交付覆蓋、限制、風險與修復驗證

只列出弱點名稱與嚴重度,無法讓工程團隊重現登入後情境。報告要說明哪個角色與租戶、使用哪個自己的物件作為正向基線、如何替換成他人物件、伺服器實際回傳什麼,以及資料或狀態是否改變。修復建議則要落到伺服器端授權點,而不是只建議隱藏按鈕或使用不可猜的 ID。

同時應提供 Coverage Appendix:每個 Scan Profile 的登入健康、發現與命中 Route、API Operation、跳過項目、Session 中斷、阻擋原因與環境差異。這能避免管理層把未測範圍誤解為無弱點,也讓下一次排程能量化覆蓋是否退化。

登入後弱點報告的必要欄位
欄位要回答的問題最低證據修復驗收
身分 Context誰以什麼角色與租戶測試?Account Matrix ID同矩陣重新測試
資源關係物件屬於誰?Owner/Tenant 對照每請求 Ownership Check
操作與狀態什麼 Method、欄位與流程狀態?遮罩 Request/Response正向可用、負向拒絕
影響能讀、改、刪、執行或跨租戶嗎?最小資料與狀態證明影響路徑被切斷
覆蓋限制哪些角色、API 或動作未測?Coverage Map/Exception補測或正式接受限制
複驗修復是否部署到正確環境?版本、時間與案例結果關閉證據與回歸安排
23

修復與複驗:確認的是授權決策,不只是回應碼改變

登入後弱點修復通常涉及 Policy、Middleware、資料查詢、Tenant Filter、物件 Ownership、Token Scope 或流程狀態。複驗先確認修復版本與設定已部署,再重跑原始 Allow/Deny Case。正向案例仍須可用,負向案例要在伺服器端拒絕,且資料、快取、背景工作與 Audit Log 都符合預期。

若修復只把 200 改成 403,卻已先執行資料更新;或 UI 顯示錯誤,但 API 仍回傳敏感欄位,都不能關閉。也要測相鄰 Endpoint、批次 API、匯出、舊版本與行動端路徑,避免相同根因在另一個入口持續存在。

  • 保留原始 Request Template 與角色/物件對照,精準重現
  • 先跑正向案例確保功能沒有被一律拒絕
  • 再跑同使用者、跨使用者、跨角色與跨租戶負向案例
  • 確認資料庫、快取、Queue、Webhook 與 Audit Log 都沒有副作用
  • 將根因轉成單元、整合與排程安全回歸測試
24

排程掃描與 CI/CD:Session 失效時要 Fail Closed

持續掃描的價值在於網站、API、權限與依賴變動後能重新驗證,但排程不代表把同一個長效帳密永久放在工具裡。建議使用 Vault 或受管 Secret 注入短效憑證,任務開始時建立 Session,結束時撤銷;Account Matrix 與 Test Data 由程式化流程重建或確認。

若登入、MFA、Session 健康或角色確認失敗,任務應標記 Coverage Failure,而不是降級成匿名掃描後仍顯示成功。CI/CD 可先跑高風險 Route、API 與歷史 Finding 的精準回歸;完整角色矩陣則依風險每日、每週或重大版本執行。

持續登入後掃描的建議頻率
觸發測試範圍Session 策略失敗處置
每次 Pull Request關鍵 API 與歷史回歸案例短效測試 Token阻擋合併或要求例外
每日/每週主要低權限角色與公開資產任務時登入、完成即撤銷Coverage Alert
重大版本完整角色/租戶與業務流程重新建立所有 Scan ProfileRelease Gate
權限模型變更Authorization Matrix 全量新舊角色並行驗證Policy Review
SSO/MFA 變更登入、輪替、逾時與登出經核准測試策略IAM Owner 驗收
重大弱點修復原案例與同根因相鄰路徑精準 Session/資料狀態不得只看通用掃描結果
25

最常見的十個失敗模式

登入後掃描失敗很少只是工具不支援,更多時候是安全與業務前提沒有被工程化。以下問題應在每次任務的 Preflight 與 Postflight 自動檢查,並出現在 Coverage Dashboard,而不是等到報告零弱點時才人工追查。

Authenticated Scan 常見失敗與修正
失敗模式表面現象真實問題修正
只有 Admin頁面很多無法驗證低權限邊界建立帳號矩陣
Session 過期任務仍完成後半段都在掃登入頁內容式健康 Gate
共用 Cookie Jar角色結果混亂Session 互相覆蓋每 Profile 完全隔離
只看 200/403誤判成功或安全回應內容與副作用未驗證身分指紋與資料比對
沒有同角色雙帳號IDOR 無基線無法區分本人與他人資料A1/A2 交叉測試
繞過 MFA/WAF掃描跑得順測到不同安全邊界核准且可稽核的測試路徑
用真實資料證據很完整個資外洩與營運風險合成資料與收集端遮罩
未限制副作用出現大量信件/訂單爬行器執行真實操作Denylist、Sandbox、Sink
只掃 UI頁面覆蓋高API/GraphQL 漏測Schema、Log 與 Network 補齊
修完不複驗Ticket 已關閉部署或相鄰入口仍有問題原案例與回歸案例驗收
26

30/60/90 天導入路線圖

第一階段不必一次涵蓋所有系統。先挑一個有明確 Owner、可建立測試帳號與資料、且登入後功能具有業務價值的網站,建立可重複的最低流程;接著補齊角色與租戶矩陣、API 覆蓋與安全監控;最後才擴到持續排程、CI/CD 與治理指標。

登入後弱點掃描 90 天落地計畫
期間主要工作完成標準建議指標
0–30 天授權模板、單一低權限角色、合成資料、Session Gate可穩定登入且證明私有 Route 覆蓋登入成功率、Session 中斷、命中 Route
31–60 天同角色雙帳號、管理角色、第二租戶、API 清單水平/垂直/跨租戶矩陣可重跑Authorization Case 覆蓋與失敗率
61–90 天Secret Vault、排程、監控、複驗與 CI 回歸失敗會告警、修復有關閉證據Coverage Drift、重開率、複驗時間
27

上線前最後檢查清單

以下清單適合成為每次登入後掃描的啟動 Gate。若其中任一高風險條件未知,不應用『先跑看看』取代確認;應指定 Owner、到期時間與替代控制。

  • 已取得書面授權,並列明目標、第三方排除、來源、速率、時間窗與停止條件
  • 每個 Scan Profile 的帳號、角色、租戶、權限與生命週期均已確認
  • 至少具備同角色雙帳號、不同權限帳號;多租戶系統另有第二租戶
  • 合成測試資料可識別、可回滾,通知、付款與外部整合已導向 Sandbox 或 Sink
  • 登入、MFA、Token 與 Session 更新採核准流程,沒有為掃描直接關閉正式控制
  • Session 健康檢查能驗證使用者、角色、租戶、內容指紋、逾時與重新登入
  • Cookie、Token、API Key 與憑證由 Secret Store 注入,Log 與報告不含可重播值
  • 正向與負向授權案例包含跨使用者、跨角色、跨租戶、欄位、批次與流程狀態
  • 正式環境已限制刪除、付款、通知、上傳與其他不可逆操作
  • SRE、SOC、IAM 與系統 Owner 能在執行期間監控並立即停止
  • 報告會呈現角色化覆蓋、Session 中斷、未測項目、環境差異與證據限制
  • 修復後以原始帳號/物件矩陣複驗,並將同根因案例加入持續回歸
28

Redmark 如何把登入後掃描變成可持續流程

Redmark 協助團隊將網站資產、掃描任務、風險證據與修復追蹤集中管理。規劃登入後檢測時,應先由團隊確認合法授權、測試帳號、角色與資料邊界,再依實際登入機制建立可重複的掃描流程;掃描結果則以風險與可執行修復方向整理,讓工程與管理團隊知道哪些問題要先處理。

工具可以降低重複設定與排程成本,但不應取代系統 Owner 對角色、租戶與業務規則的定義。最好的導入方式,是先從一個重要網站與一組低權限帳號開始,建立 Session 健康、覆蓋與複驗標準,再逐步加入更多角色、API 與持續排程。

REF

資料來源

Redmark Editorial
START WITH ONE WEBSITE

從第一個網站開始,建立持續弱掃流程

以更低的執行成本持續檢測網站弱點,更早發現問題,也讓每一次修復都有清楚的方向。

免費開始掃描