資訊中心管理
2020 年10 大 Open Source 弱點(下)
前往目錄
由於Open Source的快速成長,也意味著安全漏洞問題的擴展,這些弱點藏在普遍應用於軟體開發生命週期的各個階段中,用對工具,及早發現問題

由於Open Source的快速成長,也意味著安全漏洞問題的擴展,這些弱點藏在普遍應用於軟體開發生命週期的各個階段中,然而善用工具就能在開發初期找出問題點,提升改善、應變的效率,同時節省成本。本集將介紹另五大弱點,協助您提升對Open Source的掌握度,降低應用程式安全與企業資料面臨的風險。

7 1

#6 decompress

7 2

根據NPM安全公告,受影響的decompress版本容易受到任意檔案(Arbitrary File)寫入的攻擊,惡意使用者可以透過加入含有../的路徑名稱,在系統中寫入任何文件夾,因為軟體封包不會阻擋有相對路徑的文件擷取。

decompress是一個可輕鬆擷取檔案的Open Source。例如,在規模相對較小的專案中,其漏洞常被許多人用來執行簡單的工作,然而,如未經過即時修補,卻可能對使用者造成劇烈的損害。

雖然像decompress這樣的專案使我們在程式開發時變得更容易,但當遇到相對比較簡單的工作執行時,我們很容易忽視Open Source的弱點管理議題。為了解決此問題,建議更新到版本4.2.1或更高版本以修復弱點。

#7 XStream

7 3

在XStream1.4.14之前的版本中,具遠端執行程式的問題。XStream問題頁面中指出:「在反序列化處理的資料流,內含類別資訊可重新建立以前編寫過的物件。因此,XStream也根據這類問題建立幾個新的參考案例。攻擊者可操縱處理輸入的資料流,並替換或注入可任意執行shell commands的物件。」

GitHub安全公告建議XStream用戶,將安全框架的黑名單設定更新到1.4.14或更高版本。而使用XStream白名單安全框架的用戶將不會受到影響。

XStream是一個Open Source library並執行Java至XML的序列化及反序列化。同時包含傳輸、持續性、配置和單元測試等典型用法。由於它是許多大規模Open Source Java Web應用程式在開發時,會使用到且非常受歡迎的套件,因此,更應確保隨時更新至最新版本,並遵循建議管理元件及弱點問題。

#8 Netty

7 4

ZlibDecoders易受攻擊的Netty版本,允許在解析ZlibEncodedbyte時,沒有限制記憶體配置。惡意使用者可能利用此安全弱點,發送較大的ZlibEncodedbyte至Netty伺服器,迫使伺服器將分配所有可用的記憶體至單一解析器。

Netty是一個非同步事件驅動網路應用程式的框架設計(asynchronous event-driven network application framework),設計用於快速開發時可維護高效能的伺服器和用戶端協議。根據專案文件說明,此NIO用戶端、伺服器框架,有助於簡化TCP和UDP的socket伺服器等網路程式開發。

#9 Spring Framework

7 5

Spring Framework受影響的版本中,當應用程式在設置「Content-Disposition」header時,若文件的名稱特徵是由使用者執行延伸輸入,很容易受到反射型檔案下載(Reflected file download,RFD)的攻擊。

如果您一直在使用Java,那麼您很可能有看過Spring。它是一種廣受歡迎的Java應用程式開發框架,由於它的模組化和輕量化,使開發人員可以輕鬆地創造功能強大的應用程式。最有名的是它顛覆了控制設計原理,結合了分層、輕量化container以及程式開發介接的能力。

#10 PyYAML

7 6

當不被信任的YAML文件透過full_load方法或Full Loader loader處理時,PyYAM Llibrary中易受攻擊的版本容易受到任意執行程式的影響,使駭客可利用這個弱點濫用python/object/new等函數,在系統上執行任意程式。PyYAML在Python是個非常流行的YAML解析和發送工具。而Python在這幾年持續很熱門,因此,您最好確保您使用的是PyYAML最新版本,以避免風險的危害。

總結:透過DevSecOps方式管理OpenSource安全性

許多開發人員都非常依賴Open Source和第三方元件,因為這些元件可以幫助我們大規模且快速地開發和交付創新的軟體產品。儘管應用程式安全已逐漸成為開發人員的重視的議題,但不幸的是,許多團隊仍將安全性視為一項沉重且耗時的任務,使他們的工作效率變慢。

我們在此提醒您,OpenSource安全性對於應用程式安全至關重要,考量到安全性並非一定會阻礙快速開發,您可參考DevSecOps工具,透過DevOps pipeline儘早整合自動化測試,在不影響開發速度的情況下,確保您所依賴的Open Source元件是安全且最新的。