[NIST] 002 NIST CSF 2.0 完整指南:用夜市攤販的角度理解企業資安框架
前言:為什麼你需要認識 NIST CSF?
想像一下,你在饒河夜市經營一個滷味攤。你會擔心什麼?
- 有人偷走你的獨家滷汁配方(機密性)
- 有人偷偷在你的滷汁裡加料(完整性)
- 攤位突然停電無法營業(可用性)
企業的資訊安全,其實就跟你守護滷味攤一樣!而 NIST CSF(Cybersecurity Framework,網路安全框架) 就是美國國家標準暨技術研究院(NIST)提供的一套「攤位防護指南」,告訴你應該從哪些面向來保護你的數位資產。
💡 小知識:NIST CSF 2.0 於 2024 年 2 月發布,是自 2014 年首版以來最重大的更新,新增了「治理(GOVERN)」功能,強調資安不只是 IT 部門的事,而是整個組織的責任。
什麼是 NIST CSF?
NIST CSF 是一套高階的網路安全成果分類架構,幫助任何組織——不論規模大小、產業類型或資安成熟度——都能夠:
- 理解 自身的資安風險
- 評估 目前的資安狀態
- 排序 應該優先處理的事項
- 溝通 內外部的資安需求
CSF 的三大核心元件
| 元件 | 說明 | 夜市比喻 |
|---|---|---|
| CSF Core(核心) | 六大功能、類別、子類別的分類架構 | 攤位經營的六大守則 |
| CSF Profile(組織概況) | 描述組織目前/目標的資安狀態 | 你的攤位現在做到哪些?目標要做到哪些? |
| CSF Tiers(成熟度層級) | 評估資安治理與管理的嚴謹程度 | 從路邊攤到連鎖品牌的進化等級 |
CSF 核心:六大功能詳解
NIST CSF 2.0 將資安工作分成六大功能(Functions),就像經營攤位的六個面向:
🎯 功能一覽圖
┌─────────┐
│ 治理 GV │ ← 新增!在中心統籌一切
└────┬────┘
│
┌────────┼────────┐
│ │ │
┌───▼───┐ ┌──▼──┐ ┌──▼───┐
│識別 ID│ │保護 │ │偵測 │
│ │ │ PR │ │ DE │
└───────┘ └─────┘ └──────┘
│ │ │
└────────┼────────┘
│
┌────────┼────────┐
│ │
┌───▼───┐ ┌──▼───┐
│回應 RS│ │復原 │
│ │ │ RC │
└───────┘ └──────┘
1️⃣ 治理 GOVERN(GV)- 老闆的經營哲學
定義:建立、溝通並監控組織的資安風險管理策略、期望與政策。
這是 CSF 2.0 新增的功能,強調資安必須從高層開始重視。
夜市比喻:
- 老闆決定「食安第一」的經營理念
- 規定所有員工都要戴手套、圍裙
- 定期檢查是否有人違規
包含類別:
| 類別代碼 | 類別名稱 | 說明 |
|---|---|---|
| GV.OC | 組織脈絡 | 了解組織的使命、利害關係人期望 |
| GV.RM | 風險管理策略 | 建立風險容忍度與處理方式 |
| GV.RR | 角色、責任與權限 | 誰負責什麼? |
| GV.PO | 政策 | 書面的資安規定 |
| GV.OV | 監督 | 確保策略有被執行 |
| GV.SC | 供應鏈風險管理 | 管理供應商帶來的風險 |
2️⃣ 識別 IDENTIFY(ID)- 盤點你的家當
定義:了解組織目前的資安風險。
夜市比喻:
- 列出攤位有什麼值錢的東西(食材、設備、秘方)
- 了解誰是供應商、誰是常客
- 評估可能遇到的風險(小偷、食安問題、天災)
包含類別:
| 類別代碼 | 類別名稱 | 實例 |
|---|---|---|
| ID.AM | 資產管理 | 伺服器清單、軟體清單、資料分類 |
| ID.RA | 風險評估 | 弱點掃描、威脅分析 |
| ID.IM | 改善 | 從經驗中學習、持續優化 |
3️⃣ 保護 PROTECT(PR)- 裝好門鎖和監視器
定義:使用防護措施來管理組織的資安風險。
夜市比喻:
- 裝鐵門、監視器
- 員工訓練:怎麼辨識假鈔、怎麼處理可疑人物
- 把秘方鎖在保險箱
包含類別:
| 類別代碼 | 類別名稱 | 實例 |
|---|---|---|
| PR.AA | 身分管理與存取控制 | MFA、權限管理 |
| PR.AT | 意識與訓練 | 資安教育訓練 |
| PR.DS | 資料安全 | 加密、備份 |
| PR.PS | 平台安全 | 系統更新、組態管理 |
| PR.IR | 技術基礎架構韌性 | 網路隔離、容錯設計 |
4️⃣ 偵測 DETECT(DE)- 發現小偷來了
定義:發現並分析可能的資安攻擊與入侵。
夜市比喻:
- 監視器發現有人在攤位外徘徊
- 收銀機發現異常交易
- 員工回報可疑情況
包含類別:
| 類別代碼 | 類別名稱 | 實例 |
|---|---|---|
| DE.CM | 持續監控 | SIEM、SOC、異常偵測 |
| DE.AE | 異常事件分析 | 事件關聯、威脅情資整合 |
5️⃣ 回應 RESPOND(RS)- 抓到小偷怎麼辦
定義:對已偵測到的資安事件採取行動。
夜市比喻:
- 抓住小偷、報警
- 通知其他攤販注意
- 清點損失
包含類別:
| 類別代碼 | 類別名稱 | 實例 |
|---|---|---|
| RS.MA | 事件管理 | 啟動應變計畫、分類事件 |
| RS.AN | 事件分析 | 根因分析、鑑識調查 |
| RS.CO | 事件通報與溝通 | 通知主管機關、利害關係人 |
| RS.MI | 事件緩解 | 隔離受感染系統、清除威脅 |
6️⃣ 復原 RECOVER(RC)- 重新開張營業
定義:恢復受資安事件影響的資產與營運。
夜市比喻:
- 修復被破壞的設備
- 補充被偷的食材
- 告訴客人「我們已經恢復營業」
包含類別:
| 類別代碼 | 類別名稱 | 實例 |
|---|---|---|
| RC.RP | 事件復原計畫執行 | 系統還原、資料復原 |
| RC.CO | 事件復原溝通 | 對外公告復原進度 |
CSF 組織概況(Profile):你的資安健檢報告
組織概況(Profile) 是用 CSF Core 的成果來描述組織資安狀態的工具。
兩種概況類型
| 類型 | 說明 | 用途 |
|---|---|---|
| 現況概況(Current Profile) | 目前達成哪些 CSF 成果 | 了解現在在哪裡 |
| 目標概況(Target Profile) | 想要達成哪些 CSF 成果 | 設定未來要去哪裡 |
建立組織概況的五步驟
步驟 1:界定範圍
↓
步驟 2:蒐集資訊
↓
步驟 3:建立概況
↓
步驟 4:分析差距並建立行動計畫
↓
步驟 5:執行計畫並更新概況
↓
(重複循環)
💡 實務建議:可以參考 NIST 提供的「社群概況(Community Profile)」,這是針對特定產業或情境預先建立的概況範本,例如製造業、醫療業等。
CSF 成熟度層級(Tiers):你的攤位等級
成熟度層級 用來描述組織資安風險治理與管理的嚴謹程度。
四個層級說明
| 層級 | 名稱 | 夜市比喻 | 特徵 |
|---|---|---|---|
| Tier 1 | 部分的(Partial) | 路邊攤,隨緣經營 | 沒有正式流程,靠經驗隨機應變 |
| Tier 2 | 風險知情的(Risk Informed) | 有固定攤位,開始有規矩 | 有風險意識但沒有全面落實 |
| Tier 3 | 可重複的(Repeatable) | 連鎖攤位,有 SOP | 有正式政策且持續執行 |
| Tier 4 | 自適應的(Adaptive) | 品牌企業,持續進化 | 能即時應變、持續改善 |
⚠️ 注意:層級不是「分數」,不是每個組織都需要達到 Tier 4。應該根據組織的風險狀況與成本效益來選擇適當的層級。
NIST CSF 與 SSDF 的關係:從「經營攤位」到「製作滷汁」
前面我們用「經營夜市攤位」來比喻 NIST CSF,它關注的是整體營運的資安。
但如果你是自己開發滷汁配方的攤販呢?這時候就需要另一套指南——NIST SSDF(Secure Software Development Framework,安全軟體開發框架)。
兩者的比較
| 面向 | NIST CSF 2.0 | NIST SSDF 1.1 |
|---|---|---|
| 關注焦點 | 組織整體的資安風險管理 | 軟體開發過程的安全性 |
| 適用對象 | 所有組織 | 軟體開發者、採購者 |
| 比喻 | 經營攤位的守則 | 製作滷汁的配方安全 |
| 主要架構 | 6 大功能 | 4 大實務群組 |
SSDF 的四大實務群組
| 群組 | 代碼 | 說明 | 與 CSF 的關聯 |
|---|---|---|---|
| 準備組織 | PO | 確保人員、流程、技術準備好進行安全開發 | 對應 GOVERN、IDENTIFY |
| 保護軟體 | PS | 保護程式碼不被竄改或未授權存取 | 對應 PROTECT |
| 產出安全軟體 | PW | 在開發過程中減少弱點 | 對應 PROTECT |
| 回應弱點 | RV | 識別並修復已發布軟體的弱點 | 對應 DETECT、RESPOND、RECOVER |
在 CSF 中如何整合 SSDF?
CSF 2.0 的 PR.PS-06 子類別明確提到:
「安全軟體開發實務已整合,且其效能在整個軟體開發生命週期中受到監控。」
這表示如果你的組織有開發軟體,應該:
- 在 GOVERN 階段:將安全開發納入組織政策
- 在 IDENTIFY 階段:識別開發環境中的風險
- 在 PROTECT 階段:實施 SSDF 的安全開發實務
- 在 DETECT 階段:監控軟體弱點
- 在 RESPOND/RECOVER 階段:處理已發現的弱點
實務整合範例
假設你是一家金融科技公司,同時需要:
┌─────────────────────────────────────────────────┐
│ 企業層級(CSF) │
│ ┌─────────────────────────────────────────┐ │
│ │ 組織資安治理 (GV) │ │
│ │ - 董事會資安責任 │ │
│ │ - 資安政策制定 │ │
│ │ - 供應鏈風險管理 │ │
│ └─────────────────────────────────────────┘ │
│ │ │
│ ┌────────────────────▼────────────────────┐ │
│ │ 開發團隊層級(SSDF) │ │
│ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ │
│ │ │ 準備組織 │ │ 保護軟體 │ │產出安全 │ │ │
│ │ │ (PO) │ │ (PS) │ │軟體(PW) │ │ │
│ │ └─────────┘ └─────────┘ └─────────┘ │ │
│ │ ┌─────────┐ │ │
│ │ │回應弱點 │ │ │
│ │ │ (RV) │ │ │
│ │ └─────────┘ │ │
│ └─────────────────────────────────────────┘ │
└─────────────────────────────────────────────────┘
如何開始使用 NIST CSF?
給新手的起步建議
第一步:了解組織現況
- 你們有哪些重要的數位資產?
- 目前有什麼資安措施?
- 過去發生過什麼資安事件?
第二步:選擇適合的起點
| 組織類型 | 建議起點 |
|---|---|
| 小型企業、新創 | 從 NIST 的「小型企業快速入門指南」開始 |
| 有基礎資安措施 | 建立現況概況,找出差距 |
| 已有成熟資安 | 用 CSF 2.0 重新檢視,特別是 GOVERN 功能 |
第三步:善用 NIST 資源
NIST 提供許多免費資源:
- 快速入門指南(QSG):針對特定主題的簡短指引
- 資訊參考(Informative References):與其他標準的對照表
- 實作範例(Implementation Examples):具體的實作建議
- 社群概況(Community Profiles):產業別的概況範本
🔗 資源連結:NIST CSF 官方網站
常見問題 FAQ
Q1:NIST CSF 是強制性的嗎?
A:對美國聯邦機構有強制性,但對一般企業是自願採用。不過,許多產業法規(如金融業、醫療業)會參考或要求遵循 CSF。
Q2:我們公司很小,也需要用 CSF 嗎?
A:CSF 設計上適用於任何規模的組織。小公司可以從核心的成果開始,選擇最相關的項目實施。
Q3:CSF 和 ISO 27001 有什麼不同?
| A: | 面向 | NIST CSF | ISO 27001 |
|---|---|---|---|
| 類型 | 框架(Framework) | 標準(Standard) | |
| 認證 | 無正式認證 | 可取得認證 | |
| 費用 | 免費 | 需購買標準文件 | |
| 彈性 | 較高 | 有明確要求 |
許多組織會同時使用兩者,用 CSF 做策略規劃,用 ISO 27001 做驗證。
Q4:從 CSF 1.1 升級到 2.0 要注意什麼?
A:主要變化包括:
- 新增 GOVERN 功能
- 強化供應鏈風險管理
- 更新子類別編號(部分有變動)
- 新增線上工具與資源
NIST 有提供升級指南,建議詳細閱讀。
結語:資安是一趟旅程,不是終點
NIST CSF 不是一份勾選完就結束的清單,而是一套持續改善的方法論。
就像夜市攤販不會因為今天生意好就停止進步,你的組織資安也需要:
- 📊 定期評估現況
- 🎯 設定合理目標
- 🔄 持續改善流程
- 👥 全員參與投入
從今天開始,用 NIST CSF 的思維來看待你的組織資安吧!
延伸閱讀
[NIST] 001 軟體開發也要穿防彈衣?一次搞懂 NIST SSDF 安全開發框架
「寫程式就寫程式,還要管什麼資安?」如果你還這樣想,那可能要小心了!現在的軟體開發,沒有做好安全防護,就像開店沒裝監視器一樣危險。今天就用最生活化的方式,帶你認識 NIST SSDF(安全軟體開發框架)!
什麼是 NIST SSDF?用便當店來解釋!
想像你要開一間便當店,你不會只顧著炒菜,對吧?你還需要:
- 👨🍳 訓練員工 怎麼安全使用刀具和瓦斯
- 🔒 保護食材 不被偷或污染
- 🍱 確保便當品質 衛生又好吃
- 📞 處理客訴 萬一有人吃壞肚子要怎麼辦
NIST SSDF 就是把這套邏輯用在軟體開發上!它是由美國國家標準暨技術研究院(NIST)發布的 SP 800-218 文件,告訴你怎麼從頭到尾把軟體寫得「安全」。
SSDF 的核心精神:左移(Shift Left)
傳統做法是寫完程式再找漏洞,就像便當做好才檢查有沒有蟑螂 🪳(已經太晚了!)
左移的概念是:越早處理安全問題,成本越低。就像買菜時就挑新鮮的,比煮完發現爛掉好太多了!
SSDF 四大實務領域:用便當店來比喻
SSDF 把安全開發分成四大區塊,我們繼續用便當店來解釋:
🏢 PO(Prepare the Organization):準備好你的組織
便當店版本: 開店前的準備工作
| SSDF 任務 | 便當店對照 |
|---|---|
| PO.1 定義安全需求 | 制定食材採購標準、衛生規範 |
| PO.2 建立角色與責任 | 誰負責採購?誰負責烹飪?誰負責清潔? |
| PO.3 導入工具鏈 | 買冰箱、裝抽油煙機、設置監視器 |
| PO.4 定義安全檢查標準 | 什麼溫度叫「熟了」?什麼狀態叫「新鮮」? |
| PO.5 維護安全環境 | 廚房要乾淨、倉庫要上鎖、員工入口要刷卡 |
程式開發實例:
✅ 制定安全編碼規範(Coding Standard)
✅ 指派資安負責人(Security Champion)
✅ 導入 SAST/DAST 工具
✅ 設定 CI/CD Pipeline 的安全檢查點
✅ 開發環境與正式環境要隔離
🔐 PS(Protect the Software):保護你的軟體
便當店版本: 保護你的食材和配方
| SSDF 任務 | 便當店對照 |
|---|---|
| PS.1 保護程式碼 | 祖傳滷肉飯配方要鎖在保險箱 |
| PS.2 提供完整性驗證 | 便當貼上防拆封貼紙 |
| PS.3 保存發布紀錄 | 記錄每批食材的來源和日期(溯源) |
程式開發實例:
✅ 程式碼存放在私有 Git Repository
✅ 使用 Code Signing 簽署發布檔案
✅ 產生 SBOM(軟體物料清單)
✅ 保存每次 Release 的完整紀錄
什麼是 SBOM?
就像便當的成分標示一樣!SBOM 會列出軟體裡用了哪些套件、版本是什麼,萬一某個套件出事,你可以馬上知道自己有沒有用到。
⚙️ PW(Produce Well-Secured Software):生產安全的軟體
便當店版本: 做出安全好吃的便當
| SSDF 任務 | 便當店對照 |
|---|---|
| PW.1 安全設計 | 菜單設計考慮過敏原、熱量標示 |
| PW.2 設計審查 | 試菜會議,確認口味和安全 |
| PW.4 重複使用安全元件 | 用經過認證的醬料,不要自己亂調 |
| PW.5 遵循安全編碼實務 | 按照 SOP 烹飪,不亂加料 |
| PW.6 安全配置編譯工具 | 確保瓦斯爐、烤箱設定正確 |
| PW.7 程式碼審查 | 主廚試吃確認品質 |
| PW.8 測試執行檔 | 出餐前最後檢查 |
| PW.9 預設安全設定 | 便當預設少油少鹽(健康優先) |
程式開發實例:
✅ 做威脅建模(Threat Modeling)
✅ 使用經過驗證的加密函式庫
✅ 執行 Code Review
✅ 跑 SAST(靜態掃描)和 DAST(動態掃描)
✅ 輸入驗證、輸出編碼
✅ 預設啟用 HTTPS、停用 Debug 模式
小提醒:常見的安全編碼原則
| 原則 | 說明 | 便當店比喻 |
|---|---|---|
| 輸入驗證 | 檢查使用者輸入的資料 | 確認客人點的餐真的有在菜單上 |
| 輸出編碼 | 避免 XSS 攻擊 | 便當盒要密封好,湯汁不能亂灑 |
| 最小權限 | 只給必要的權限 | 洗碗工不需要進金庫 |
| 錯誤處理 | 優雅地處理錯誤 | 賣完了就說「售完」,不要讓客人看到後廚在吵架 |
🚨 RV(Respond to Vulnerabilities):回應漏洞
便當店版本: 客訴處理與危機應變
| SSDF 任務 | 便當店對照 |
|---|---|
| RV.1 持續辨識漏洞 | 定期檢查食材有沒有過期 |
| RV.2 評估與修復漏洞 | 客人說太鹹,調整食譜 |
| RV.3 分析根本原因 | 為什麼會太鹹?是廚師手抖還是鹽巴受潮? |
程式開發實例:
✅ 建立漏洞通報管道(VDP)
✅ 訂閱 CVE 資料庫更新
✅ 定期執行弱點掃描
✅ 建立 PSIRT(產品安全事件應變小組)
✅ 做 Root Cause Analysis(根因分析)
實際案例:從零開始導入 SSDF
假設你是一間新創公司的工程師,老闆說要導入 SSDF,你可以這樣做:
第一步:盤點現況(PO)
□ 公司有沒有安全編碼規範?
□ 有沒有人負責資安?
□ 開發環境和正式環境有隔離嗎?
□ 有在用什麼安全工具嗎?
第二步:保護程式碼(PS)
□ 程式碼是不是放在私有 Repository?
□ 有沒有做 Code Signing?
□ 知道專案用了哪些第三方套件嗎?
第三步:建立安全開發流程(PW)
□ 有沒有做威脅建模?
□ 有沒有執行 Code Review?
□ CI/CD 有跑安全掃描嗎?
□ 預設設定是安全的嗎?
第四步:準備回應機制(RV)
□ 外部人員發現漏洞怎麼通報?
□ 內部發現漏洞怎麼處理?
□ 有沒有做過資安演練?
SSDF 對照表:讓你一目瞭然
| 領域 | 代碼 | 中文名稱 | 核心問題 |
|---|---|---|---|
| 準備組織 | PO | Prepare the Organization | 「開工前準備好了嗎?」 |
| 保護軟體 | PS | Protect the Software | 「東西放好了嗎?」 |
| 生產安全軟體 | PW | Produce Well-Secured Software | 「做得夠安全嗎?」 |
| 回應漏洞 | RV | Respond to Vulnerabilities | 「出事怎麼辦?」 |
常見問題 FAQ
Q1:SSDF 是強制性的嗎?
對於一般企業,SSDF 是自願採用的最佳實務。但如果你要賣軟體給美國聯邦政府,根據行政命令 EO 14028,就需要符合 SSDF 的要求。
Q2:小公司也需要導入 SSDF 嗎?
SSDF 是可擴展的!你不需要一次做完所有項目。可以根據公司規模和風險程度,挑選最重要的項目先做。
Q3:SSDF 和 ISO 27001 有什麼不同?
| 框架 | 重點 |
|---|---|
| SSDF | 專注於軟體開發過程的安全 |
| ISO 27001 | 整體資訊安全管理系統(涵蓋範圍更廣) |
兩者可以互補,SSDF 可以作為 ISO 27001 在軟體開發領域的細部實作指南。
Q4:有什麼工具可以幫助導入 SSDF?
| 類別 | 工具範例 |
|---|---|
| SAST(靜態掃描) | SonarQube, Checkmarx, Fortify |
| DAST(動態掃描) | OWASP ZAP, Burp Suite |
| SCA(軟體組成分析) | Snyk, Dependabot, OWASP Dependency-Check |
| SBOM 產生 | Syft, CycloneDX |
| 秘密掃描 | GitLeaks, TruffleHog |
總結:讓安全成為習慣
NIST SSDF 不是要讓你的開發流程變得更複雜,而是要讓安全成為開發的一部分。就像便當店把衛生習慣內化到日常作業一樣,當安全變成習慣,就不會覺得麻煩了。
記住這四個關鍵字:
- 準備(PO):人員、流程、工具都要到位
- 保護(PS):程式碼和發布物要保護好
- 生產(PW):每個環節都要考慮安全
- 回應(RV):出問題要有應變能力
現在就開始檢視你的開發流程,看看哪些地方可以「左移」改善吧!