安全相依性
現代應用程式中大部分的程式碼,都是由像您這樣的開發人員所選擇的程式庫與相依性所組成。 這是常見的做法,可節省時間與金錢。 不過缺點是即使此程式碼是他人撰寫的,但現在仍須由您負責,因為您將其用於您的專案中。 如果研究人員 (甚或駭客) 在此類協力廠商程式庫中發現弱點,則相同的缺陷也很可能會出現在您的應用程式中。
在我們所屬的產業中,使用具有已知弱點的元件是嚴重的問題。 此問題的嚴重性使其列名於 OWASP 前 10 大嚴重 Web 應用程式弱點排行榜 (英文) 中,位居第 9 名已達數年之久。
追蹤已知的安全性弱點
我們面臨的問題是,如何得知最新發現的問題。 隨時更新我們的程式庫和相依性 (排行榜中的第 4 名!) 當然有所幫助,但持續追蹤可能對您的應用程式造成影響的已知弱點,也不失為一個好方法。
重要
當系統有已知的弱點時,就很可能也會有容易入侵的程式碼遭人利用,對這些系統發動攻擊。 如果入侵點遭到公開,就務必要立即更新任何受影響的系統。
Mitre 是一個非營利組織,列有一份常見弱點與漏洞清單。 其中列出應用程式、程式庫和架構中的已知網路安全性弱點集,並且可供公開搜尋。 如果您發現某個程式庫或元件列於 CVE 資料庫中,即表示它有已知弱點。
安全性社群在某產品或元件中發現安全性缺陷時,會提交問題。 每個已發佈的問題都會有指派的識別碼,且包含發現弱點的日期、弱點的說明,以及對已發佈因應措施的參考,或廠商對問題提供的相關陳述。
如何確認您的協力廠商元件中是否有已知的弱點
您可以在手機中設定每日工作來檢查此清單,但幸運的是,目前已有許多工具可讓我們確認自己的相依性是否易受攻擊。 您可以對程式碼基底執行這些工具,甚至將其新增至您的 CI/CD 管線,而在開發程序中自動檢查是否有問題。
- OWASP 相依性檢查,其中包含 Jenkins 外掛程式
- Snyk \(英文\),其可供 GitHub 中的開放原始碼存放庫免費使用
- Black Duck,廣受許多企業使用
- Retire.js,此工具可用來確認您的 JavaScript 程式庫是否已過時;它可作為多種工具的外掛程式,包括 Burp Suite
您也可為此使用某些專為靜態程式碼分析設計的工具。
如需關於使用易受攻擊的元件涉及哪些風險的詳細資訊,請造訪此主題專用的 OWASP 頁面。
摘要
當您使用程式庫或其他協力廠商元件作為應用程式的一部分時,您也會承受其可能具備的任何風險。 若要降低此風險,最佳方式是確保您所使用的元件都沒有相關聯的已知弱點。