iT邦幫忙

2021 iThome 鐵人賽

DAY 29
0
Security

讓 Hacking for Dummies 一書陪我 30 天系列 第 29

Day 29 - 軟體物料清單

Hacking for Dummies 這本書主要的概念,總結來說,就是用駭客的思維與手法測試系統中可能存在的資安漏洞,及時修正。

前面讀書的時候,看到書上除了提供五花八門的測試方式,在 Chapter 14. Web sites and Applications 章節裡,提供了一些必須囊括在開發裡的一些 practice 。此外, OWASP 是開發時期的好朋友,很多的範例與規範都可以從這邊查找到。

除了開發的 practice 可以增加應用程式的安全性,在開發過程中,常常會上網搜訊某個功能的實作是否有 Open Source 能夠使用,或是出自民間的高手有沒有在 stack overflow 上以程式碼救贖迷惘的開發者?[1]

問:難道這些套件或是摳貼來的程式碼,就不會有安全性的問題嗎?
答:當然會有!

軟體物料清單

軟體物料清單 (Software Bill of Materials, SBOM) 或是稱作 風險物料清單 (Cybersecurity Bill of Materials, CBOM) 是構成軟體的元件和關聯表,包含名稱、版本、來源、相依性甚至供應商等等資訊,也就是說

  1. 公司的軟體產品使用的套件中是否有 易受攻擊 的套件?
  2. 如果有,影響的產品有哪些 [2]

以被攻到怕怕的資安重災區美國為例,美國白宮要求所有向聯邦政府出售的軟體都必須提供這些資訊,透明化軟體組成,以利抓出潛在風險。

安全性漏洞始於軟體開發,終於軟體開發

恩?難道這就是傳說的 DevSecOps ,一切還是在開發流程中就注入安全性的中心思想,成本最低,效果最好。

工具

如果要參考 U.S. NTIA (National Telecommunications and Information Administration) 制定的標準,以下項目是必須要被列舉出來的:[3]

  1. 供應商名稱
  2. 套件名稱
  3. 套件版本
  4. 其他可識別套件的 ID
  5. 依賴關係
  6. SBOM表作者
  7. 產表時間

基於可讀性, NTIA 要求的 SBOM 報告格式有以下這三種選擇

  • Software Package Data Exchange (SPDX)
  • CycloneDX [4]
  • Software Identification (SWID) Tags

以自家的後端開發使用較多的程式語言 golang ,可以找到

明天就來裝看看工具 - syft 吧!

[1] 供應鏈安全層面大剖析,奧義揭露臺灣多起APT攻擊事件都是對方從供應鏈下手
[2] https://www.informationsecurity.com.tw/article/article_detail.aspx?aid=9316
[3] https://fossa.com/blog/software-bill-of-materials-formats-use-cases-tools/
[4] 是 OWASP 提出的一種較為 lightweight 的軟體物料清單標準。


上一篇
Day 28 - 如何降低網站的安全性風險
下一篇
Day 30 - SBOM 工具 - syft
系列文
讓 Hacking for Dummies 一書陪我 30 天30

尚未有邦友留言

立即登入留言