軟件供應鏈安全現狀與對策建議
縱深話題:軟件供應鏈安全風險解析 隨著互聯網的迅猛發展,軟件供應鏈安全事件近年來頻繁發生。軟件供應鏈安全具有威脅對象種類多、極端隱蔽、涉及緯度廣、攻擊成本低回報高、檢測困難等特性。軟件供應鏈中的任意環節遭受攻擊,都會引起連鎖反應,甚至威脅到國家網絡安全。軟件供應鏈其安全問題應該上升到基礎設施安全的高度來對待,應該得到更多的、更廣泛的重視。本專題圍繞軟件供應鏈,分析其所面臨的主要安全風險和挑戰,從各環節、多層面提出安全保障建議。 近年來,隨著網絡安全形勢的不斷發展變化,世界范圍內網絡安全事件頻發,大量網絡攻擊行為也滋生了以經濟利益為目的的灰色產業鏈,對國家關鍵信息基礎設施、重要業務信息系統以及公民個人信息安全造成極大損害。
一、披著“合法”外衣的惡意軟件引關注
在嚴峻的網絡安全大環境下,公安機關作為網絡安全監管部門,在全國范圍內組織開展了網絡違法犯罪打擊整治工作,從源頭上對黑、灰產違法犯罪團伙進行打擊,有效保障了國家網絡安全。 在對近年來的網絡攻擊行為進行深入分析發現,惡意代碼的傳播和擴散占了很大比例, 尤其是披著“合法”外衣的惡意軟件,使惡意代碼在傳播速度與影響面方面有了大幅提升,而常規基于特征識別,例如信息摘要算法(MD5)、關鍵字等的安全防護措施往往失效,給惡意代碼的發現與防護帶來了難度。 此類披著“合法”外衣的惡意軟件,已經引起各國政府機構、互聯網企業的關注,并對其產生的原因與途徑進行了識別與定義,美國微軟公司首先定義了該網絡安全風險,稱之為軟件供應鏈安全(Software Supply Chain Attack)。目前,通過公安機關網絡安全監測平臺及國內互聯網安全企業監測發現,這類披著“合法外衣”的惡意代碼仍在我國蔓延,威脅國家網絡安全。本文結合公安機關工作實際與軟件供應鏈安全特性與關鍵環節,進行分析探討,并提出意見建議。
二、軟件供應鏈概念與現狀
1. 軟件供應鏈具有極強互聯網特性 傳統的制造業、食藥供應等領域的供應鏈流程與標準已日趨完善,如商務部、財政部等國家部委發布的《關于2018年流通業現代供應鏈體系建設的通知》和《GB/T 4754-2017 2017年國民經濟行業分類》等,都對傳統供應鏈進行了充分的定義與規范。軟件供應鏈是互聯網迅猛發展的產物,具有極強“互聯網特性”,但是,通過研究分析發現,其業務流程和關鍵因素的基本屬性與傳統供應鏈并沒有太大變化,為方便大家理解,我們對一些關鍵環節進行了比對(如表所示)。
2. 軟件供應鏈的三個關鍵流程 根據軟件供應鏈的特點,軟件供應鏈的業務流程可以抽象成開發、交付以及應用三個環節。在開發環節,主要是指軟件開發商的編程人員根據用戶(含定制用戶)的需求,進行編程并完成軟件包提供的過程。該過程主要涉及用戶需求、編程語言、開發環境、開發框架、測試和封包等;在交付環節,主要是指開發商或者推廣商通過互聯網網站、在線商城、社交工具、在線網盤或者通過存儲介質,將開發或定制的軟件交付給最終用戶;在應用環節,主要是指最終用戶使用該軟件產品,包括下載、安裝、注冊、付費、使用、故障修復、升級、卸載等全部過程。 3. 應用環節是軟件供應鏈流向的重要維度 應用環節是充分了解軟件供應鏈流向的一個重要維度,根據調研數據,從軟件安裝量維度看,約有75%的終端安裝了辦公軟件,排名最高,其次是休閑娛樂軟件,占比60%;從軟件覆蓋率維度看,網絡安全軟件的覆蓋率高達80%,其次是休閑娛樂軟件;從軟件付費與免費維度看,付費的軟件寥寥無幾,免費的互聯網軟件多為用戶自行下載安裝的,軟件的質量參差不齊,軟件的來源也不清晰。
三、軟件供應鏈風險分析
從近年來網絡攻擊事件的特點看,軟件供應鏈安全主要是指:“修改軟件或開發階段的源碼庫、編碼環境,植入惡意代碼,在各類官方/非官方應用下載網站、網盤、通信工具以及硬件刻錄光盤進行散布,誘導或捆綁進行下載,最終成功植入惡意代碼”,這一系列的操作已不同于以往通過郵件釣魚、鏈路劫持等手段,是整個軟件供應鏈需要共同面對的問題。在抽象出軟件供應鏈的關鍵環節后,可以做出假設,非法攻擊者一旦對軟件供應鏈中的任意環節進行攻擊、篡改,都會引起最終軟件供應鏈的連鎖反應,直接危害國家網絡安全。供應鏈環節可能遭受的風險如下:
1. 軟件開發環節供應鏈風險 在軟件開發階段, 尚未有統一的、經過安全檢驗的發布渠道,多數工具未經檢測直接發布;工具及庫通常由商業公司或個人開發,因代碼復雜,編程人員往往依據將易用性作為選擇開發配套的唯一標準,缺乏安全的意識。因此,在開發階段存在被病毒污染的可能,導致開發出的功能模塊默認感染病毒,同時,在進行源代碼打包或開發過程中,對功能模塊進行后門留存,給程序的開發環境以及后續的使用環境,都帶來了安全隱患。此外,程序開發環境一般屬于核心區域,一旦編程人員下載了不安全的工具,則可能直接導致整體編程環境出現重大安全隱患,所有從該環境出入的代碼,都可能存在泄密、篡改等風險。 在軟件開發階段,如果是自主開發,編程人員更為關注功能實現,往往會引用成熟、高效的開發框架,缺乏對安全的考量,如引用不安全函數、編程邏輯漏洞。在開發過程中,由于使用了不安全的工具與第三方庫,間接導致病毒污染,也可能會有未知的后門留存,帶來安全隱患。如果是外采購買,其面臨的安全問題至少包含自主開發面臨的所有問題,同時,外部廠商也會在提供模塊過程中,攜帶新的供應風險。 在軟件測試環節,進行源代碼測試的工具如果存在惡意代碼感染,則可能感染整體測試環境;測試人員不具備安全意識,測試電腦在不安全的環境進行操作,則帶來次生感染;此外,進行源代碼封包的工具也可能存在惡意代碼感染。
2. 軟件交付環節供應鏈風險 在發布渠道方面,目前,主流的軟件發布渠道缺乏有效的監管,各應用發布商缺乏對軟件發布的安全審核,同時,在網上也充斥著大量的個人發布渠道;從應用在上傳至渠道用于下載的傳輸途徑、存儲、發布等環節,易發生多維度的篡改行為,導致渠道風險的發生;非官方發布平臺直接發布或被篡改并植入惡意代碼,造成感染。 在發布下載方面,軟件廠商出于推廣需要,多數軟件往往會對自有軟件進行捆綁安裝,已形成了完整的灰色產業鏈,常見如第三方下載點、云服務、破解軟件等下載安裝時出現,都缺乏對捆綁軟件的審核機制。同時,常見如域名劫持(DNS)、內容分發系統(CDN)緩存節點篡改等,導致用戶在不知情的情況下,下載存在惡意代碼或后門的軟件。
3. 軟件用戶應用環節供應鏈風險 在安裝方面,安裝源自身可能存在隱患,安裝時往往會配套一個腳本安裝工具代為執行,但是,安裝工具的出現無疑會增加整體使用供應鏈的安全;因為盜版軟件的猖獗,終端用戶往往會下載激活工具、注冊機等,該類工具由于其非法性,往往來源存在問題。 在升級方面,升級包是對原軟件進行升級的代碼包,未經認證的升級包存在一定的安全風險;官方廠商以及第三方非認證組織往往會通過自身渠道進行補丁包發布,終端用戶多數不會進行分辨,下載即安裝。 在卸載方面,官方應用往往會將卸載工具內嵌至應用中,但是,對于部分應用由于其卸載不便,且容易殘留,提供的第三方卸載工具,也會存在安全隱患。
四、國內外的相關應對舉措 軟件供應鏈安全是一個全球性問題,究其根本,是由于軟件行業全球化、市場化、模塊化的特點而生。2017年底,國家互聯網應急中心(CNCERT)發布的《開源軟件代碼安全缺陷分析報告》,進一步印證了軟件供應鏈—代碼層面臨的諸多問題。為應對軟件供應鏈安全,國內外政府機關、企業已開始采取相關措施。
1.制定軟件供應鏈標準、規范 美國政府頒布的《ICT供應鏈風險管理標準》(NIST SP800-161)、商用信息技術軟件及固件審查項目(VET)等,清楚界定了軟件供應鏈中涉及存儲、檢索、修改、傳輸以及服務的相關標準與要求,在一定程度上規避了軟件供應鏈面臨的諸多風險。
2.營造安全可靠的軟件資源社區 不同于原軟件資源共享平臺Github僅負責資源的共享,而較少考慮源碼的安全,國外互聯網巨頭,如杰蛙科技(JForg)、黑鴨軟件(Black Duck)、Twistlock、容器安全(Aqua Security)等聯合建設的開源項目Grafeas,清晰地將作者身份、代碼記錄、安全掃描結果等進行全過程展現。微軟一直以來推崇的安全開發流程(SDL)等,都是將軟件開發的整體流程,賦予其“鏈條化”,并對每個環節施加安全保障措施。
3.組織軟件供應鏈攻防演練、競賽 針對生產環境、開發環境、發布環境以及終端用戶環境的“軟件供應鏈”各階段,開展攻防演練、競賽,充分吸收容納國內外科研院所、安全企業以及安全從業者的技術力量,逐步摸索出一套完整可行的軟件供應鏈安全解決方案,如國內互聯網企業阿里巴巴組織的“功守道”軟件供應鏈安全大賽等,均取得了較好的效果與借鑒價值。
五、意見與建議
隨著軟件供應鏈給網絡安全帶來的安全風險,國家相關部門應切實采取有效措施,社會各界應廣泛參與,共同營造網絡清朗空間。有關意見建議如下:
1.國家網絡安全監管部門 一是制定符合我國軟件產業鏈的法律規范、標準體系。在《網絡安全法》出臺的背景下,在國家關鍵信息基礎設施保護、網絡安全等級保護等法規和行業主管部門規章的制定過程中,充分考慮軟件供應鏈安全涉及的各方面,增加相應規范條款,在對軟件供應鏈的各環節加以指導、約束。同時,出臺或修訂相關技術標準,規范軟件供應鏈涉及的各環節。 二是加強軟件供應鏈安全監管。網信、公安、工信等部門,應加強對軟件供應鏈涉及的各個流程和關鍵環節的監管,建立體系化的監管機制和技術手段,加強軟件安全審核和軟件安全性檢測,有效防范軟件供應鏈安全威脅。 三是嚴厲打擊軟件供應鏈違法犯罪活動。公安機關進一步加強對網絡攻擊篡改、傳播病毒木馬、設置軟件后門、竊取用戶信息等軟件供應鏈領域違法犯罪的打擊力度,順著軟件供應鏈涉及的問題源碼、傳播途徑(發布渠道)、感染目標等體系,全面摸排,依法打擊查處。 四是協同國內各方力量“共治”。針對軟件供應鏈風險這一社會廣泛關注的問題,國內政府機關、科研院所、信息安全企業共同協同參與,從軟件的開發、交付、應用等各環節加強安全防范。組織開展針對軟件供應鏈的攻防演練,逐步固化、積累經驗,培養信息安全的中堅力量。
2.國內科研院所和互聯網企業 一是推動構建安全可靠的軟件資源渠道。國內科研院所、大型互聯網企業可依托自己的業界影響與技術實力,充分利用安全加密、數字簽名等安全技術手段,加強審核、檢測和防篡改等安全保護,為社會或行業構建安全可靠的軟件資源共享渠道。 二是加強軟件安全檢測。國內科研院所、有關檢測機構應加強軟件安全檢測,既包含軟件自身缺陷、性能等方面的檢測,也包括是否存在后門、漏洞等方面的檢測。重點行業部門應加強對行業通用軟件、定制軟件的安全檢測。加強檢測技術和工具的研究和開發,提升我國軟件安全檢測能力和水平。 三是加強軟件供應鏈風險共享和通報。加強軟件供應鏈威脅情報信息共享與通報。國內科研院所、大型互聯網企業等應將軟件威脅和問題及時上報國家網絡與信息安全信息通報機構或公安機關,以便相關部門準確評估相關風險的社會影響,從國家、社會等層面,全面解決問題。
3.軟件用戶 一是應選擇安全可靠的軟件資源下載渠道。雖然官方/高聲譽的資源下載渠道同樣面臨嚴峻的軟件供應鏈風險,但是,安全度相較自媒體的渠道明顯更為可靠,出現問題也能夠進行源頭溯源。對于政府部門和企事業單位的業務區,應避免安裝非必要的軟件,確保軟件源頭安全。 二是嚴格把控資源升級、卸載等過程。資源的下載與安裝的確是軟件供應鏈突破的主要入口,但是,對于深度隱藏的“合法資源”來說,其往往會在后續發布的補丁、卸載腳本中,內嵌危險代碼,用戶更難以察覺,建議使用正版軟件,避免使用盜版軟件的注冊機、激活工具。 三是提升安全防護能力。軟件供應鏈風險是一個廣泛的概念,在沒有充分自主可控的情況下,應該提升攻擊者的攻擊成本與難度,及時有效發現資源、軟件的異常活動行為,加強系統層面的安全防護。 原創: 祝國邦 陳潔 中國信息安全