供應鏈安全,怎樣在關鍵時刻不掉鏈子?

全文共2681字,閱讀大約需5分鐘。
一
概述
軟件技術飛速發展,軟件開發手段不斷進步,開源、云原生等技術被廣泛應用。軟件供應鏈在趨于多元化發展的同時,一方面加速了技術的革新和升級,同時也催化出一種新型的安全威脅,使得軟件供應鏈面臨嚴重的安全問題[1]。軟件供應鏈是一個由各種組織、人士、信息、資源以及行為組成的將商品或者服務從供應者轉移到消費者的系統。商品與服務是軟件,供應者與消費者分別指軟件供應商與軟件用戶,自然資源、原材料、中間組件可以對應軟件設計與開發的各個階段中編入軟件的代碼、模塊和服務,加工過程則對應了編碼過程,工具以及設備,而在網絡安全領域,供應鏈涉及大量資源(硬件和軟件)、存儲(云或本地)、發行機制(Web應用程序、在線商店)和管理軟件。
行業不同,其所包含的供應鏈也不同,一般來說構成供應鏈的基本要素包括:供應商、供應商資產、客戶、客戶資產[2]。(1)供應商:向另一個實體供應產品或服務的實體。(2)供應商資產:供應商用于生產產品或服務的有價值元素。(3)客戶:消費由供應商生產的產品或服務的實體。(4)客戶資產:目標擁有的有價值元素。
實體可以是個體、由個體組成的組織或組織機構,資產可以是人、軟件、文檔、金融、硬件等。供應鏈攻擊是針對供應商的,且后續被用于攻擊目標以訪問資產。攻擊目標可以是最終客戶或另外的供應商。這些攻擊帶來的影響越來越大,如系統停機、金錢損失和聲譽損害等。
二
過程
供應鏈中一部分為供應商設置,一部分為客戶設置。對于供應商而言,第一部分是“用于攻陷供應商的攻擊技術”,它說明了供應商如何遭受攻擊;第二部分是“供應鏈攻擊的供應商資產”,它說明了針對供應商的攻擊目標是什么。對于客戶而言,第一部分是“用于攻陷客戶的攻擊技術”,它說明了客戶如何遭受攻擊;第二部分是“供應鏈攻擊的客戶資產”,它說明了針對客戶的攻擊目標是什么。
對于分類系統中的不同元素,我們定義了可以更好地描述供應鏈攻擊的元素。通過篩選相應元素,可以更好地了解已知和未知的攻擊情況。該分類系統在概念上不同于MITREATT&CK知識庫,且它的目標并非取代而是補充后者。在某些情況下,分類系統中定義的攻擊技術和MITREATT&CK框架中定義的技術相關,這種情況下用方括號的形式進行了標記,說明了分類系統的四個組成部分以及如何識別其元素[2]。

圖1供應鏈攻擊分類分級圖
在某次攻防演習中,某公司就遭受了供應鏈攻擊的重創。攻擊者利用某信VPN、某公司的軟件產品中存在的風險漏洞攻入內網系統形成攻擊鏈路。可見這種新型的網絡攻擊方式得到了許多攻擊者的青睞,那么加強供應鏈的安全性就勢在必行。
與傳統供應鏈類似,軟件供應鏈安全問題的解決同樣需要規范化的流程管理和標準。軟件供應鏈上管理措施的缺乏和潛在的攻擊面對整個信息產業的安全造成了巨大的威脅,需要有能夠被信息產業內部相關企業和組織所共同遵守的業務安全守則與標準;識別和記錄供應商和服務,為不同類型的供應商和服務定義風險標準,如供應商和客戶依賴關系、關鍵軟件依賴關系、單點故障;加大監控供應鏈風險和威脅,在產品或服務的整個生命周期內管理供應商,包括處理報廢產品和組件的程序;對與供應商共享或可訪問的資產和信息進行分類,并制定訪問和處理這些資產和信息的相關程序[3]。
對于供應商應確保用于設計、開發、制造和交付產品、組件和服務的基礎設施符合網絡安全規范;實施與普遍接受的產品開發過程一致的產品開發、維護和支持過程;監控由內部和外部來源(包括使用的第三方組件)報告的安全漏洞;形成包含補丁相關信息的資產清單。
建立健全SDL安全體系也是一種去處理供應鏈攻擊的方式,大部分公司處于初始階段,沒有任何安全建設方面的經驗、文檔以及工具,甚至公司高層對這方面嚴重忽視,擺個樣子就行,這導致SDL實際落地非常困難,基本就是擺設。如果公司之前已經有相關的實施經驗,那么推動起來要方便得多,SDL工程只需要在原有的基礎上優化拓展就行了。目前大部分公司都有自己的安全團隊,沒有的可能也有相應的外包人員。日常的滲透、審計工作基本就是這部分人來完成,其實這是SDL建設的中堅力量,整個SDL工程最多、最繁雜的流程全部依靠這部分人員。
SDL建設的目的其實很明確,就是將安全手段前置,盡可能地降低產品安全風險,減少后期的維護成本。但是理想和現實總是有差距的,所以我們作為實際落地必須堅持深度防御、適度安全兩條準則。SDL實施落地的流程還是依附在DevOps上,二者相輔相成,相互補充。
整個SDL流程并不復雜,復雜的是具體實施細節。任何方案都不可能滿足所有的實際需求,企業還是需要根據自身的實際情況去選擇落地SDL,尋找適合自己的才是最好的。對于第三方框架防治問題,可以維護自己的三方框架庫,定期安全檢測。掃描誤報過高,大量數據篩選困難,可以建立優化整體規則庫,重點關注中高危漏洞,配合工具掃描和人工篩查的方式進行,增量掃描可排除誤報后無須掃描。阻擋業務正常流程,可根據實際情況,做到適參考文獻度安全,有選擇地對業務放行。如果業務太多,人員不夠,可以針對重點項目實行SDL流程,從需求分析、設計、編碼、測試、發布等形式,以工具及其他人員配合的方式促進工作的進行。解決跨部門協作困難,可以說服公司高層制定相關流程,指定專人負責,加強支撐力等。
三
總結
軟件供應鏈的風險已經嚴重影響了用戶對軟件功能的信任,對于軟件生命周期中軟件供應商和其他研究機構、社會團體的能力提出了更高的要求。近年來存在的軟件開源化趨勢,導致軟件供應鏈的開源化,使得軟件的質量難以控制,并增加了供應鏈的暴露程度。軟件行業具有互聯網特性,許多渠道的運行依賴互聯網,使得這些渠道的安全受到網絡攻擊的威脅,在被攻擊后可以成為網絡攻擊向供應鏈下游擴散的渠道,同時渠道本身也懷有惡意的可能性。除了對受影響的組織和第三方造成直接或間接利益損害外,機密信息被泄露、國家安全受到威脅后,可能引發更深層次的問題。
為更好地防護供應鏈攻擊,除了網絡安全方案與服務之外,還需要員工增強個人安全意識,把安全性評估作為開發過程中的必要評審項[4]。開發環節嚴格遵守開發規范,在軟硬件發布前,交給獨立的內部或外部測評組織進行安全性評估,及時解決所發現的問題。
參考文獻
[1]歐盟網絡安全局:《供應鏈攻擊威脅全景圖》報告(下)。
[2]歐盟網絡安全局(ENISA)《供應鏈攻擊威脅局勢報告》《黑客技術》。
[3]《供應鏈攻擊的安全分析》,知乎。
[4]https://zhuanlan.zhihu.com/p/389186468.