莊元?jiǎng)?/p>
保障軟件供應(yīng)鏈安全不只是某個(gè)部門的事,而是需要成為企業(yè)整體發(fā)展戰(zhàn)略計(jì)劃的一部分,并讓負(fù)責(zé)人都能理解這樣做的原因。為了確保軟件供應(yīng)鏈順暢平穩(wěn)運(yùn)行,組織首先要做的一件事就是制定一項(xiàng)嚴(yán)密的安全防護(hù)計(jì)劃,并聘請(qǐng)專職的首席安全官(CISO)來制定和落地這項(xiàng)計(jì)劃,而不是只是將計(jì)劃發(fā)布出來而已。
很多企業(yè)長(zhǎng)期以來只關(guān)注自身網(wǎng)絡(luò)安全的防護(hù),而忽略了供應(yīng)商產(chǎn)品的安全狀況,導(dǎo)致未經(jīng)過嚴(yán)格安全認(rèn)證與審核的訪問進(jìn)入企業(yè),這會(huì)帶來巨大風(fēng)險(xiǎn)。確保供應(yīng)鏈的可觀察性必不可少,軟件供應(yīng)鏈天然具有復(fù)雜性,只有通過持續(xù)的監(jiān)控分析,企業(yè)才能保證它們的安全進(jìn)化和發(fā)展,并確保長(zhǎng)期可用性和安全性。
大多數(shù)企業(yè)對(duì)開發(fā)人員在研發(fā)時(shí)的開源代碼引用和軟件依賴關(guān)系缺乏足夠了解。如果不能有效清點(diǎn)軟件中的所有第三方組件,當(dāng)嚴(yán)重的零日漏洞突然發(fā)生時(shí),組織將無法了解自己是否會(huì)受到影響,哪些應(yīng)用會(huì)受到影響,以及影響的嚴(yán)重性如何。如果組織部署了軟件供應(yīng)鏈管理系統(tǒng),就能夠準(zhǔn)確判斷威脅態(tài)勢(shì),并立即開始補(bǔ)救,避免安全事件發(fā)生。
軟件材料清單(SBOM)最近備受行業(yè)關(guān)注,但應(yīng)用SBOM只是基礎(chǔ),目的是可以了解軟件產(chǎn)品的各個(gè)組成部分。更關(guān)鍵的是,企業(yè)應(yīng)該基于已發(fā)現(xiàn)漏洞情報(bào)信息進(jìn)行威脅分析,對(duì)識(shí)別出的各種威脅進(jìn)行分類,并以此創(chuàng)建威脅處置流程。通過不斷重復(fù)上述工作,企業(yè)還可以不斷完善威脅處置流程。
在供應(yīng)鏈合作中,通過遵循零信任原則,企業(yè)可以更好地審核供應(yīng)鏈服務(wù)的安全性,所有對(duì)于系統(tǒng)的訪問都會(huì)建立在身份、端點(diǎn)和服務(wù)等一系列角色基礎(chǔ)上,必須得到安全策略一致的驗(yàn)證和授權(quán)之后才能進(jìn)行。
企業(yè)應(yīng)重視開發(fā)安全運(yùn)營(yíng)(DevSecOps),方法是將安全檢查工作列為開發(fā)人員必須完成的任務(wù)之一。無論是軟件設(shè)計(jì)過程中的威脅建模、錯(cuò)誤修復(fù)還是封堵代碼中的安全漏洞,應(yīng)用安全問題都需要被開發(fā)人員優(yōu)先考慮,并成為其日常開發(fā)工作的一部分。如果這部分工作要求沒有完成,就意味著其整個(gè)開發(fā)工作不能結(jié)項(xiàng)。
及時(shí)進(jìn)行安全補(bǔ)丁和軟件版本更新是構(gòu)建安全軟件供應(yīng)鏈的重要步驟。為了保證第三方軟件及開發(fā)者值得信賴,在部署安全補(bǔ)丁和版本升級(jí)之前,還需要有適當(dāng)?shù)拇胧﹣韺?duì)其進(jìn)行安全審查和監(jiān)控。
企業(yè)在構(gòu)建安全軟件供應(yīng)鏈時(shí)應(yīng)該貫徹安全編程和測(cè)試實(shí)踐,因?yàn)樗兄谠陂_發(fā)過程的早期階段識(shí)別和緩解安全漏洞,保護(hù)整個(gè)軟件系統(tǒng)免受攻擊。這一點(diǎn)很重要,因?yàn)檐浖?yīng)鏈往往涉及多個(gè)第三方合作伙伴,所有開發(fā)團(tuán)隊(duì)及人員均應(yīng)該遵守一直的安全編程要求。
科學(xué)的備份機(jī)制是防止數(shù)據(jù)竊取和勒索攻擊的最后一條防線。如果企業(yè)大量應(yīng)用了云計(jì)算技術(shù),定期進(jìn)行離線代碼備份工作將非常重要。企業(yè)應(yīng)該定期審查軟件服務(wù)提供商,尤其是提供關(guān)鍵應(yīng)用組件、銷售系統(tǒng)、財(cái)務(wù)系統(tǒng)的提供商。一旦發(fā)現(xiàn)存在風(fēng)險(xiǎn),就應(yīng)該及時(shí)手動(dòng)執(zhí)行離線的數(shù)據(jù)備份或數(shù)據(jù)恢復(fù)。
企業(yè)了解軟件供應(yīng)鏈?zhǔn)欠癜踩淖詈梅椒ň褪侵谱饕环輽z查清單,并以此進(jìn)行安全狀態(tài)檢查。檢查清單可以讓每個(gè)人都成為安全把關(guān)員,從而打造一條安全的軟件供應(yīng)鏈。不同類型企業(yè)對(duì)供應(yīng)鏈安全檢查的要求會(huì)有差異,但清單通常應(yīng)包括以下8個(gè)檢查點(diǎn):訪問控制、安全存儲(chǔ)、加密、安全傳輸、漏洞管理、定期更新、跟蹤系統(tǒng)和糾正措施。
軟件系統(tǒng)的安全性取決于其生命周期中的最薄弱環(huán)節(jié)。隨著現(xiàn)代軟件供應(yīng)鏈的全球化趨勢(shì)發(fā)展,跨不同平臺(tái)和多個(gè)數(shù)據(jù)集進(jìn)行協(xié)作開發(fā)的需求急劇加大。雖然許多企業(yè)組織已采用了基于云的協(xié)作開發(fā)平臺(tái),但目前軟件供應(yīng)鏈上協(xié)同溝通的最常見方式還通過郵件、電子表格和社交工具。企業(yè)應(yīng)該購(gòu)置統(tǒng)一的安全開發(fā)協(xié)作平臺(tái)來降低隱患。
保障數(shù)字化業(yè)務(wù)的安全開展已經(jīng)得到業(yè)界普遍認(rèn)同,企業(yè)組織也正在投入很多資源打造安全的軟件供應(yīng)鏈,并取得了一定的進(jìn)展,但人依然是整個(gè)軟件供應(yīng)鏈中最薄弱的因素。因此,企業(yè)需要加強(qiáng)內(nèi)、外部軟件工程師的安全意識(shí)教育,幫助他們提高對(duì)新工具、新技術(shù)和新威脅的認(rèn)識(shí)。