從2017 年起,WhiteSource 開始統計每年 Open Source十大弱點排名,建立傳統,讓大家可快速了解最令人不安和常見的弱點
從 2017 年起,WhiteSource 開始統計每 年 Open Source 十大弱點排名,並建立起這個傳統,讓大家可快速了解 Open Source 中最令人不安和常見的弱點。而 2018年 WhiteSource資料庫中,資料蒐集更廣泛,包括美國國家弱點資料庫(National Vulnerability Database ; NVD),以及其他公開資訊、同行評審的安全建議與問題追蹤網站等。

列表中許多弱點編號若以 WS 開頭,代表此弱點還沒被新增到 NVD 綜合弱點資料庫中, 而 NVD 也只有 86% 的 Open Source 弱點存在於CVE資料庫中,其他的弱點則在其他平台上發布,而不斷的收集相關 Open Source 弱點資料的 WhiteSource 資料庫資訊可是遠遠超過 NVD。

 

1. Linux Kernel netfilter:xt_TCPMS Linux Kernel netfilter

弱點編號 CVE-2017-18017
弱點分數 High 9.8
 影響版本  Linux kernel before4.11 和 4.9.x before 4.9.36

 Linux 是一個活躍的社群,不斷優化 OG 專案的過程中也產生許多弱點。而netfilter:xt_ TCPMSS 是核心等級的套件,透過定義合法的 TCP Header 協助過濾網路通訊。他的功能就如同河川中的水壩,用以防止山谷被洪水淹沒。

惡意的攻擊者可利用此功能,大量發送訊息導致系統當機,造成拒絕服務攻擊(Denial of Service Attack)。此套件為系統核心元件,其攻擊效果可能具有相當大的破壞性和廣泛性。 CVSS v2 評分 10 分,CVSS v3 評分 9.8 分。

 

2. Mac address  Mac Address

弱點編號 WS-2018-0113
弱點分數 Critical—10
 影響版本  All versions prior to 0.2.9

2018年新產生 Command Injection(命令注入) 弱點,此元件提供 Linux、OSX 和 Windows 中檢視 MAC 位址的 Open Source。此資料庫非常受歡迎,每週下載量可達 563,699 次。為避免受到攻擊,使用者必須更新到 0.2.9 或較新的版本。

 

3. Drupal Drupal

弱點編號 CVE-2018-7600、CVE-2018-7602
弱點分數 Critical—9.8
 影響版本 7.58,8.x before 8.3.9,8.4.x before 8.4.6 和 8.5.x before 8.5.1、
multiple subsystems of Drupal 7.x 和 8.x

在現今主流的 Open Source 中,擁有多個平台多個版本的套件,除讓開發人員面臨艱難的挑戰,也更容易受到
惡意攻擊。而 Drupal 新發布的弱點包含核心套件存在驗證輸入問題與遠端程式碼執行 (RCE) 問題,雖 Drupal 團隊雖在發現弱點 後發布安全聲明,通知網站管理員安排每周的安全更新。督促管理員預留更新時間,因為可能會在數小時或數天內爆發出零時差攻擊。

核心套件驗證輸入弱點發布後兩個月,研究人員發現有許多挖礦劫持程式 (Cryptojacking)積極攻擊還在使用 Drupal 弱點的網站,並發現仍有 115,000 個 Drupal 網站過舊容易遭受攻擊,唯有盡快將程式碼修復並持續更新,才能防止駭客入侵與攻擊。而遠端程式碼執行 (RCE) 弱點類似 CVE-2018-7600,是因為修復之前的漏洞,但未涵蓋所有情況而產生的新漏洞。

 

4. Spring Data Commons Spring Data Commons

弱點編號 CVE-2018-1273、CVE-2018-1274
弱點分數 Critical—9.8、High— 7.3
 影響版本 versions 1.13 到 1.13.10、2.0 到 2.0.5,和old unsupported version

駭客可從 CVE-2018-1273 弱點控制系統,及透過遠端程式碼的執行,攻擊並執行未經授權的任何操作。而 CVE-2018-1274 可因解析路徑參數造成資源被無限制使用。未經身份驗證的遠端攻擊者可以利用解析路徑參數對 Spring Data REST 端 點或端點所發出的請求,從而導致拒絕服務 (DoS),造成 CPU 和記憶體的消耗。

Spring Data Commons 是備受期待的 Open Source OG 的一部分,包含 Java 應用程式開發框架 Spring Framework,和簡化資料庫連接,支援許多資料庫模組的 Spring Data。

Spring Data 可同時提供專案基本的實作和介面,其中包含 technology-neutral 資料庫介面和用於靜態 Java 的 metadata 模組。而 Spring Data Commons 藉由抽象化 (abstracting) 型別,來支援這些特定資料庫的模組。

 

5. Requests Requests

弱點編號 CVE-2018-18074
弱點分數 Medium—4.3
 影響版本 through2.19.1 before 2018-09-14

