SolarWinds 漏洞四周年,供應(yīng)鏈攻擊已成企業(yè)“大麻煩”
四年前,SolarWinds 供應(yīng)鏈攻擊事件鬧得”沸沸揚揚“,將供應(yīng)鏈安全問題與危害性擺在”明面上”,如今四年過去了,我們又陸續(xù)經(jīng)歷了包括 Apache Log4j2 在內(nèi)的多個供應(yīng)鏈事件,接下來組織與企業(yè)該如何應(yīng)對供應(yīng)鏈安全的挑戰(zhàn)?
2020 年底,威脅攻擊者成功入侵 SolarWinds Orion 軟件的開發(fā)環(huán)境,在其中植入大量惡意代碼。此后,包括美國國務(wù)院、五角大樓、國土安全部、商務(wù)部、財政部、國家核安全委員會等政府部門以及多個財富 500 強在內(nèi)的 SolarWinds Orion 客戶相繼遭到網(wǎng)絡(luò)襲擊。
SolarWinds 公司后續(xù)披露調(diào)查結(jié)果顯示,早在 2019 年 9 月,威脅攻擊者可能已經(jīng)秘密訪問其內(nèi)部網(wǎng)絡(luò)系統(tǒng),對文件 SolarWinds.Orion.Core.BusinessLayer.dll 的源代碼進行篡改,并添加了后門代碼。幾天后,便開始在編譯服務(wù)器上修改產(chǎn)品發(fā)布流程,植入惡意代碼并進行測試,這一過程持續(xù)近兩個月。SolarWinds 供應(yīng)鏈事件敲醒了裝睡的人,供應(yīng)鏈安全問題由此備受重視,此后全球又陸續(xù)爆發(fā)了包括Apache Log4j2 在內(nèi)的多個供應(yīng)鏈事件。
總的來說,供應(yīng)鏈安全事件呈現(xiàn)以下特點:
- 影響范圍更大,實際危害性更高:每一次供應(yīng)鏈安全事件都對全球成千上萬家企業(yè)造成了極其嚴重的威脅;
- 威脅持續(xù)時間久,修復(fù)難度大:某些供應(yīng)鏈組件與企業(yè)系統(tǒng)架構(gòu)深度耦合,想要快速修復(fù)往往會引發(fā)業(yè)務(wù)連續(xù)性風險,修復(fù)難度和時間都存在巨大的成本;
- 企業(yè)常規(guī)防護無法應(yīng)對供應(yīng)鏈風險:在 Solarwinds 事件和 Apache Log4j2 事件中,無論企業(yè)的安全防護效果如何,基本都很難避開供應(yīng)鏈安全事件,這更像是“憑運氣”,而非靠實力。
2022 年,Gartner 就將“軟件供應(yīng)鏈”列為了 2022 年的第二大威脅,并預(yù)測到 2025 年,全球 45% 組織難免會一次甚至多次成為受害者。
細究背后深層次的原因,主要存在兩方面:一是企業(yè)對外部組件的依賴越來越高,尤其是開源組件。開源軟件在應(yīng)用開發(fā)中占據(jù)了主導(dǎo)地位,無論是企業(yè)采買的第三方商業(yè)軟件,還是請第三方開發(fā)的外包軟件,其代碼中都大量使用了開源組件,這給企業(yè)埋下了極為嚴重的供應(yīng)鏈安全風險。
二是對于攻擊者而言,企業(yè)的防護越來越堅固,包括很多傳統(tǒng)行業(yè)都是采用內(nèi)網(wǎng),大幅提升了傳統(tǒng)攻擊的成本。因此,從供應(yīng)鏈入手,一方面很多企業(yè)對供應(yīng)鏈組件的防護尚且不足,另一方面,通過影響供應(yīng)鏈可以波及到成百上千的企業(yè),攻擊的 ROI 有了顯著提升。
軟件供應(yīng)鏈攻擊已成大麻煩
相較于以往相對簡單的網(wǎng)絡(luò)系統(tǒng)環(huán)境,目前越來越多的組織依賴于智能化、云化以及開源的技術(shù)手段,整個業(yè)務(wù)運營的過程涉及到眾多參與方,大大增加了供應(yīng)鏈的復(fù)雜性。再加上越來越多第三方外包企業(yè)加入到企業(yè)供應(yīng)鏈鏈路上,導(dǎo)致整個供應(yīng)鏈鏈路愈發(fā)冗長,一旦其中某環(huán)節(jié)出現(xiàn)數(shù)據(jù)泄露、惡意代碼注入、服務(wù)中斷的問題,就會對整個供應(yīng)鏈鏈路上的企業(yè)造成嚴重破壞。
想要徹底搞清楚軟件供應(yīng)鏈攻擊的危害程度以及攻擊方式,需要從底層邏輯出發(fā)。按照以往供應(yīng)鏈攻擊事件分析結(jié)果來看,供應(yīng)鏈安全問題之所以難以解決,主要還是攻擊技術(shù)復(fù)雜多變、供應(yīng)鏈上下游人員權(quán)限管理難等 2 層面。
1.技術(shù)層面
技術(shù)層面,威脅攻擊者主要通過篡改源代碼、更新機制劫持、“冒名頂替”、倉儲、物流鏈路劫持等技術(shù)手段,達到攻擊目的。
(1) 更新機制劫持:供應(yīng)鏈攻擊中,更新機制劫持是一種極具破壞性的策略,威脅攻擊者利用軟件更新過程中的漏洞或不安全的通信渠道,將惡意代碼注入到軟件的更新包中,然后通過合法渠道將這些惡意更新推送給用戶。
這種攻擊方法的成功在于用戶對軟件更新的信任,當用戶下載和安裝被篡改的更新時,他們會在不知不覺中將惡意代碼引入到他們的系統(tǒng)中,一旦惡意代碼成功激活,攻擊者就可以獲取系統(tǒng)權(quán)限、竊取敏感信息或者對系統(tǒng)進行破壞。從操作系統(tǒng)到應(yīng)用程序再到安全工具,都有可能受到更新機制劫持的影響。
(2) 開發(fā)工具污染:開發(fā)工具污染是一種隱蔽而具有破壞力的策略。威脅攻擊者會針對廣受信任的開發(fā)工具或開發(fā)環(huán)境進行操縱,以在軟件開發(fā)過程中植入惡意代碼或后門,這種攻擊方式利用了開發(fā)者對其使用的工具和環(huán)境的信任,使得惡意代碼可以在軟件構(gòu)建的各個階段中存在,并最終被編譯或執(zhí)行。
開發(fā)工具污染可能會通過多種途徑實施,包括篡改開發(fā)工具的下載源、植入惡意插件或擴展、篡改開發(fā)工具的配置文件等。一旦惡意代碼成功植入到開發(fā)工具中,就會在開發(fā)者無意間使用這些工具時被執(zhí)行,導(dǎo)致軟件項目受到感染或者被操縱,從而威脅整個供應(yīng)鏈鏈路。
(3) 向開源倉庫投毒:威脅攻擊者通過向主流的軟件包管理源投放大量相似的軟件包或者鏡像,仿冒正規(guī)項目,以利用軟件開發(fā)者對其信任的盲點和相似性,一旦被感染的依賴包被引入到軟件項目中并被編譯或執(zhí)行,惡意代碼就會被激活,從而導(dǎo)致供應(yīng)鏈上下游系統(tǒng)都受到損害。
(4) 篡改源代碼:篡改源代碼是一種常見且危險的供應(yīng)鏈攻擊方法,通過對軟件或系統(tǒng)的源代碼進行惡意修改,來實施攻擊并植入后門、惡意代碼或漏洞,這種攻擊方法往往利用供應(yīng)鏈中的弱點,例如第三方軟件庫、開源組件或外包開發(fā)團隊,通過篡改其源代碼來滲透目標系統(tǒng)。
篡改源代碼攻擊中,攻擊者可能通過多種手段進行操作,威脅攻擊者可能利用未經(jīng)授權(quán)的訪問權(quán)限,直接對源代碼文件的編輯、新增或刪除,以插入惡意代碼或修改關(guān)鍵功能,還可以利用軟件開發(fā)過程中的漏洞或不安全實踐,例如弱密碼、未加密傳輸?shù)龋瑏慝@取對源代碼的非法訪問權(quán)限。(大部分威脅攻擊者都會預(yù)留后門,以便長期獲取訪問權(quán)限,自由地修改源代碼)
2.權(quán)限管理層面
超級賬號權(quán)限:供應(yīng)鏈攻擊中,威脅攻擊者利用供應(yīng)商預(yù)留的超級權(quán)限賬號,發(fā)起網(wǎng)絡(luò)攻擊的例子屢見不鮮。這些超級賬號權(quán)限成為了威脅攻擊者獲取系統(tǒng)控制的理想入口,利用了供應(yīng)商在開發(fā)軟件或提供服務(wù)時通常會預(yù)留的后門或特權(quán)賬號。
威脅攻擊者可能會利用這些預(yù)留的遠程管控能力,通過網(wǎng)絡(luò)渠道遠程操控受影響的系統(tǒng),從而執(zhí)行包括修改系統(tǒng)配置、安裝惡意軟件、竊取敏感數(shù)據(jù)等在內(nèi)的任意惡意操作,超級權(quán)限賬號則賦予了威脅攻擊者對系統(tǒng)的完全控制,使其能夠繞過所有安全措施和權(quán)限限制,實施更為深度和廣泛的攻擊。
一旦威脅攻擊者成功獲取了這些權(quán)限,就可以在不被察覺的情況下對下游系統(tǒng)進行長期監(jiān)控和操控,造成嚴重的安全風險和數(shù)據(jù)泄露。因此,如何管理供應(yīng)鏈上有組織的權(quán)限問題是解決供應(yīng)鏈安全問題不可忽視的環(huán)節(jié)。
如何緩解供應(yīng)鏈攻擊?
(1) 供應(yīng)商審查和管理:緩解供應(yīng)鏈攻擊的關(guān)鍵之一是進行有效的供應(yīng)商審查和管理,供應(yīng)商審查和管理是組織保護自身免受供應(yīng)鏈攻擊影響的重要步驟之一,對于任何組織來說,這是最重要且經(jīng)常被忽視的一步。
組織應(yīng)該將供應(yīng)商的數(shù)字資產(chǎn)納入全面的、基于真實風險的安全評估體系中,通過要求供應(yīng)商提供安全合規(guī)性文件、安全認證和獨立審計報告,建立一個包括評估潛在供應(yīng)商的安全實踐、安全標準和數(shù)據(jù)保護措施的全面供應(yīng)商審查程序。
對供應(yīng)商的審查應(yīng)該是一個持續(xù)的過程,而不僅僅是在合作開始時進行一次性的審查。
另外,組織應(yīng)該加強對供應(yīng)鏈的監(jiān)控和審計,包括監(jiān)控供應(yīng)商的網(wǎng)絡(luò)活動、數(shù)據(jù)訪問和系統(tǒng)行為,以及定期對供應(yīng)鏈進行安全審計和檢查,應(yīng)該對供應(yīng)商的網(wǎng)絡(luò)安全證書、風險管理計劃、以及是否以同樣的方式審查供應(yīng)商進行全面審核,通過實時監(jiān)控和審計,可以及時發(fā)現(xiàn)和應(yīng)對供應(yīng)鏈中的安全風險和漏洞。
(2) 減少第三方和開源組件依賴:組織應(yīng)該審查和評估其對第三方和開源組件的依賴情況,識別和分析所有使用的第三方庫、框架和工具,了解其安全性和穩(wěn)定性,通過對第三方和開源組件的全面審查,可以識別潛在的安全風險和漏洞,及時采取措施進行修復(fù)或替換。
此外,組織還需要建立有效的第三方和開源組件管理機制,建立清晰的政策和流程,規(guī)范組織內(nèi)部對第三方和開源組件的選擇、審查和使用。同時,建立一個集中化的組件庫和更新機制,確保所有使用的組件都經(jīng)過審查和更新,以修復(fù)已知的安全漏洞。
(3) 數(shù)據(jù)交換與可見性權(quán)限控制:為了最大程度上緩解供應(yīng)鏈攻擊,組織需要采取有效的措施來管理數(shù)據(jù)交換和可見性權(quán)限,以確保只有合適的人員能夠訪問和處理敏感信息,采用加密技術(shù)保護數(shù)據(jù)在傳輸過程中的安全,確保數(shù)據(jù)在傳輸過程中不被竊取或篡改。
同時,建立數(shù)據(jù)交換協(xié)議和標準,明確數(shù)據(jù)交換的方式、流程和安全要求,確保數(shù)據(jù)交換的合法性和安全性。其次,實施嚴格的可見性權(quán)限控制是必不可少的,包括對系統(tǒng)和數(shù)據(jù)訪問權(quán)限進行精確的控制和管理,只授權(quán)給合適的人員訪問特定的數(shù)據(jù)和系統(tǒng)功能。通過實施基于角色的訪問控制和細粒度的權(quán)限管理,可以最大程度上減少未經(jīng)授權(quán)的訪問和數(shù)據(jù)泄露的風險。
(4) 可信、透明與溯源:組織應(yīng)當建立可信、透明的供應(yīng)鏈生態(tài)系統(tǒng),與供應(yīng)商建立長期合作關(guān)系,并確保他們符合一定的安全標準和規(guī)范,通過建立信任和透明度,可以降低供應(yīng)鏈攻擊的風險,因為供應(yīng)商將更加積極地配合安全措施和審查。
另外,建立有效的溯源機制也是非常重要的,此舉能夠確保所有產(chǎn)品和組件都能夠被準確地追溯到其來源,以便在發(fā)生安全事件時迅速確定受影響的范圍和采取相應(yīng)的措施,通過建立溯源機制,可以更加有效地應(yīng)對供應(yīng)鏈攻擊,并降低其對組織的損害程度。
(5) 第三方風險管理:公司與第三方之間的聯(lián)系和相互依賴在供應(yīng)鏈生態(tài)中不斷增長,組織需要擴展供應(yīng)商風險管理的定義,以涵蓋端到端安全。允許公司評估、改善、監(jiān)控和管理整個關(guān)系生命周期的風險,將自己的業(yè)務(wù)和技術(shù)團隊與合作伙伴和供應(yīng)商聚集在一起,在違反法規(guī)、系統(tǒng)關(guān)閉或數(shù)據(jù)泄露等方面識別關(guān)鍵資產(chǎn)并對業(yè)務(wù)運營的潛在損害進行討論和定義。
除上述供應(yīng)鏈上下游企業(yè)能夠?qū)嵤┑陌踩胧┮酝?,有效保證供應(yīng)鏈安全的策略就是政策層面加大監(jiān)管,指導(dǎo)各個組織、企業(yè)樹立起安全供應(yīng)鏈風險意識。
開源組件或開源軟件的應(yīng)用已成為互聯(lián)網(wǎng)行業(yè)普遍共識,在企業(yè)降本增效、產(chǎn)業(yè)創(chuàng)新中起著主導(dǎo)作用,這種情況看似能夠大幅提升效率,節(jié)約成本,但不可避免的會帶來很多不可控的安全風險,倒逼企業(yè)必須“面對”供應(yīng)鏈安全合規(guī)問題。
不僅如此,目前產(chǎn)業(yè)鏈大都是全球性質(zhì)的,供應(yīng)鏈就不再局限于國內(nèi),而是跨越國界,涵蓋全球范圍內(nèi)的供應(yīng)商和合作伙伴,意味著安全風險也在不斷擴大,不僅受到本地法規(guī)的約束,還面臨著國際標準和跨境合規(guī)的挑戰(zhàn)。
因此,為有效應(yīng)對不同國家和地區(qū)的法律法規(guī)要求,并確保信息安全標準的一致性和合規(guī)性,建立一個覆蓋面廣、靈活性高的供應(yīng)鏈安全政策框架至關(guān)重要。
國內(nèi)目前針對供應(yīng)鏈安全問題更多的是在關(guān)鍵行業(yè)的部門規(guī)章和標準中體現(xiàn)。其中以《網(wǎng)絡(luò)安全法》、《數(shù)據(jù)安全法》、《個人信息保護法》和《關(guān)鍵信息基礎(chǔ)設(shè)施安全保護條例》等為代表的法律法規(guī)密集發(fā)布和實施,已基本形成了網(wǎng)絡(luò)與數(shù)據(jù)安全管理的框架,覆蓋了管理制度、產(chǎn)品與服務(wù)安全、人員安全、供應(yīng)鏈管理活動等方面,對供應(yīng)鏈安全提出了明確要求并設(shè)置了相應(yīng)的法律責任。
國外其他國家同樣逐漸意識到了開源軟件供應(yīng)鏈安全的重要性,并采取了相應(yīng)的措施,一些國家制定了針對軟件供應(yīng)鏈安全的法律和政策,要求企業(yè)采取必要的措施確保軟件供應(yīng)鏈的安全性。例如,美國“網(wǎng)絡(luò)安全總統(tǒng)行政 14028 號命令”第四節(jié)中,特別關(guān)注“增強軟件供應(yīng)鏈安全”,并對美國國家標準與技術(shù)研究所(NIST)、管理和預(yù)算辦公室(OMB)、網(wǎng)絡(luò)安全和基礎(chǔ)設(shè)施安全局(CISA)等提出了要求。
同時,歐盟、北約等國際團體、以及標準制定機構(gòu)也發(fā)布了相關(guān)的指南和標準,以引導(dǎo)開發(fā)者和企業(yè)提升開源軟件供應(yīng)鏈的安全水平。
結(jié)語
距離 SolarWinds 供應(yīng)鏈安全事件發(fā)生了四年,供應(yīng)鏈安全問題能否有效解決?總的來說局勢并不是很樂觀,供應(yīng)鏈安全問題涉及到層面太過復(fù)雜,無論是開源組件使用問題,還是上游的管理權(quán)限,亦或是自身代碼問題,無論其中哪一個環(huán)節(jié)出現(xiàn)問題,都會給威脅攻擊者留下可乘之機,危害整個鏈路的安全。