談到資安,多數人第一個想到的往往是確認組織是否有資安人員?是否有資安治理制度? 是否有資安防護設備? 但我們往往忽略了安全開發的重要性,其實系統開發的流程也應列入評估企業資安措施完整度的指標。企業負責人、相關單位主管可以依據文中提及的3種框架來訂定組織的開發流程,這樣一來可以強化企業資安基礎,降低資安事件發生的機率。
系統開發 vs 資安
舉個常見的例子來說,如果一個食材的品質不夠好,那再厲害的廚師也很難把它變成佳餚,反之如果食材的品質很好,那只需要簡單烹飪就可以很美味。這個道理也可以套用到系統開發與資安上面,只要系統本身很少漏洞,就算沒有太多額外的防護設備,也可以有一定程度的資安。
可是很多開發人員根本不清楚如何安全開發,為了滿足新功能及工作進度更是採用許多存有資安疑慮的方式及開源程式碼進行開發,最後導致程式存有許多漏洞,長期累積下來漏洞總是修不完,處處都是駭客可以攻擊的弱點。
那我們應該如何開發出一套安全的資訊系統呢? 其實我們可以從以下三個框架來研究!
3大安全資訊系統開發框架
- Microsoft SDL(Security Development Lifecycle)
Microsoft的安全性開發生命週期模型是指系統開發分為五個階段,分別是需求、設計、開發、測試、上線。每個階段的任務如下:
- 需求
此階段需要建立安全需求(如:身份驗證或基於角色的存取控制(RBAC)的機制建立 - 設計
此階段可以進行威脅模型分析,充分了解未來可能碰到的問題 - 開發
使用安全的開發工具,並在開發的過程中透過掃描工具即時的驗證程式碼安全
- 測試
此階段可再透過弱點掃描或滲透測試來驗證系統安全性
- 上線
上線前需要制定事件回應計畫以確保資安事件發生時組織有對應的處理辦法
除了這五個階段以外,也有兩個很重要的階段,一個是最初應針對人員進行訓練,確保人員有資安的觀念與意識,另一個則是上線以後也需要持續監控系統以即時處理遇到的資安事件。
- OWASP SAMM(Software Assurance Maturity Model)
OWASP的軟體保障成熟度模型和前述框架相似,但另外有一個重點就是Governance。組織應有明確的策略、規範提供給所有員工,並且提供教育訓練讓員工有所依循,才是一個完整的管理制度。
- 資通安全管理法- 資通系統防護基準
資通系統防護基準主要針對公務機關與特定非公務機關的要求,與微軟框架中的五個階段相似,但除此之外還有一個是「委外開發系統」的要求,由於政府機關的系統部分是外包商開發的,因此也需要讓安全開發的流程擴展到開發商的流程當中。
專家建議
依據以上三種常見框架項目相當的繁多,要全部執行必然需要花費一定的成本與時間,站在成本效益的觀念來看,以下幾點是保華資安檢測技術指導教官建議開發商初期在導入開發流程時,可以先進行的項目。
- 安全開發指引:制定安全開發指引並提供教育訓練,讓開發人員有所依循,知道正確的安全程式的撰寫方式,常見可以參考的標準有OWASP ASVS或台灣自己制定的「資通系統資安需求項目查檢表」
- 威脅模型分析:透過威脅模型的分析,可以讓開發人員充分瞭解系統會面臨到的威脅情境,並且針對威脅情境強化系統,分析與實作的過程中,也可以培養開發人員的資安意識。
- 原碼掃描或弱點掃描:導入自動化檢測的技術,在開發過程中就頻繁的進行檢測,就可以第一時間找出系統的漏洞,如此一來更可以降低開發成本,避免不安全的程式撰寫方式大量發生。
- 滲透測試與安全監控:滲透測試由資安公司的專業人員進行驗證,找出可能的漏洞,彌補前面可能忽視的漏洞,同時再上線後也要有監控機制持續分析系統,若有攻擊事件發生時,也可以知道攻擊所利用的漏洞,並盡速修補漏洞以避免攻擊從相同路徑再次發生。
“ 安全開發是確保企業資安的重要元素” 整體來說,安全開發的導入,雖然會增加公司許多成本與時間,但更可以滿足企業的資安需求。它可以協助開發人員提前修補漏洞,也可以減少系統上線後還要回頭修補的人力,長期來看可以降低開發成本、提升開發人員效率。本文淺談安全開發的作法及重要性,幫助企業的負責人及資安專責人員再檢視系統開發流程、系統安全性時,更有依據可循。