國測專家:防範軟體供應鏈安全風險 維護網路空間安全
中國資訊保安測評中心 馬金鑫
軟體供應鏈攻擊,一般是指在軟體的設計、開發、整合、部署、升級、修復等過程中,植入惡意程式或程式碼(攻擊者可能利用漏洞或管理上的安全缺失進行程式碼植入),對計算機系統造成損害。從在更新過程中替換相關補丁檔案的簡單攻擊,到入侵程式碼庫插入惡意程式碼的複雜攻擊,軟體供應鏈攻擊在網路攻擊中所表現的形式呈多樣化。軟體供應鏈攻擊可輕易繞過傳統的防禦壁壘,並且可長期潛伏在目標系統中,對系統安全構成嚴重威脅。近幾年,軟體供應鏈安全問題越來越突顯,對其進行研究並加以防範,對維護網路空間安全的意義重大。
一、軟體供應鏈攻擊事件數量持續增加
根據360威脅情報中心的《軟體供應鏈來源攻擊報告》,近幾年發生的軟體供應鏈攻擊事件達30多起。從這些攻擊事件可以看出,軟體供應鏈攻擊呈現出的特點包括隱蔽性較強、影響範圍較廣、攻擊門檻相對較低等。
1.軟體供應鏈攻擊影響範圍更大
從影響範圍看,軟體供應鏈攻擊往往發生在軟體生態環境的根源和傳輸環節,具有天然的擴散屬性,一次攻擊足以引發大規模的攻擊事件。針對生產環節的軟體供應鏈攻擊所造成的影響比針對運營環節的攻擊大得多,因為生產環節處於軟體供應鏈的上游,一旦遭到攻擊,即可波及更多下游環節。在2015年的XcodeGhost事件中,Xcode編譯器被惡意篡改,導致蘋果應用商店(AppStore)中下載量最高的5000個應用程式(App)中有76款被感染,其中包括多家大公司的知名App。安全漏洞攻擊一般發生在單點上,通用軟體的漏洞攻擊無疑也會導致較大規模的影響,但是,由於其較弱的傳播能力,在影響範圍上不及軟體供應鏈攻擊。
2.軟體供應鏈攻擊的檢測難度較高
軟體供應鏈攻擊的隱蔽性較強,多數軟體供應鏈攻擊發生在軟體的生產、傳輸過程中,在傳統觀念中,這些環節被預設是安全的(尤其是生產環節,幾乎所有人都認為編譯器是可信的),終端防護也很少對這些環節進行檢測。軟體供應鏈的檢測需要聯動的合作機制,難以從單點上發現。2017年6月發生的NotPetya勒索病毒事件,攻擊根源來自於M.E.Doc公司的更新伺服器,而該公司安全能力較低,在這種情況下,要從根源上去檢測並根除這種攻擊的難度非常大。
3.軟體供應鏈攻擊的數量呈上升趨勢
在越來越複雜的網際網路環境下,軟體供應鏈暴露給攻擊者的攻擊面也越來越多。攻擊者利用軟體供應鏈各個環節中的脆弱點實施攻擊,攻擊門檻相對較低,安全漏洞並不是必需條件,管理中的安全問題或相關人員的薄弱安全意識被利用,也足以導致遭受軟體供應鏈攻擊。近些年,越來越多的攻擊者利用這種特點實施攻擊,例如“Putty後門事件”,攻擊者僅需向某個常用工具中注入惡意程式碼,並將其釋出在網路上,便會不斷有人下載使用。
二、軟體供應鏈攻擊主要體現在生產和運營兩環節
軟體供應鏈攻擊的成因主要在於在軟體生命週期內被植入惡意程式碼所導致,從被攻擊環節的角度考慮,軟體供應鏈攻擊主要在生產和運營兩大環節產生。
在生產環節,編譯器是被攻擊的重要目標。編譯器的正確性要求編譯前後的原始碼與目的碼須在語義上保持一致。在某些場景下,編譯器廠商出於某種目的可能會插入與原始碼無關的程式碼,如為滿足安全性和測試需求,微軟的開發整合環境Visual Studio預設會在編譯連結過程中加入棧保護(GS)、動態基址(DynamicBase)和遙測(Telemetry)等功能。一般情況下,這些額外的程式碼並不會產生惡意後果。若編譯器是可信可靠的前提條件被推翻,編譯器被植入惡意程式碼,那麼,其編譯生成的目的碼也將被感染。編譯器的迭代編譯又使新編譯器被老舊編譯器汙染,最終導致惡意程式碼的繁衍和擴散。Unix系統的創始人之一肯·湯普森(Ken Thompson),曾提出在編譯器自身編譯的過程中加入後門程式碼,使其在編譯任意原始碼時都可將後門插入到目的碼中。
軟體整合過程同樣容易遭受攻擊。Github、SourceForge等原始碼管理網站為開發人員程式碼共享提供了便利平臺。據統計,Github上儲存了9千多萬個專案,使用者量達到3100萬;SourceForge的使用者量達到3300萬。在這些網站上,所有人都可參與原始碼的開發與維護,提交自己的程式碼分支,這就使惡意程式碼的植入有機可乘。專案整合和程式碼複用帶來額外的風險,未對第三方程式碼與軟體進行安全檢測與審查,是導致供應鏈問題出現的主要原因。系統中,任一元件被植入惡意程式碼,便可破壞整個系統的安全性。
在軟體運營環節,尤其是在更新或升級過程中,多數軟體並未對升級過程進行嚴格檢查,從而使攻擊者有機可乘。在使用者升級或更新過程中,攻擊者可能通過中間人攻擊替換升級軟體或補丁包,或誘騙使用者從非官方渠道下載,以達到網路攻擊的目的。攻擊者還可通過捆綁攻擊的形式,即在常用軟體中捆綁額外的軟體併發布,使用者在下載安裝該軟體的同時,也將其他軟體一併安裝到本地。
三、軟體供應鏈安全的研究與推進工作
軟體供應鏈安全越來越受到關注,安全研究團隊、安全公司,甚至在國家層面,都開展了軟體供應鏈安全的研究與推進工作。
在軟體供應鏈安全研究方面,國內外研究所、安全公司重點圍繞軟體供應鏈攻擊事件進行跟蹤分析,以尋求技術解決方案。例如,360威脅情報中心釋出的《軟體供應鏈來源攻擊報告》,研究近幾年發生的軟體供應鏈攻擊事件,從使用者、生產廠商、安全廠商的角度分別提出相應的解決方案。在理論研究方面,吳世忠等人編著的《資訊通訊技術供應鏈安全》,主要探討了軟硬體供應鏈的安全風險,並提出了相應的對策建議。在實踐活動方面,2018年3月,阿里安全正式啟動“功守道”軟體供應鏈安全大賽。該比賽通過模擬真實軟體供應鏈攻擊案例,利用攻守方的技術博弈,以期促使更多人關注軟體供應鏈安全技術的發展,這是國內首次以軟體供應鏈攻防技術為主題的比賽活動,也是產業界在軟體供應鏈安全技術研究領域的一次有意義的探索。
在軟體供應鏈安全標準制訂方面,2018年10月,由中科院軟體所、華為、聯想、螞蟻金服等公司起草的國家標準《資訊保安技術 ICT供應鏈安全風險管理指南》釋出。該標準規定了資訊通訊技術(ICT)供應鏈安全風險管理的過程和控制措施。2013年8月,美國國家標準和技術研究所(NIST)制定了《聯邦資訊系統和組織的供應鏈風險管理指南草案》,並於2015年2月釋出了更新版本的《聯邦資訊系統供應鏈風險管理指南》,指導聯邦政府採取相應措施,以減少ICT供應鏈風險。
在軟體供應鏈安全政策方面,美國在2009年釋出《美國網路安全空間安全政策評估報告》,將ICT供應鏈安全提高到國家戰略層面。
總體來說,目前我國在軟體供應鏈安全技術方面的發展還處於起步階段。雖然軟體供應鏈安全的問題在我國較早被提出,但是推行力度還遠遠不夠。在國家層面,缺少體系化的制度和相關政策予以支援。在行業層面,對軟體供應鏈安全技術研發的投入不夠。在社會層面,對軟體供應鏈安全問題缺乏重視,未建立起相關工作機制。
四、應對建議
軟體供應鏈的攻擊事件持續增加,這種攻擊所帶來的風險不只侷限於經濟利益、智慧財產權、資料隱私的破壞與竊取,還可能對國家安全構成威脅。基於此,本文提出如下幾點應對建議。
在國家層面,強化軟體供應鏈安全體系建設,把軟體供應鏈安全擺在突出位置,繼續推進核心技術軟體的可靠自主可控。目前,我們國家在關鍵軟體技術方面還無法實現完全自主可控。作業系統、辦公軟體、中介軟體等方面均需採購使用國外生產的軟體,這將是我國推進軟體供應鏈安全程序的不利因素。建設可信軟體供應鏈安全體系,出臺相關政策制度,推行相關行業標準規範,建設全方位、多層次、立體化的聯動工作機制,督促多行業共同努力,維護軟體供應鏈安全。
在行業層面,強化安全意識,把安全落實到軟體開發運營的整個流程。建立可信軟體生產運營環境,確保軟體生命週期的可靠安全。規範第三方開發商、第三方軟體的安全整合,對必須要引進的第三方開發商及其軟體進行安全審查與測評。加強軟體供應鏈安全技術研究與創新,著力發展和完善軟體供應鏈安全檢測與防禦技術。加強軟體安全測評與漏洞分析,避免安全漏洞被攻擊者所利用進行攻擊。建立高效應急管理和保障機制,在攻擊事件發生後,應儘快控制態勢,縮小影響範圍,降低危害程度。
在社會層面,強化協調配合,形成多方參與的軟體供應鏈安全保障格局。在國家科技重點專項中,加大對軟體供應鏈等技術研發的投入。鼓勵和支援安全檢測機構和社會力量圍繞關鍵基礎設施的軟體供應鏈開展漏洞分析與安全測試。培養全民網路安全意識,避免使用不可信來源的軟體,通過官方途徑進行軟體的更新、升級、使用。藉助安全檢測防護相關產品與服務進行安全託管,加強安全防禦能力。
總之,軟體供應鏈安全維繫著整個國家、行業、社會的安全,解決軟體供應鏈的安全問題,需要國家的鼓勵與支援,需要各行各業的共同努力。維護軟體供應鏈安全,是網路空間安全不可或缺的關鍵因素,也是國家安全保障的必然要求。
(本文刊登於《中國資訊保安》雜誌2018年第11期)
宣告:本文來自中國資訊保安,版權歸作者所有。文章內容僅代表作者獨立觀點,不代表安全內參立場,轉載目的在於傳遞更多資訊。如需轉載,請聯絡原作者獲取授權。