iT邦幫忙

2026 iThome 鐵人賽

DAY 17
0
AI Security

我做了一個Claude skill的掃毒軟體學到的那些事系列 第 17 篇

我沒寫威脅模型就開工了,重來一次

  • 分享至 

  • xImage
  •  

我想跟大家分享,我在做這個專案時遇到的另一個大坑。

我在設計整個 Claude Skill 掃描軟體(SDK)的時候,設計了各種防禦方式,也測試了許許多多次的防禦,但我卻漏掉了:我做的軟體本身,對使用者來說可能就是一個最大的漏洞。

像是我的掃描器會讀取 Skill 檔案的內容,也有權限移除 Skill。如果駭客駭進來,他就可能隨意刪掉使用者的 Skill。

所以等到某一天我忽然意識到這件事情的時候,我把整個架構打掉重來,照著安全軟體開發週期(SSDLC)的流程重寫。

因此,我想跟大家介紹安全軟體開發週期的第一個步驟「威脅模型」。

沒寫威脅模型就開工的話,如果你的系統上線了,可能要重做或是上線後去補各種資安漏洞。

所以威脅模型到底是什麼?

就是將你目前對於系統的風險,清楚地描述出來,包括這個系統目前最脆弱的是哪裡、你選擇用什麼樣的方式去防禦這些弱點,以及哪些風險你明確選擇接受。

它的核心是知道自己有哪些攻擊面,以及你打算怎麼回應;它不求涵蓋所有威脅,而是把已知的威脅和你的應對方式講清楚。

以我寫的第一份威脅模型為例,主要包含這五個部分:

系統描述:這個 SDK 保護了什麼、運行在什麼環境,以及有哪些外部依賴。

資料流程圖(DFD):資料從使用者輸入、LLM 呼叫、外部工具呼叫,一路流到外部的完整路徑。流程圖可以用 Mermaid 的方式畫出來。

信任邊界標記:在資料流程圖上明確標出哪些是可信任與不可信任的分界,可以透過顏色或線條來標記。

STRIDE 威脅清單:STRIDE 是六種常見威脅類型的縮寫,為每個模組列出主要的威脅。分析這個模組可能會有什麼樣的脆弱點、駭客如果想駭進來可能會從哪裡著手,以及你該如何對應。

接受的風險(Accepted Risks):明確記錄哪些威脅你選擇不防禦,以及你的原因。

第五點有時候容易被忽略,但因為我自己是做資安相關的,我很清楚很多攻擊在特定情境下完全無法避免、一定會被攻破。重要的是你怎麼透過一層一層的防禦,去釐清哪一層選擇防禦、哪一層選擇不防禦。

把「接受的風險」寫出來,你才會知道遇到哪些資安問題時要特別小心,使用者也才知道你的工具不保護什麼。

下一篇,我會介紹什麼是 STRIDE 威脅清單。


上一篇
Day 16|原來我叫 AI 做的事情,就是 Git
系列文
我做了一個Claude skill的掃毒軟體學到的那些事 共 17 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言