⚠️ 免責聲明
本文為學習筆記與模擬教學,引用國際標準(CISA、NIST、ISO、OWASP 等)、公開新聞與研究報告整理。非正式教材或考試指定用書,實際應用請依組織需求、法規與合規調整。
原則 | 說明 | 來源 |
---|---|---|
最小權限 (Least Privilege) | 只給最少必要權限 | NIST SP 800-160, OWASP |
防禦縱深 (Defense in Depth) | 多層防護避免單點失效 | ENISA, UK Secure by Design |
預設安全 (Secure Defaults) | 系統出廠即安全,避免使用者需自行強化 | OWASP Cheat Sheet |
完整中介 (Complete Mediation) | 每次請求皆重新驗證 | Red Hat Secure Design |
錯誤安全 (Fail-Secure) | 系統錯誤時仍保持安全狀態 | OWASP |
開放設計 (Open Design) | 安全性不依靠隱密,而是透明審核 | Kerckhoffs’ Principle |
持續保證 (Continuous Assurance) | 安全測試與改善要持續 | CISA, ISO 27034 |
最小攻擊面 (Minimize Attack Surface) | 減少不必要接口與功能 | OWASP, NIST |
Secure by Design 是設計哲學,SSDLC(Secure Software Development Life Cycle) 則是把安全嵌入 需求 → 設計 → 開發 → 測試 → 部署 → 維運 的完整流程。兩者結合,能確保「安全從設計出發,並貫穿全生命週期」。
階段 | 安全活動 | 工具/方法 | 驗證點 |
---|---|---|---|
規劃 / 需求 | 定義安全需求、威脅建模 | STRIDE, PASTA | 是否有安全需求文件? |
設計 | 安全架構審查、接口最小化 | Secure Design Review | 是否有最小權限、錯誤安全設計? |
開發 | 安全程式碼規範、SAST | SonarQube, GitHub CodeQL | Pull Request 有 SAST 檢查 |
測試 | DAST / IAST、滲透測試 | OWASP ZAP, Burp Suite | 是否找到高危漏洞 |
部署 | CI/CD 安全 Gate、簽章驗證 | Sigstore, Vault | Release 有簽章與掃描 |
維運 | 日誌監控、漏洞管理、金鑰輪替 | SIEM, SOAR, SCA | 是否符合 CISA KEV 修補要求 |
領域 / 公司 | 應用 / 啟示 | 關鍵設計元素 |
---|---|---|
Datadog | 平台內建安全控管 | Threat modeling、最小權限 |
AWS | 基礎設施設計以「假設被攻擊」為前提 | 區域隔離、權限最小化、監控 |
工控 / 能源 | ICS 設計納入安全鏈路 | 通訊安全、模組隔離 |
自動駕駛 | 車用通訊設計安全內建 | 控制器、感測器防護 |
近期在社群上有案例指出:某 AI 課程老師在示範 Vibe Coding + Google API 時,因金鑰管理不當,導致所有請求流量都被計入自己帳單,最後被扣款一萬多元。雖然未見主流媒體驗證,但這案例提醒我們:即使是教學或 prototyping 階段,也必須將 API Key 管理與授權控制納入設計。
風險點:
Step 1. 把所有金鑰放進
.env
檔案。
Step 2. 禁止 AI 讀寫.env
。
Step 3. 建立.env.sample
,提供假值作為 AI / 學生參考。
.env
加入 .gitignore
,並設權限 chmod 600 .env
。.env.sample
提供空值或 placeholder,讓 AI 參考。print
/ console.log
輸出金鑰。爽度做法 | 安全補強 | 平衡點 |
---|---|---|
Demo 直接用 API Key | 使用限制型 Key,並設計 .env.sample |
Demo 快速,風險降低 |
快速產生原型 | 用 Sandbox / 測試金鑰 | 保留實驗感,避免真實成本 |
不做版本控管 | 仍推 Private Repo + SCA | 即興寫,但留痕與檢查 |
直接上線 | CI/CD pipeline 加 Gate | 爽 deploy,但不放漏洞上線 |
全靠爽寫 | 插入 AI 安全提示 | 流暢寫程式,也有安全提醒 |