資訊中心管理
2020 年 10 大 Open Source 弱點(上)
前往目錄
WhiteSource 研究團隊透過 WhiteSource 弱點資料庫調查2020年 Open Source 所有新發布的弱點,資料庫由數十個來源收集弱點資訊彙整分析,包括NVD、安全公告和Open Source專案問題追蹤平台等,確保涵蓋所有Open Source弱點。

如果說2020年教會我們什麼東西,就是去預測意想不到的事情。儘管沒有適當的文字來形容後疫情時代,全球仍必須要面對艱困環境的挑戰,人們必須竭盡所能的適應環境變化,WhiteSource 研究團隊提供2020 年十大開源漏洞清單。WhiteSource 研究團隊透過 WhiteSource 弱點資料庫仔細調查,分析2020 年 Open Source 所有新發布的弱點,為您提供有關 Open Source 安全問題的最新資訊。WhiteSource 資料庫由數十個來源收集弱點資訊彙整分析而成,包括 NVD、安全公告和Open Source專案問題追蹤平台等,確保涵蓋所有 Open Source弱點。

2020年前10大弱點包含一些知名的Open Source專案,普遍應用在軟體開發生命週期的各個階段中,而WhiteSource將這些元件弱點資訊收錄在WhiteSource資料庫中,包含數百萬個易受攻擊的弱點和套件(Packages),這些弱點中部份會使用CVE 的前綴字符發布,但當問題未被新增至NVD國際弱點資料庫時,便會使用WS作為前綴字符。

2020年10大Open_Scource弱點上-2.png

#1 Lodash

2020年10大Open_Scource弱點上-1.png

當使用Lodash的_.zipObjectDeep 函式時,易受攻擊的版本中發現了一個prototype pollution(樣版汙染)的安全問題。根據 HackerOne的報告說明,攻擊者可利用此漏洞在 Object.prototype的屬性執行注入攻擊,這可能導致機敏性資料的洩露、資料竄改或拒絕服務(DoS)。

在HackerOne的報告提供了以下步驟來重現:圖為透過 Lodash的“ zipObjectDeep” 函式撰寫物件程式範例。

2020年10大Open_Scource弱點上-3.png

Lodash是一個 JavaScript 實用函式庫,可提供更好的“模組化、效能和更多附加功能”是開發時常用的套件。Lodash文件中指出,Lodash可使 JavaScript 易於處理陣列、數值、物件及字串…等。這或許就是為什麼這麼多開發人員喜愛使用 Open Source 元件來迭代陣列、物件和字串,來操作、測試和建立複合函式的原因。

#2 FasterXML jackson-databind

2020年10大Open_Scource弱點上-4.png

與br.com.anteros.dbcp.Anteros DBCP 資料來源 (簡稱Anteros-DBCP) 有關的FasterXML jackson-databind,在易受攻擊的版本中,錯誤處理序列化的小工具,在輸入資料時易產生相互影響。序列化是 Java 開發人員常見的一種用法,在過去幾年 Java 序列化框架和元件中,反映許多序列化問題。根據 @cowtowncoder (Open Source 經驗豐富的開發人員,因開發 JSON 套件而聞名)說明,序列化小工具可能會以未曾發生過的方式執行惡意程式,造成可遠端執行程式、阻斷服務或機敏性資料洩露。儘管這類型的攻擊有可能造成嚴重破壞,但 @cowtowncode 明確的表示,這類攻擊沒那麼容易執行,且需要許多先決條件才能觸發。

廣受好評的 Java JSON 解析器 jackson- databindd 多年來一直是人們的最愛,這要歸功它在 JSON 和 Java 間,常見的資料轉換方式,當開發人員想要為 User 進行 API串接時,jackson-databind 通常是他們的首選。如果您也是 Java 開發人員,那麼您最好確保使用的 jackson-databind 版本是最新的。

# 3 HtmlUnit

2020年10大Open_Scource弱點上-5.png

在容易受到攻擊的 HtmlUnit版本中,發現程式執行的問題。根據 NVD 公告,當 HtmlUnit 未正確初始化 Rhino engine 時,在應用系統運行時,可以利用惡意的JavaScript 任意執行 Java 程式;當嵌入至Android 上使用時,由於 Rhino engine 未正確執行 Android-specific 的初始化,因此惡意的JavaScript程式,就可在應用程式上任意執行Java程式。

根據文件指出,HtmlUnit 是可支援JavaScript 和 AJAX 的元件, 同時它是" Java 程式的 GUI-Less 瀏覽器 ", 它將Html 模組化,提供多種 API 包括:允許使用者讀取頁面、填寫表單、點擊連結等功能。這個Open Source套件通常用於測試或從網站取得資訊。

#4 Handlebars

2020年10大Open_Scource弱點上-6.png

根據 NPM 安全公告指出, 在Handlebars套件,存在任意執行程式的安全問題。公告中指出 Package 中查詢問題功能沒有正確的檢驗模板 (templates),允許惡意的使用者在系統中提交有問題的模板並可執行攻擊性的 JavaScript。

當系統執行到 Handlebars templates 時,此弱點就可以被拿來利用,執行惡意程式或是透過受害者端的瀏覽器 ( 成功執行Cross-Site Scripting,XXS) 來達成攻擊。造成此結果的原因,正是因為之前的版本問題沒有被正確修復。

Handlebars是 Mustache 範本語言的擴充套件,是一個「不需使用太多邏輯的模板語言,可使前端 (View) 與後端程式能夠分離」,以獲得更好的體驗。目前,NPM 每週下載量超過700萬次,是一個非常受歡迎的Open Source,現由社群成員提供支援和維護,因此可以依靠社群的力量快速 回報和修復所發現的任何問題。

#5 http-proxy

2020年10大Open_Scource弱點上-7.png

某些版本的http-proxy容易受到拒絕服務的攻擊,在 HTTP 長時間的物件請求會觸發 ERR_HTTP_HEADERS_SENT未被處理的異常,該異常會使 proxy 伺服器當機, 但只有在 proxy 伺服器設置標頭 (Header) 時,proxy 伺 服 器 請 求 使 用 proxyReq. setHeader 函式,才有可能發生。

Http-proxy 是一個可透過程式開發的 proxy 元件,它支援websocket,能助於執行反向代理和載平衡之類的元件,是一個非常受歡迎的 Open Source 元件,目前每周有近 1200 萬次NPM下載,能支援超過2,000多個相依性元件。這些統計資訊代表您很有可能直接或間接使用到 http- proxy,此問題已在1.18.1 版本中修復,請確認您目前使用的是更新後的版本。

此弱點的 ID 以 WS 開頭,不是常見的 CVE開頭,是因為此問題尚未在 CVE 中發布。儘管許多人將 CVE 和 NVD 視為獲取有關安全弱點訊息的唯一資源,但有些問題在剛發生時, 會先在其他平台發布。由於 Open Source 社群分散的特性,Open Source 弱點通常在 CVE 編入索引之前, 會先在公告、論壇或問題追蹤平台中發布,因此這些問題會使用 WS 的前綴字符添加到 WhiteSource 資料庫。

在管理Open Source 弱點時,請務必牢記, 僅僅依賴CVE 或NVD 所發佈的資訊,不足以涵蓋程式中所有Open Source 的弱點。

2020 年 10 大Open Source 弱點下集待續

Open Source 安全性對於應用程式安全至關重要,此次介紹 WhiteSource 研究團隊提供的 2020 年十大開源漏洞清單前五大弱點,為確保您使用的 Open Source 元件是安全且最新的,下集將繼續介紹另五大弱點,不容錯過。