天天看點

SAST + SCA: 結合使用安全更新軟體世界的風險與挑戰SAST vs SCA: 差異一覽總 結

據 SAP 稱,當今85%的安全攻擊針對的是軟體應用程式,是以一些列應用程式安全測試工具也應運而生。為了避免這些惡意攻擊,企業通常使用應用程式安全測試工具來去緩解和解決安全風險,而不同的工具對應的使用方法和覆寫範圍各不相同。本期文章,我們将會讨論 SAST 和 SCA 這兩種類型的應用程式安全解決方案如何幫助企業應對不同的風險。

軟體世界的風險與挑戰

在這個依靠軟體運作的世界中,企業面臨一個挑戰:開發好的軟體很難。随着軟體變得越來越複雜,確定其可靠性和安全性變得更加困難 。無論是購買的軟體、專有軟體還是作為服務傳遞的軟體,都無法避免漏洞問題,而開源軟體更是如此。但開源的優勢相較于傳統開發模式更加突出,即更快的上市時間、更多的創新機會、更低的開發成本以及與全球開發人員社群更密切的聯系。然而企業有時會忽略與開源使用相關的安全和風險管理挑戰。

專有代碼中的問題

在開發過程中,開發人員難免會将一些安全問題(例如OWASP Top 10 和 2019 CWE Top 25中列出的問題)誤引入專有代碼中。最著名的安全問題包括 SQL 注入、破壞的身份驗證和會話管理以及跨站點腳本。而靜态應用程式安全測試 (SAST) 可以在開發人員編寫代碼時,或在送出、建構或測試階段,通過檢查代碼本身來檢測常見類型的問題。

開源元件中的漏洞

開源漏洞,例如美國國家漏洞資料庫(NVD) 中列出的漏洞,是通過在代碼庫中使用開源元件引入的。其實開源軟體并意味着不比商業軟體更安全或更不安全,隻是缺乏對其使用的開源可見性的企業無法有效緩解和修複開源漏洞。同時開源漏洞的數量正在增長,NVD 僅在 2018 年就報告了超過 16,000 個新的開源漏洞。軟體成分分析(SCA) 側重于識别代碼庫中的開源成分,以便開發團隊可以更好地緩解管理他們面臨的安全和許可合規風險和問題。

與攻擊者的較量

企業通常會采用數種方式來緩解和解決漏洞風險和問題,但如何更高效地管理漏洞是企業都十分關注的地方。雖然修複漏洞可能僅僅需要花費幾天或幾分鐘的時間,但企業往往需要花費數月時間來發現可被利用的漏洞。

此外,開源漏洞還會帶來額外的安全風險。因為開源在任何地方都可以通路和使用,惡意攻擊者則會利用這一點,來通路有關已知開源漏洞的公開資訊以及有關如何利用漏洞的詳細資訊。比如,當漏洞被報告出來時,開源社群通常也會相應釋出該漏洞的利用方式說明。是以,開源的存在雖然讓軟體開發變得更加便捷高效,但同時也給惡意攻擊者提供了同樣資訊源和便利。

SAST vs SCA: 差異一覽

應用程式安全挑戰多種多樣,那麼解決這些挑戰的最佳方法是什麼?解決軟體漏洞的有效方法當然包括安全測試工具,使用 SAST 來發現專有代碼中的問題,以及使用 SCA 來發現開源代碼中的漏洞。

同時包含 SAST 和 SCA 的軟體安全程式會更加全面,而企業也會獲得以下的效果:

  • 通過早期識别和選擇安全元件提高了産品品質
  • 跨專有代碼和開源元件的更高的安全風險可見性
  • 降低在開發過程早期發現和修複的漏洞的補救成本
  • 針對已知開源漏洞的攻擊将安全漏洞風險降至最低
  • 優化的安全測試,有效與靈活開發工具和實踐相容

讓我們分别來看看這兩個安全測試工具的特點及其優勢。

靜态應用安全測試 SAST

SAST 通過檢查應用程式的源代碼來查明可能的安全問題,有時稱為白盒測試(因為源代碼可用且透明)。SAST 在軟體開發生命周期(SDLC)的早期發揮了巨大的作用,而在軟體開發早期修複問題相對容易且成本更低。SAST 可以有效地發現上文提到的許多常見安全問題,例如跨站點腳本、SQL 注入和緩沖區溢出。

SAST 優勢

  • 查明專有代碼中的缺陷和問題
  • 在 SDLC 早期發現問題,此時修複成本遠比在軟體開發中後期要低得多!
  • 在代碼投入生産之前檢測問題(也就是在這些問題成為漏洞之前解決掉!)

軟體成分分析 SCA

SCA 識别代碼庫中的所有開源并将該清單映射在目前已知漏洞的清單。入門級解決方案隻是收集有關已聲明的開源(例如庫)的資訊并将其與 NVD 進行比較,而更進階的解決方案則會使用複雜的源代碼和二進制檔案掃描,來確定其更全面地識别所有開源代碼,包括從已知來源複制的代碼片段。除此之外,還使用其他漏洞資訊來擴充 NVD 資料,以提供更完整、更及時的報告。先進的 SCA 解決方案會針對應用程式部署後報告的漏洞提供持續監控和警報。

SCA 優勢

  • 可靠地檢測和映射其他方法無法發現的已知開源漏洞

總 結

繼續閱讀