研究人員發現,Python 中平均每日下載量為 40 萬,相當受歡迎 Open Source HTTP library,在 Requests 版本套件中有可遠端攻擊的弱點。在接收特定的 HTTP 標頭 (header) 時可能會洩露敏感訊息。

也因為該版本在接收相同主機名稱 https-to- http 重定導向時,會向 HTTPURI 發送 HTTP Authorization 標頭,讓遠端攻擊者更容易發現未經驗證的傳送資料。

 

6. Apache Struts REST Plugin Apache Struts REST Plugin

弱點編號 CVE-2018-1327
弱點分數 Medium — 5.0
 影響版本 2.1.1 - 2.5.14.1

在揭露 Equifax 的 Struts2 弱點後,Apache Struts REST plug-in 的 XStream 處理程序中也發現了一 個弱點。該弱點允許遠端攻擊者透過使用帶有 Struts REST plug-in 的 XStream 處理程序,發送特製的 XML 請求來建立拒絕服務 (DoS) 的條件,從而導致目標物件停止執行。

 

7. Jenkins Jenkins

弱點編號 CVE-2017-1000354 、CVE-2017- 1000355、
CVE-2017-1000356
弱點分數 High — 8.8、Medium — 6.5、
High — 8.8
 影響版本 2.56 and earlier as well as 2.46.1 LTS and earlier

Jenkins 是 Java 語言中基礎的 Open Source CI Server,因 此受到許多開發人員青睞, 並獲得大型社群的支持,當然也就容易遭受攻擊。此次上榜的弱點是由允許跨站請求偽造(Cross-Site Request Forgery ; CSRF)造成,駭客可透過欺騙毫無戒心的受害者打開網頁並執行各種管理操作。

編號 CVE-2017-1000354 弱點,可從登錄的 command 允許冒充 Jenkins 的使用者。編號 CVE-2017-1000355 弱點,由 XStream 引起, 可能導致 Java 透過 DoS 攻擊而崩潰。編號 CVE-2017-1000356 弱點是 Jenkins 使用者身份驗證中的弱點,允許攻擊者在應用程式上新增帳號,從而允許未經授權的訊息洩露和未經授權的修改。

 

8. AngularJS AngularJS

弱點編號 WS-2018-0001、WS-2018-0002
弱點分數 Medium — 5.5

由 Google 建立和維護的 AngularJS 是一個備受喜愛的 Open Source 框架。編號 WS-2018-0001 弱點中,JSONP 能允許不受信任的 URL,為駭客提供攻擊的媒介。而編號 WS-2018-0002 弱點,會在使用者操作 Angular 套件所提供的伺服器樣板引擎 (templating engine) 如 ERB 或Haml 時 產生,該弱點允許跨站腳本攻擊 (cross-site scripting ; XSS) 。攻擊者可利用此漏洞在客戶端腳本惡意注入公共網頁。AngularJS 依使用 者輸入之字串,是否包含插入符號 ( 預設符號為{{ and }} )來啟動這些漏洞。

 

9. Moment.js Moment.js

弱點編號 CVE-2017-18214
弱點分數 High — 7.5
 影響版本 before 2.19.3 for Node.js

Moment.js 是一個流行的JavaScript library,可幫助開發人員完成編寫繁瑣的日期和時間物件。Moment.js 弱點相當罕見,但此弱點卻相當危險。它可能會讓使用者開放 ReDoS 攻擊。

 

10. Lodash Lodash

弱點編號 WS-2018-0210
弱點分數 Low — 3.5
 影響版本 before version 4.17.11

此弱點在 Lodash node 模組的某些功能樣板中被發現有弱點。容易受攻擊的函數包含 merg、mergeWith 和 defaultsDeep,這些函數會被繞過,進而添加或修改 Object 樣板屬性。許多開發人員喜歡使用 Lodash 的模組方法來重覆使用矩陣、物件和字串;建立合成函數並帶入控制值和測試值。Lodash 文 件指出,該元件透過簡化矩陣、數字、物 件和字串等工作,有助於使 JavaScript 更容易處理。 Lodash 目前在 npm 上的版本 (v4.17.11)每週下載量將近 1,700萬,表示使用者同意使用此套件但不夠重視此弱點。

 

每個 Open Source 都可能有未通報的弱點

2016 年至 2017 年 Open Source 弱點數量 增加 51%,而 2018 年許多熱門且持續維 護中的 Open Source,幾乎擁有一樣多的弱 點。雖然常會在新聞事件中發現,公司使 用了已知有弱點的 Open Source;而這類的 訊息往往會令開發者感到沮喪,也常發現 仍有許多公司因發現太慢,而未進行修補 與更新,導致付出慘痛的代價。

Open Source 社群持續專注在發現和修復專 案中的弱點,雖然發布的弱點數量不少, 但所有已被通報的弱點中,有 97.4% 的弱 點在 Open Source 社群中都可以找到修復建 議。這些弱點資料是公開的,所以駭客可 利用既有漏洞的 Open Source 進行攻擊,企 業唯有使用正確的方法和工具來管理 Open Source,確保所使用的套件,都是沒有弱點 的版本。