如何通過反饋循環(huán)提高應(yīng)用程序安全性
對于大多數(shù)組織來說,提高應(yīng)用程序安全性意味著實施更多的安全軟件開發(fā)生命周期(Secure SDLC)。實施完所有內(nèi)容后,該怎么辦?還是您可以做些什么來改善現(xiàn)有的能力?一種方法是評估當(dāng)前一切工作狀況,然后進(jìn)行更改、評估和繼續(xù)。
這種方法的問題在于,由于多種原因,應(yīng)用程序安全度量可能很困難。使用發(fā)現(xiàn)和修復(fù)的漏洞數(shù)量不會考慮每個漏洞的嚴(yán)重性。即使您考慮了嚴(yán)重性,為什么漏洞數(shù)量仍在減少?您在發(fā)現(xiàn)它們方面變得更糟還是在預(yù)防它們方面做得更好?通過跟蹤應(yīng)用程序安全性中的基本指標(biāo)很難判斷發(fā)生了什么。
什么是AppSec中的反饋循環(huán)?
在沒有完善指標(biāo)的情況下提高應(yīng)用程序安全性(AppSec)的一種方法是創(chuàng)建反饋循環(huán)。反饋循環(huán)很簡單:使人們可以實時訪問信息,并使他們有機(jī)會進(jìn)行更改。有許多研究表明反饋循環(huán)的有效性以及它如何幫助改變?nèi)祟愋袨?。反饋循環(huán)可用于應(yīng)用程序安全性,以通過更改開發(fā)人員行為來幫助改進(jìn)代碼。
反饋循環(huán)分為四個階段:
- 證據(jù):衡量并捕獲行為
- 相關(guān)性:行為是在使人產(chǎn)生共鳴的環(huán)境中給予人的
- 后果:該人了解該行為如何導(dǎo)致負(fù)面結(jié)果
- 行動:人員必須根據(jù)數(shù)據(jù)采取明確的行動
執(zhí)行該操作后,將收集更多數(shù)據(jù),并再次開始反饋循環(huán)。
如何有效使用反饋回路
反饋回路的一個示例是在速度限制標(biāo)志旁邊添加動態(tài)速度顯示。在合法速度限制(相關(guān)性)旁邊,會向用戶提供汽車的速度(證據(jù))。人們會想起超速行駛的不利方面,例如罰單或事故(后果),因此大多數(shù)駕駛員會減速(行動)。不僅如此,駕駛員在標(biāo)志以外的幾英里處平均減速10%。此反饋循環(huán)可有效地獲得所需的結(jié)果并使人們改變行為。
可以在應(yīng)用程序安全性中利用反饋循環(huán),以幫助獲得更安全的代碼和更少的漏洞的預(yù)期結(jié)果。一種方法是利用諸如Parasoft之類的靜態(tài)應(yīng)用程序安全測試(SAST)工具,從該工具中獲取漏洞數(shù)據(jù),并將其提供給編寫代碼的開發(fā)人員以及該漏洞的嚴(yán)重性和潛在影響。開發(fā)人員可以在上下文中看到他們所犯的安全錯誤,并意識到這些漏洞的潛在影響。接下來,開發(fā)人員將修復(fù)相關(guān)的錯誤,并根據(jù)使用HackEDU之類的平臺發(fā)現(xiàn)的漏洞進(jìn)行相關(guān)的安全編碼培訓(xùn),以確保他們正確修復(fù)了該漏洞。開發(fā)人員在編寫安全代碼方面變得更好,因為他們在了解后果之后正在學(xué)習(xí)自己犯的錯誤。反饋循環(huán)與安全軟件開發(fā)生命周期一起持續(xù),結(jié)果是獲得了更安全的代碼。
這樣創(chuàng)建的反饋循環(huán)是:
- 證據(jù):向開發(fā)人員提供了他們創(chuàng)建的安全問題
- 相關(guān)性:開發(fā)人員查看他們編寫的代碼中漏洞的嚴(yán)重性
- 后果:開發(fā)人員根據(jù)漏洞和嚴(yán)重性意識到潛在的風(fēng)險和影響
- 行動:開發(fā)人員修復(fù)問題并根據(jù)他們提出的特定安全問題進(jìn)行培訓(xùn)
該反饋循環(huán)有助于改變開發(fā)人員的行為,并開始降低軟件漏洞的風(fēng)險。開發(fā)人員提高了編寫安全代碼的能力,使他們更加意識到代碼中的潛在問題,并且他們了解不編寫安全代碼的后果。
將反饋回路與SCA和編碼標(biāo)準(zhǔn)一起使用
應(yīng)用程序安全性的其他領(lǐng)域也可以使用反饋循環(huán)。所有這些都旨在幫助告知和改進(jìn)軟件開發(fā)人員的行為。例如,一個領(lǐng)域包括使用軟件組成分析(SCA)工具(例如OWASP Dependency Check)向開發(fā)人員提供第三方庫漏洞信息,并使開發(fā)人員負(fù)責(zé)升級庫。如果開發(fā)人員甚至選擇完全使用它們,那么他們將更仔細(xì)地考慮使用哪種第三方軟件包)——成本收益轉(zhuǎn)移給了開發(fā)人員。
可以使用反饋循環(huán)的另一個領(lǐng)域是基于軟件掃描或代碼審查來更新安全編碼標(biāo)準(zhǔn)。向開發(fā)人員提供漏洞以及嚴(yán)重性和影響。如果適用,開發(fā)人員將采取的措施是根據(jù)發(fā)現(xiàn)的問題制定編碼標(biāo)準(zhǔn)。如果已經(jīng)存在針對該問題的標(biāo)準(zhǔn),或者如果該問題本身不符合標(biāo)準(zhǔn),那么開發(fā)人員可能需要在諸如HackEDU之類的代碼審查平臺中練習(xí)安全編碼。
沒有完善的指標(biāo),應(yīng)用程序的安全性仍然可以提高。由于軟件開發(fā)(目前)是基于人的活動,因此更改開發(fā)人員的行為并利用反饋循環(huán)掃描對提高應(yīng)用程序安全性具有巨大的影響。