漏洞的根源
不安全的軟件通常從一開(kāi)始就存在缺陷。“缺陷”是在編寫代碼時(shí)引入的問(wèn)題,可能導(dǎo)致“漏洞”,形成軟件代碼中可利用的條件,為攻擊打開(kāi)大門。缺陷會(huì)隨著時(shí)間的推移而累積,從而導(dǎo)致“安全債務(wù)”,即在應(yīng)用程序的生命周期內(nèi)無(wú)法修復(fù)的缺陷。安全債務(wù)是DevSecOps興起的重要驅(qū)動(dòng)力,DevSecOps在整個(gè)軟件開(kāi)發(fā)生命周期中集成了安全性。
根據(jù)應(yīng)用安全機(jī)構(gòu)的“軟件安全現(xiàn)狀”研究報(bào)告,通過(guò)超過(guò)750,000個(gè)應(yīng)用程序的靜態(tài)分析中提取的數(shù)據(jù),對(duì)導(dǎo)致缺陷引入的因素進(jìn)行了細(xì)致的研究。
研究發(fā)現(xiàn),無(wú)論規(guī)模大小,前五年的申請(qǐng)數(shù)量都以每年40%左右的速度穩(wěn)定增長(zhǎng)。但新缺陷引入的速度遵循不同的模式。當(dāng)新應(yīng)用程序啟動(dòng)時(shí),缺陷的數(shù)量會(huì)急劇下降,這很可能是由于最初的掃描發(fā)現(xiàn)了累積的缺陷。然后,在第一年半期間,近80%的應(yīng)用程序沒(méi)有引入新的缺陷。然而,接下來(lái)的時(shí)間里,缺陷的引入穩(wěn)步增長(zhǎng),直到第5年左右趨于平穩(wěn)。
發(fā)現(xiàn)的常見(jiàn)缺陷結(jié)果因掃描類型不同而有所差異,因?yàn)殪o態(tài)檢測(cè)、動(dòng)態(tài)檢測(cè)和軟件組成分析涉及不同的技術(shù),可以檢測(cè)到不同的問(wèn)題,因此說(shuō)明使用多種檢測(cè)的重要性。此外和檢測(cè)頻率也有關(guān)系。
更安全的軟件
從一開(kāi)始就防止引入所有缺陷是不切實(shí)際的,但可以通過(guò)一些方法讓軟件更加安全。
首先,盡早盡快修復(fù)安全缺陷。當(dāng)軟件使用兩年時(shí),可以觀察到軟件積累越來(lái)越多地缺陷。由于軟件的復(fù)雜性隨著時(shí)間的推移而增加,而對(duì)軟件安全性關(guān)注的降低,這段時(shí)間缺陷呈上升趨勢(shì)。
其次,考慮自動(dòng)化和培訓(xùn)開(kāi)發(fā)人員。通過(guò)使用自動(dòng)化工具在開(kāi)發(fā)人員編寫代碼時(shí)發(fā)現(xiàn)代碼中的缺陷及漏洞,通過(guò)修復(fù)建議及缺陷定位可以及時(shí)修復(fù)問(wèn)題。通過(guò)培訓(xùn)開(kāi)發(fā)人員了解常見(jiàn)缺陷及如何引入缺陷降低此類缺陷數(shù)量。
最后,建立應(yīng)用程序生命周期管理。從應(yīng)用程序的概念和規(guī)劃階段開(kāi)始,經(jīng)過(guò)設(shè)計(jì)、開(kāi)發(fā)、測(cè)試、部署、運(yùn)行和維護(hù)等不同階段進(jìn)行管理。不僅有助于提高應(yīng)用程序的質(zhì)量、可靠性和效率,同時(shí)也有助于降低開(kāi)發(fā)和維護(hù)成本。通過(guò)有效的管理,可以更好地滿足用戶需求,并快速響應(yīng)市場(chǎng)的變化。
嚴(yán)謹(jǐn)是要求
在當(dāng)今的安全環(huán)境中,軟件安全至關(guān)重要。隨著國(guó)家對(duì)網(wǎng)絡(luò)安全關(guān)注增加并不斷推出法律法規(guī),對(duì)軟件開(kāi)發(fā)企業(yè)來(lái)說(shuō),,確保軟件的安全性已經(jīng)成為一項(xiàng)重要任務(wù)。了解缺陷是如何產(chǎn)生的,以及如何修復(fù)缺陷,可以幫助確保軟件產(chǎn)品的安全性和可行性。