開(kāi)源軟件運(yùn)維安全防護(hù)的六個(gè)手段

開(kāi)源軟件是通過(guò)特定類(lèi)型的許可證發(fā)布的軟件,作為全球軟件開(kāi)發(fā)的基石,已成為全球發(fā)展、數(shù)字化與信息化變革的重要技術(shù)來(lái)源。

本文來(lái)自微信公眾號(hào)“twt企業(yè)IT社區(qū)”,作者/王登峰,某銀行資深架構(gòu)師。

開(kāi)源,顧名思義,即開(kāi)放軟件源代碼。代碼貢獻(xiàn)者可將自己編寫(xiě)的程序提交到開(kāi)源社區(qū)的公開(kāi)平臺(tái)上,其他代碼開(kāi)發(fā)者如有類(lèi)似的功能需求可以不必再自己動(dòng)腦動(dòng)手編寫(xiě)代碼,而是直接集成、修改或應(yīng)用貢獻(xiàn)者公開(kāi)的代碼。

開(kāi)源軟件是通過(guò)特定類(lèi)型的許可證發(fā)布的軟件,作為全球軟件開(kāi)發(fā)的基石,已成為全球發(fā)展、數(shù)字化與信息化變革的重要技術(shù)來(lái)源。針對(duì)開(kāi)源軟件運(yùn)維安全,建議采用如下防護(hù)手段:

1、建立軟件材料清單

軟件材料清單(Software Bill of Materials,SBOM)必須由項(xiàng)目維護(hù)者生成、維護(hù)和詳細(xì)提供,使用自動(dòng)化軟件成分分析(Software Composition Analysis,SCA)工具檢查所使用的組件,以及檢查是否含有惡意代碼或者漏洞組件。SBOM必須由包存儲(chǔ)庫(kù)安全地托管和分發(fā),并由下游用戶(hù)仔細(xì)檢查他們的安全性、質(zhì)量和許可證需求。

2、強(qiáng)化靜態(tài)分析檢測(cè)

針對(duì)開(kāi)源代碼開(kāi)展靜態(tài)分析以檢測(cè)其存在的漏洞或其他風(fēng)險(xiǎn)隱患,主要基于兩種技術(shù)。一種技術(shù)為不同代碼間的特征比對(duì),該技術(shù)的本質(zhì)為用同一種特征提取手段分別提取目標(biāo)代碼Code_A的特征Ca與參考代碼Code_R的特征Cr并進(jìn)行對(duì)比,如果代碼特征相同,則意味著代碼內(nèi)容一致,其風(fēng)險(xiǎn)點(diǎn)也一致。另一種技術(shù)為不同代碼之間的依賴(lài)關(guān)系比對(duì),該技術(shù)通常需要對(duì)完整代碼而非截取代碼片段進(jìn)行分析,其主要基于比對(duì)不同代碼中依賴(lài)的外部函數(shù)庫(kù)或組件,如果目標(biāo)代碼Code_A引用了已知存在風(fēng)險(xiǎn)點(diǎn)的代碼庫(kù)或函數(shù)Code_B,則目標(biāo)代碼通常會(huì)存在相同的風(fēng)險(xiǎn)點(diǎn)。

3、加強(qiáng)安全身份驗(yàn)證

建議服務(wù)提供者提供多因素身份驗(yàn)證(MFA)或?qū)嵤?qiáng)密碼策略,而項(xiàng)目維護(hù)人員應(yīng)該遵循身份驗(yàn)證標(biāo)準(zhǔn),例如,在可用的情況下使用MFA,避免密碼重用,或保護(hù)敏感令牌。

4、啟用分支保護(hù)規(guī)則

維護(hù)人員應(yīng)該進(jìn)行仔細(xì)審查合并請(qǐng)求,或者為敏感的項(xiàng)目分支啟用分支保護(hù)規(guī)則,以避免惡意代碼貢獻(xiàn)。由于項(xiàng)目構(gòu)建仍然可能發(fā)生在維護(hù)人員的工作站上,建議他們使用專(zhuān)用的構(gòu)建服務(wù)。可以隔離構(gòu)建步驟,這樣攻擊者就不能篡改構(gòu)建完成的項(xiàng)目。

5、獨(dú)立完成包構(gòu)建

軟件包的構(gòu)建不應(yīng)該由下載時(shí)臨時(shí)構(gòu)建,建議由包存儲(chǔ)庫(kù)實(shí)現(xiàn),以此減少破壞項(xiàng)目構(gòu)建的風(fēng)險(xiǎn)。如果由使用者構(gòu)建,這將消除與第三方構(gòu)建服務(wù)和包存儲(chǔ)庫(kù)相關(guān)的所有風(fēng)險(xiǎn)。在使用時(shí)可以通過(guò)隔離代碼或沙箱來(lái)減少惡意代碼執(zhí)行的影響。

6、建立開(kāi)源治理體系

構(gòu)筑健全的開(kāi)源軟件治理體系,設(shè)計(jì)符合企業(yè)自身情況的開(kāi)源治理流程,有助于確保開(kāi)源治理工作的可落地性,促進(jìn)開(kāi)源軟件的管理規(guī)范化、標(biāo)準(zhǔn)化,是安全、合規(guī)地使用開(kāi)源軟件的根本保障。

1)讓安全治理貫穿軟件生命全周期,全面保障開(kāi)源軟件安全;

2)使開(kāi)源軟件的使用規(guī)范化、體系化,納入企業(yè)常規(guī)管理流程;

3)貫徹開(kāi)源軟件安全使用意識(shí),明確開(kāi)源治理對(duì)于企業(yè)業(yè)務(wù)發(fā)展的重要性;

4)及時(shí)掌握開(kāi)源技術(shù)發(fā)展動(dòng)態(tài),加強(qiáng)開(kāi)源技術(shù)創(chuàng)新提升,掌握核心技術(shù)能力。

梳理開(kāi)源軟件安全風(fēng)險(xiǎn)點(diǎn)有助于提高對(duì)開(kāi)源軟件安全威脅的認(rèn)識(shí),如何把控開(kāi)源軟件的運(yùn)維安全:

一是安全防護(hù)需要所有環(huán)節(jié)的人員去共同維護(hù),攻擊者需要找到鏈條中單一弱點(diǎn)即可,而防御者需要覆蓋整個(gè)攻擊面。

二是應(yīng)提升所有環(huán)節(jié)人員的安全意識(shí),從根本上解決安全問(wèn)題。

三是使用規(guī)范的軟件開(kāi)發(fā)環(huán)節(jié),使得代碼開(kāi)發(fā)流程無(wú)懈可擊。

四是完善安全審計(jì)工具,協(xié)助開(kāi)發(fā)者解決自寫(xiě)代碼、引入代碼中的安全問(wèn)題。

五是對(duì)所有引入代碼、開(kāi)發(fā)人員不可信,對(duì)依賴(lài)的開(kāi)源代碼、開(kāi)發(fā)代碼多次掃描,防止投毒、漏洞的引入,甚至是內(nèi)部人員的惡意攻擊。

六是開(kāi)源代碼使用者需從官網(wǎng)下載代碼,并根據(jù)自己需求,審查許可信息和執(zhí)行漏洞掃描。

THEEND

最新評(píng)論(評(píng)論僅代表用戶(hù)觀點(diǎn))

更多
暫無(wú)評(píng)論