iT邦幫忙

2026 iThome 鐵人賽

DAY 3
1

💡 今日學習目標:理解製造業與軟體工程的「品質演進四階段」,並學會將這四大觀念對應到資訊安全的防守策略。


📌 前言:資安不是新技術,而是「品質」的延伸

昨天我們確認了一件事:資安是全體團隊的共同責任,開發者就是第一線防守者。

但「我知道我有責任」跟「我知道自己該做什麼」之間,還隔著一整片濃霧。

當我們第一次聽到 OWASP Top 10、NIST CSF、ISO 27001、Code Review 等一連串名詞時,許多資安新手會感到頭暈目眩,覺得資安是一門龐大且雜亂無章的學問。

其實,資訊安全本質上就是「軟體品質(Software Quality)」的一部分

如果一個系統功能齊全,但只要輸入特定符號就會當機,這是「品質瑕疵」;
如果輸入特定符號不僅當機,還能把整個資料庫搬走,這就是「資安漏洞」。

今天,我們就借鏡工業界與製造業發展了上百年的品質管制演進史,來為資訊安全建立一套極度清晰的思維地圖!


🔍 核心原理:品質發展四大階段 vs. 資安防禦地圖

從 20 世紀初至今,現代工業對「品質」的認知經過了四個關鍵變革階段。令人驚訝的是,這四個階段完全可以 1:1 對應到現代資訊安全的實踐中!

品質觀念的四次演進對應資安的四道防線
這張圖就是 Day 06 到 Day 30 的骨架。每進入一個新階段,我們都會回到這張圖上,確認自己走到哪一階了。


🛠️ 四大資安防守思維深度拆解

1. 資安是「檢查」出來的 (Inspection - 1900s)

  • 工業歷史:產品做完後,由品管人員在生產線末端拿尺量測,不合格的退貨或丟棄。
  • 資安實踐:程式寫完後,透過人工 Code Review 或靜態掃描工具(SAST)進行漏洞檢查。
  • 優缺點:直觀且必要,但屬於「事後補救」。如果在最後一關才檢查出重大缺陷,重工成本極高。

2. 資安是「製造」出來的 (Manufacturing / Process - 1920s)

  • 工業歷史:單靠事後檢查效率太低,必須改善生產工藝與標準作業程序(SOP),讓工人第一時間就把零件做對。
  • 資安實踐:推行 Secure Coding(安全程式碼規範)。開發者在敲擊鍵盤寫下第一行 Code 時,就遵守防禦寫法(如強制參數化查詢、輸入清洗)。
  • 優缺點:直接在源頭擋掉了絕大多數最常見的漏洞類型(OWASP Top 10 中的多數項目都屬於此類),大幅減少事後修補成本。

3. 資安是「設計」出來的 (Design - 1940s)

  • 工業歷史:有些品質問題是產品設計本身的結構瑕疵,生產工藝再好也救不回來。必須在設計圖紙階段就考慮耐用度與安全性。
  • 資安實踐Security by Design(原生安全設計)威脅建模(Threat Modeling)。在系統畫架構圖時,就設定好縱深防禦、身分驗證邊界與 NIST CSF 框架。
  • 優缺點:從根本架構上封鎖極端攻擊,避免陷入「補丁貼不完」的困境。

4. 資安是「管理」出來的 (Management / TQM - 1960s)

  • 工業歷史:品質不是單一工程師的事,而是包含資材、人資、流程與高層決策的全公司全面品質管理(TQM)。
  • 資安實踐ISO 27001 資訊安全管理系統(ISMS)DevSecOps。建立權限審查流程、事件應變計畫,並將資安掃描融入自動化 CI/CD 部署管道中。
  • 優缺點:確保資安防護不是一時興起,而是制度化、持續維運且可度量的文化。

🎓 兩位品質大師,兩句話說完這件事

這套「從檢查走向製造、設計、管理」的演進,不是後人硬湊出來的分類,而是幾位品質大師花了幾十年吵出來的結論。其中兩個人講過的話,幾乎不用改字就能直接翻譯成資安語言。

戴明(W. Edwards Deming):檢查得再認真,都已經太遲了

戴明在他著名的「管理十四要點」中,第 3 點就直接開砲:

