Dependabot:自動建立GitHub PR修復潛在漏洞

weixin_33843409發表於2019-02-13

Dependabot基於GitHub Security Advisory API,旨在幫助開發人員跟蹤依賴項、監控程式的安全性,並通過自動建立PR來移除任何潛在的漏洞。

Dependabot聯合創始人Gray Baker在一篇博文中透露,Ruby應用程式很容易就會引入100多個依賴項。而這個數字對JavaScript來說則更高,超過了700。而在這700多個依賴項中只有一小部分(不到5%)似乎是直接依賴項(即開發人員有意識要使用的依賴項),這導致了更高的複雜性。

這些依賴項大多具有“傳遞性”,也就是說它們被其他依賴項所依賴,它們之間沒有直接的聯絡,與使用它們的應用程式之間也沒有。

應用程式所引入的傳遞性依賴項的數量與每種語言使用的包登錄檔背後的原理之間肯定存在某種關聯。事實上,眾所周知,NPM是迄今為止最大的儲存庫,主要是因為它支援建立小型包,提供了很多其他包所依賴的簡單功能。幾年前,當一個用於填充字串的小型包從NPM中移除並破壞了2億多個其他包和應用程式時,這個問題引起了人們的關注。與之相反的是,Python生態系統在這方面看起來要健康得多,其傳遞性依賴項的數量與直接依賴項的數量相當。

對於數十或數百個依賴項,要讓它們保持最新以便引入安全修復就成了一項關鍵任務。這就是為什麼GitHub推出了Security Alerts功能,當系統檢測到某個程式碼庫出現Common Vulnerabilities and Exposures (CVE)列表提到中的漏洞時就會通知程式碼庫管理員。這為管理員提供了寶貴的時間,讓他們可以迅速做出反應,並通過升級到安全版本來修復漏洞。可惜的是,他們需要識別出哪個版本修復了漏洞,並通過建立PR來管理程式碼變更。

Dependabot就是為了解決這個問題而生的,它可以在GitHub上自動建立PR並隔離需要更新的依賴項。這樣就可以將監控和解決潛在漏洞的過程與持續整合(CI)工作流程整合起來,確保PR不會破壞應用程式。對於沒有持續整合管道的專案,Dependabot為給定更新指定了CI通過率。這個數字是基於所有執行相同更新的專案計算出來的,例如,有3%的專案更新未通過CI測試。

Dependabot可以在GitHub Marketplace上獲得。

檢視英文原文https://www.infoq.com/news/2019/02/github-dependabot-security

相關文章