在許多組織中,資安審查仍是上線前最後一道關卡。等到那時才發現漏洞,修復成本是在程式碼審查階段發現的 30-100 倍。Shift-left 解決這個問題的方式,不是拿掉最後檢查,而是把控制點往生命週期的更早階段推進。
為什麼需要 shift-left?
「資安即關卡」模式——在 SDLC 末端放一道人工審查——無法跟上現代發布節奏。當 CI/CD 團隊一天部署多次時,不可能等一位資安工程師審查每個 pull request。常見後果:
- 資安成為瓶頸,開發團隊想方設法繞過。
- 缺陷晚發現,修復成本高,有時甚至需要重做架構。
- 稽核報告厚厚一本,卻無法反映系統真實狀態。
Shift-left 的解法是把末端檢查轉換為持續守門 (guardrail):SDLC 的每個階段都有合適、自動化的資安控制,並在開發者工作的當下就提供回饋。
Shift-left 不是什麼
幾個常見誤解:
- 不是把所有責任推給開發者。開發者寫程式,但資安團隊提供工具、規則集、威脅模型範本與輔導。Champion 模式是擴展知識的關鍵。
- 不是取消最終 pentest。Pentest、red team、bug bounty 仍是抓邏輯漏洞與 0-day 不可或缺的環節。Shift-left 只是減少送到 pentester 手上的基礎缺陷數量。
- 不是一次打開所有工具。同時在 100 個 repo 上開啟 SAST + DAST + SCA + secret scan,只會造成警報疲勞並讓計畫失去支持。
沿著 SDLC 的控制地圖
從左到右的參考對照:
| 階段 | 典型控制 | 工具範例 |
|---|---|---|
| 需求 | 輕量威脅模型、abuse case | OWASP Threat Dragon、Microsoft TMT |
| 設計 | 安全設計審查、資料分級 | Architecture Decision Record (ADR) |
| 程式碼 | Linter、SAST、pre-commit secret scan | Semgrep、Gitleaks、ESLint security plugin |
| 建置 | SCA、SBOM、容器掃描、簽署 | Trivy、Grype、Syft、Cosign |
| 部署 | IaC 掃描、admission policy | Checkov、Kyverno、OPA Gatekeeper |
| 執行階段 | WAF、runtime detection、稽核日誌 | Falco、Cilium Tetragon、SIEM |
| 維運 | 定期 DAST、IR、post-mortem | OWASP ZAP、PagerDuty、Sigma |
如果公司還什麼都沒有,該從哪裡開始?
根據成本/效益權衡的優先順序:
- Secret scanning 在 pre-commit 與 CI 端。便宜、容易快速見效,能阻擋成本最高的事故類型。
- SCA + SBOM,讓你知道系統用了哪些套件。當新 CVE 公布時,能在幾分鐘而非幾天內回答「我們是否受影響?」
- Branch protection + signed commit + pinned action SHA。保護管線本身免於 pipeline attack——成本幾乎為零。
- 對最關鍵的服務做一頁式威脅模型。光是在簡單 DFD 上跑 STRIDE,就能避開一整類設計缺陷。
- 之後再擴展 SAST、DAST、容器與 IaC 掃描。
與 maturity model 連結
要知道自己在哪、下一步怎麼走,可用 OWASP SAMM 2.0 或 BSIMM 對 5-15 個關鍵 practice 評分。目標不是讓所有 practice 都到 Level 3,而是每季挑 2-3 個重點領域從 Level 1 升到 Level 2。搭配可量化的指標與 OKR (漏洞 MTTR、掃描覆蓋率、有威脅模型的服務比例),能讓管理層看見價值並持續投資。
結論
Shift-left 是策略,不是工具。目標是把資安變成自動化守門,有指標、有 owner、在缺陷產生當下就回饋。從幾個快速勝利開始 (secret、SCA、branch protection),再依 maturity 擴展。當一切上手後,資安不再是阻擋發布的關卡,而是管線的自然節奏。
