軟件組成分析(SCA)何時(shí)替換SAST或DAST?
軟件組成分析(SCA)何時(shí)替換SAST或DAST?簡(jiǎn)短的答案是永遠(yuǎn)不會(huì)。在這里,我為您節(jié)省了足夠的時(shí)間,您可以去做正確的事情,運(yùn)行SAST和DAST,并致力于強(qiáng)化代碼,而不是嘗試在應(yīng)用程序中測(cè)試安全性。
這聽(tīng)起來(lái)像是咆哮的開(kāi)始嗎?也許。但是請(qǐng)注意,每次出現(xiàn)新技術(shù)、新工藝或新技巧時(shí),都會(huì)有人認(rèn)為這是一切的答案。它可以解決軟件安全問(wèn)題,節(jié)省開(kāi)發(fā)和測(cè)試時(shí)間,甚至可以消除世界上的饑餓感。好吧,我越來(lái)越戲劇化。但是說(shuō)SCA最終將取代SAST實(shí)質(zhì)上是說(shuō),因?yàn)槟趯ふ宜?代碼中的已知漏洞,所以您不必再檢查自己的漏洞。
什么是軟件組成分析(SCA)?
SCA是軟件組成分析。從理論上講,它與軟件物料清單(目前幾乎不存在的物料清單)緊密配合,并跟蹤應(yīng)用程序中使用的其他庫(kù)和組件。當(dāng)前,這些工具大多只掃描您應(yīng)用程序的開(kāi)源組件,而不一定使用物料清單。(注意:其中一些工具還執(zhí)行其他功能,例如從OSS項(xiàng)目中查找剪切片段,或者識(shí)別和管理OSS許可證問(wèn)題。這既有趣又重要,但仍不能替代SAST的工作。)
SCA的一項(xiàng)主要功能是檢查應(yīng)用程序中的組件是否存在已知漏洞。這很重要,因此您可以避免出現(xiàn)零時(shí)差問(wèn)題,也可以解決一些組件可能沒(méi)有貨源的問(wèn)題,因此您無(wú)法將它們用于SAST。
OWASP提供用于供應(yīng)鏈安全的工具
我必須說(shuō),SCA當(dāng)然是工具包中用于保護(hù)軟件系統(tǒng)的重要部分。廣受歡迎且有用的安全組織稱(chēng)為開(kāi)放Web應(yīng)用程序安全項(xiàng)目(OWASP),甚至將此概念添加到了流行的OWASP十大當(dāng)今最關(guān)鍵安全風(fēng)險(xiǎn)列表的最新版本中。它顯示為項(xiàng)目A9——使用具有已知漏洞的組件。如果您不使用OWASP,則可能應(yīng)該使用。如果您不針對(duì)CVEand NVD數(shù)據(jù)庫(kù)檢查應(yīng)用程序是否存在已知漏洞,則應(yīng)該這樣做。這些來(lái)源跟蹤發(fā)生的實(shí)際攻擊以及可用的補(bǔ)丁程序和其他補(bǔ)救措施。
OWASP甚至構(gòu)建了一個(gè)名為OWASP Dependency Check的工具,可以為您完成這項(xiàng)工作。像OWASP提供的所有功能一樣,它免費(fèi)提供。Dependency-Check是一種軟件組成分析實(shí)用程序,可識(shí)別項(xiàng)目依賴(lài)項(xiàng)并檢查是否存在任何已知的、公開(kāi)披露的漏洞。
軟件供應(yīng)鏈安全是應(yīng)用程序安全的關(guān)鍵部分
我必須承認(rèn),在不多年前,軟件供應(yīng)鏈就被人們忽略了。一些關(guān)鍵人物,其中許多人是軟件供應(yīng)鏈保證論壇(SSCA)的一部分,他們不僅通過(guò)專(zhuān)注于代碼,還著眼于供應(yīng)鏈,努力強(qiáng)調(diào)應(yīng)用安全方面的這一弱點(diǎn)。實(shí)際上,由美國(guó)國(guó)防部(DoD)、國(guó)土安全部(DHS)、總務(wù)管理局(GSA)和美國(guó)國(guó)家標(biāo)準(zhǔn)與技術(shù)研究院(NIST)主辦的SSCA論壇以前稱(chēng)為軟件保障論壇(SwA)并更改了名稱(chēng),以幫助更多地關(guān)注供應(yīng)鏈。但目的是擴(kuò)大重點(diǎn),而不是將其從您的代碼轉(zhuǎn)移到其他人的代碼上。
軟件和供應(yīng)鏈保證論壇(SSCA)為來(lái)自世界各地的政府、行業(yè)和學(xué)術(shù)界人士提供了一個(gè)論壇,以分享他們?cè)谲浖凸?yīng)鏈風(fēng)險(xiǎn),有效實(shí)踐和緩解策略、工具和技術(shù)以及任何其他方面的知識(shí)和專(zhuān)長(zhǎng)。與所涉及的人員、流程或技術(shù)有關(guān)的差距。
實(shí)際上,SCA是一項(xiàng)測(cè)試活動(dòng)——確保根據(jù)列表檢查您的應(yīng)用程序,并確保該列表與該列表一致(例如,已知的漏洞(如NVD))。相反,SAST主要不是測(cè)試功能(我知道是異端),而是工程功能。SAST的最小值是在進(jìn)行筆測(cè)試之前發(fā)現(xiàn)弱點(diǎn)或漏洞。SAST的最大價(jià)值是首先指導(dǎo)您加強(qiáng)代碼。停止嘗試堵塞泄漏并構(gòu)建不會(huì)泄漏的代碼。這是在應(yīng)用程序安全方面領(lǐng)先一步的唯一方法。如果做得好,您仍然需要SCA,因?yàn)槟匀粫?huì)遇到應(yīng)用程序中所有這些組件以及與之交互的其他程序以及操作系統(tǒng)本身的問(wèn)題。如果您的SCA表現(xiàn)出色,那么您仍然需要SAST,因?yàn)楸M管您已經(jīng)解決了其他人的代碼中的問(wèn)題,但您自己沒(méi)有做任何事情。目的是相輔相成的,不能相互替代。
總而言之,SCA非常棒,您想要它,實(shí)際上您需要它。我很高興它比以往得到更多的關(guān)注。但是,說(shuō)它將替代DAST或SAST就像說(shuō)您有錘子,不需要螺絲刀一樣。