FineArt News

供應鏈安全從系統開發流程做起

近年來,全球供應鏈正面臨前所未有的風險。從英國退出歐盟和蘇伊士運河被堵塞,到 Covid-19 危機,以及最近的烏克蘭戰爭,任一關鍵問題都造成了全球不小影響。供應鏈風險不侷限於地理區域,或實體物件所處領域。由於現代經濟數位化程度的提高,和生產上對第三方數位產品的依賴,導致企業暴露在網路安全威脅呈指數成長。

數位供應鏈包含了IT生態系統的設計、製造、組裝,和分銷散佈產品所需的資源和活動所組成,將原始的資源轉換成服務供應轉移到最終消費者。然而攻擊者可以通過針對供應鏈中的任一個或多個系統、流程、開發人員、服務攻擊,從而獲得對關鍵系統的存取許可或造成破壞性影響。

依據National Counterintelligence and Security Center (NCSC)相關威脅可以分為四個攻擊類型:

  • Supply chain cyber attack
    第一種是使用網路攻擊手段,以供應鏈上下游的一個或多個系統、流程、開發人員或運營服務為目標,從而取得關鍵系統的存取,或誘發破壞性影響。例如從零售供應商竊取的憑證來獲得對網路的存取權,並橫向移動而不被發現,直到駭客找到關鍵的POS系統終端。惡意軟體可能從POS系統下載詳細的信用卡資訊,然後將數據都悄悄的滲漏 (exfiltration) 到攻擊者的伺服器上。 
  • Software-enabled attack
    第二種是軟體及軟體服務供應的供應鏈攻擊,通常利用軟體本身漏洞來破壞、禁用,或破壞流程或運營。軟體供應鏈不單單指所供應的軟體,而是包含從軟體設計開發開始,所使用的元件、工具,搭配的Library等,到交付產品及後續維護的更新修補套件,都可能被攻擊。 
  • Software supply chain attack
    第三種類型是「軟體供應鏈攻擊」。當網路威脅滲透到軟體供應商,並使用惡意程式在供應商交付軟體給客戶之前就埋入其中。包含供應商,客戶及安全工具檢查憑證,來源完整性都認為是合法供應商所供應。受感染的軟體會損害客戶的數據資料及系統。這種攻擊的特點是,駭客在軟體編譯和憑證簽章之前就滲透到供應商的軟體開發過程中,這使得惡意軟體更難被檢測出來。 
  • Hardware-enabled attack
    通過修改供應商提供的硬體或韌體,並將後門安插於其中。基於原廠的信用,除了外部檢測工具可能難以偵測分辨,而且對該系統具有高信任度的控制,如UEFI。硬體、韌體上的後門可以被安插到各種設備中,例如伺服器、工作站、網路基礎建設等。

 

當我們獲取服務的時候,風險可能來自多個層面,且包含多種類型。我們可以先考慮幾個面向第三方服務提供者或供應商,不論是從實體安全的外包,到專業位外包的軟體工具開發。尤其具有對資訊系統、軟體程式,在實體或虛擬連線(VPN)具備存取權限,而供應商本身在資訊安全方面落實程度卻可能不佳,就會危害被服務的對象。可能面臨的問題不僅僅如下所列:

  • 供應商所購入的軟體或硬體遭到植入
  • 供應鏈管理或供應商系統中使用的軟體安全漏洞
  • 使用非信任的硬體或被嵌入式惡意軟體的硬體
  • 第三方使用的(含外接)儲存媒體裝置及資料的收集處置

接著在供應商的網路安全實作上的風險程度,可以幾個問題來評估,建議要求書面說明甚至列入RFP,採購合約中建議的範例:

  • 供應商的軟體/硬體設計流程是否有文件記錄?可重複被驗證?可以被測量的?
  • 在產品設計中是否考慮了對已知漏洞的緩解措施?(通過產品架構設計、執行時期的保護機制、原始碼審查)
  • 供應商如何即時因應新出現漏洞的防治措施?供應商解決新的零日漏洞的能力與空窗期如何?
  • 實施哪種管理和監控生產過程控制措施?

 

從開發流程開始

對於軟體開發商而言,本身兼具元件採購與產品開發生產,因此對供應鏈安全管理,除了要求上游供應商,更要對軟體開發上防範供應鏈風險;為軟體生命週期中的所有工程師,建立安全的軟體生命周期開發計劃和培訓。下面的實務考量不僅要求上游,同樣也要求供應商開發流程。

  • 如何執行參數配置管理(Confuguration Change Control)?如何測試程式碼品質或漏洞?自由軟體的漏洞如何被審查?
  • 執行什麼樣等級的惡意軟體保護和檢測,使用的驗證工具,以及參考的驗證標準?
  • 採取了哪些實務步驟來防止產品被竄改或植入後門?是否殘留後門?
  • 網路和實體存取控制措施?存取的記錄和審核機制?
    • 如何保護和存儲客戶數據?
    • 如何加密數據?
    • 數據保留多長時間
    • 當夥伴合作關係及結束時,相關的資料數據如何銷毀?
  • 對於員工進行何種程度的安全背景調查,審查的有效頻率和週期如何
  • 對上游供應商設定了哪些安全實踐的期望,需要符合認證標準?如何評估對這些安全標準的遵守情況?
  • 軟體系統,以及相關參數的分發傳遞過程安全性如何維持?
  • 是否明確記錄了經核可和授權的信任產品經銷管道?
  • 元件的潛在風險和對應的緩解策略為何?供應商如何在整個產品生命週期中,確保產品安全性的實施作法?

可以看得出軟體開發人員在保護網路環境、建立安全程式和降低網路安全風險方面,發揮著重要關鍵作用。然而,由於開發和安全團隊分散在各個組織中,協同團隊落實軟體安全開發,已成為軟體系統開發人員面臨的終極挑戰。而網路安全從來就不是單單技術問題,而是一個開發人員、流程和知識管理的綜合問題。違規行為往往與技術的失誤無關,卻與人為的錯誤操作觀念息息相關;除非整個供應鏈中的員工都落實網路安全實務,加上資安系統的強制落實,否則這些違規漏失都一直會存在。

美國的國家安全局(NSA)、網路安全和基礎設施安全(CISA)和國家情報總監辦公室(ODNI)在內的聯邦機構,發佈《為開發人員保護軟體供應鏈》的實務準則:Securing the Software Supply Chain: Recommended Practices Guide for Developers,提供符合行業最佳實踐和原則的指導。這些原則包括安全需求規劃、從安全角度設計軟體架構、增加安全功能以及維護軟體和底層基礎建設架構的安全性(例如,網路基礎建設環境、原始程式碼審查測試)等。強烈建議軟體開發人員參考這些最佳實踐和原則,落實在平常的業務流程中,以因應劇烈變化的資安環境。