「停止依賴檢查來達成品質。應該從一開始就把品質做進產品裡,藉此消除大規模檢查的必要。」
(Cease dependence on inspection to achieve quality. Eliminate the need for inspection on a mass basis by building quality into the product in the first place.)

他還有一句更直白的補充:「檢查已經太遲了。品質的好壞,早就已經在產品裡面了。」

翻譯成開發者的語言就是:

當 SonarQube 掃出那個漏洞的瞬間,這個漏洞其實早在你敲下那行程式碼的時候就已經存在了。 掃描器只是讓你「知道」它在那裡,它本身並沒有讓你的系統變得比較安全。

這就是為什麼我們不能停在「檢查」這一階。

克勞斯比(Philip Crosby):品質是免費的,不做品質才貴

另一位大師克勞斯比在 1979 年出版了一本書名就很挑釁的著作:《Quality Is Free》(品質是免費的)。

他的核心論點是:品質本身不花錢,真正花錢的是「沒有品質」的代價:那些重工、報廢、退貨、客訴,以及賠不回來的商譽。

把這句話換成資安版本,幾乎一個字都不用改:

資安本身不花錢,真正花錢的是「沒有資安」的代價。

一套 SonarQube 社群版是免費的,一次威脅建模會議是免費的,把字串拼接改成參數化查詢也是免費的。真正貴的,是資料外洩之後的主管機關通報、客戶求償、稽核追查、系統重建,以及再也回不來的信任。

這也正是這個系列的核心信念:沒預算,從來都不是不做資安的理由。


💡 跨語言實務範例:從「檢查」升級到「製造」

我們以「使用者密碼儲存」為例,看看這四種思維的差異:

// ❌ 只靠檢查:原本寫明文密碼,被檢測工具警告後才緊急修補
Function RegisterUser(username, password):
    // 原本:DB.Save(username, password) -> 被品管檢查回絕!
    // 粗糙修補:直接套用簡單 MD5
    HashedPassword = MD5(password) 
    DB.Save(username, HashedPassword)

⚠️ 缺陷:MD5 的運算速度極快,而這段程式碼又完全沒有加鹽(Salt),攻擊者可以直接用彩虹表(Rainbow Table)反查出原始密碼。

順帶澄清一個常見誤解:雜湊(Hash)不是加密,它沒有「解開」這回事。彩虹表的原理不是把 MD5「解密」回去,而是事先算好海量的「密碼 → 雜湊值」對照表,再拿你資料庫裡的雜湊值去反查。所以這種修補只是把明文換成了「查一下就知道的明文」。

// ✅ 製造即安全:遵循 Secure Coding 規範,一次做對
Function RegisterUser(username, password):
    // 使用具備工作因子 (Work Factor) 的現代密碼雜湊函數 (如 Argon2id / bcrypt)
    // 演算法會自動產生密碼學安全的隨機 Salt,
    // 並把 Salt 與參數一起封裝進輸出的雜湊字串裡
    SecuredHash = Argon2id.Hash(password, Memory=64MB, Time=3, Parallelism=1)

    DB.Save(username, SecuredHash)   // 不需要、也不應該另外開一個 Salt 欄位

🛡️ 製造精神:在撰寫邏輯時,就直接採用符合業界資安標準的演算法與密碼學規範。


🎯 今日重點小結與防守心法

  • 🔹 心法 1:資安就是軟體品質。資安漏洞本質上就是嚴重的品質瑕疵。
  • 🔹 心法 2:從「檢查」走向「製造」與「設計」。越早將品質觀念嵌入開發流程,效益越高。
  • 🔹 心法 3:這 30 天的大綱骨架。接下來的文章將依序帶你親自體驗「檢查(SonarQube)➔ 製造(OWASP Top 10)➔ 設計(NIST CSF)➔ 管理(ISO 27001/DevSecOps)」!

💬 明日預告:【Day 04】專家與開發者的盲點落差:你以為只防 SQLi/XSS,其實駭客玩的是這些!
明天我們將破解 Web 開發者常有的認知盲點,看看資安專家與駭客眼中的漏洞世界到底長怎樣!


上一篇
【Day 02】資安該由誰來做?資安團隊、開發人員,還是「資訊水電工」?
系列文
槍林彈雨下的資安防守:從品質觀念切入,帶開發者從零動手作資安 30 天3
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言