2025年失去安全支持的12個(gè)關(guān)鍵開(kāi)源項(xiàng)目
通過(guò)提前了解你的開(kāi)源軟件的生命周期結(jié)束時(shí)間,你可以計(jì)劃遷移,從而更好地保護(hù)[私有數(shù)據(jù)]。
譯自12 Critical Open Source Projects Losing Security Support in 2025,作者 Greg Allen。
沒(méi)有什么是永恒的,這在開(kāi)源軟件中尤其如此。即使是最流行的開(kāi)源技術(shù)版本,也終將有一天會(huì)達(dá)到其生命周期結(jié)束(EOL)。
對(duì)于主要版本的開(kāi)源軟件包來(lái)說(shuō),EOL事件不僅僅是錯(cuò)過(guò)了只會(huì)整合到未來(lái)版本中的新功能,它還會(huì)為依賴該開(kāi)源軟件的應(yīng)用程序帶來(lái)安全風(fēng)險(xiǎn)。
例如,Apache Struts框架最近發(fā)現(xiàn)了一個(gè)嚴(yán)重漏洞(CVE-2024-53677)。雖然該問(wèn)題是在積極支持的Struts 6版本中發(fā)現(xiàn)的,但它也適用于數(shù)千個(gè)應(yīng)用程序仍在使用的已棄用、生命周期結(jié)束的Struts 2版本。
仍然依賴Struts 2的公司面臨風(fēng)險(xiǎn),除非他們能夠立即遷移到Struts 6,但這對(duì)于大多數(shù)應(yīng)用程序來(lái)說(shuō)是不現(xiàn)實(shí)的。另一種選擇是使用來(lái)自值得信賴的長(zhǎng)期支持提供商的開(kāi)源庫(kù)的直接替代品。這些解決方案包括漏洞補(bǔ)丁,它們?yōu)闈撛诘钠仍诿冀薜臑?zāi)難提供了一種可行、安全且近乎即時(shí)的解決方案——尤其是對(duì)于受監(jiān)管行業(yè)的企業(yè)——讓您有更多時(shí)間徹底規(guī)劃您的遷移。我們?cè)贖eroDevs的團(tuán)隊(duì)為Struts 2提供了一個(gè)類似的解決方案。在CVE-2024-53677被發(fā)現(xiàn)后的一周內(nèi),人們對(duì)我們的Struts解決方案的興趣增長(zhǎng)了20倍,這突顯了一個(gè)關(guān)鍵的CVE對(duì)于不受支持的OSS用戶來(lái)說(shuō)是多么大的問(wèn)題。
通過(guò)提前了解您的開(kāi)源軟件的生命周期結(jié)束時(shí)間,您可以更好地規(guī)劃您的遷移,這樣您就不會(huì)將您和您客戶的數(shù)據(jù)置于風(fēng)險(xiǎn)之中。這份包含12個(gè)項(xiàng)目的列表代表了我認(rèn)為在2025年將發(fā)生EOL事件的一些最關(guān)鍵的項(xiàng)目。重要的是要注意,此列表并不詳盡。我的團(tuán)隊(duì)已經(jīng)確定了2025年近150個(gè)主要的開(kāi)源EOL事件,并且可能還有更多無(wú)法預(yù)測(cè)的事件。
重要的是要注意,生命周期結(jié)束事件不僅僅有一種類型,例如完全停止軟件包與僅停止對(duì)特定版本的支持。AngularJS在2022年1月被完全棄用,因?yàn)镚oogle覺(jué)得它不再滿足現(xiàn)代Web領(lǐng)域的需求。與此同時(shí),.NET基金會(huì)和微軟在2024年11月停止了對(duì).NET 6的支持,以專注于更新的.NET 8和未來(lái)版本。大多數(shù)將在2025年達(dá)到其生命周期結(jié)束的項(xiàng)目都是類似于.NET 6的版本EOL。
1. Laravel v10 (2025年2月4日)
Laravel是一個(gè)基于PHP的全棧Web應(yīng)用程序框架。它對(duì)開(kāi)發(fā)者非常友好,被廣泛使用,并且擁有強(qiáng)大的社區(qū)。它旨在簡(jiǎn)化和加速Web開(kāi)發(fā)。Laravel v10將于2025年2月4日達(dá)到其生命周期結(jié)束。
2. OpenSSL v3.1 (2025年3月14日)
OpenSSL被廣泛用于Web和通信平臺(tái)上的加密、安全通信。它很可能是此列表中最常用的軟件包;任何具有API的東西都可能使用它。OpenSSL v3.1將于2025年3月14日達(dá)到其生命周期結(jié)束。
3. Ruby v3.1 (2025年3月31日)
Ruby是一種編程語(yǔ)言,廣泛用于Ruby on Rails Web框架。Ruby on Rails以能夠快速開(kāi)發(fā)基于Web的應(yīng)用程序而聞名。Ruby v3.1將于2025年3月31日達(dá)到其生命周期結(jié)束。
4. Node.js v18 (2025年4月30日)
Node.js是一個(gè)跨平臺(tái)的JavaScript運(yùn)行時(shí)環(huán)境,無(wú)需過(guò)多介紹。許多公司——包括一些最大的公司——使用它來(lái)構(gòu)建快速且可擴(kuò)展的應(yīng)用程序。Node.js v20在V8引擎中引入了權(quán)限模型和性能更新。Node.js v18將于2025年4月30日達(dá)到其生命周期結(jié)束。
5. Django v5.0 和 v5.1 (2025年4月30日)
Django是一個(gè)基于Python的Web應(yīng)用程序框架,可以快速、輕松和干凈地開(kāi)發(fā)程序。它可以很好地處理復(fù)雜的數(shù)據(jù)庫(kù),使其適用于數(shù)據(jù)密集型應(yīng)用程序、數(shù)據(jù)科學(xué)工具和社交媒體應(yīng)用程序。Django v5.0和v5.1將于2025年4月30日到期。
6. Kafka v3.4 (2025年5月3日) 和 v3.5 (2025年8月25日)
Kafka是最可擴(kuò)展和廣泛采用的分布式發(fā)布/訂閱框架之一,適用于實(shí)時(shí)數(shù)據(jù)管道和分析用例。Kafka 以可擴(kuò)展、容錯(cuò)的方式處理大量數(shù)據(jù)的能力使其成為許多大型數(shù)據(jù)架構(gòu)的基石。v3.4 將于 2025 年 5 月 3 日達(dá)到其生命周期終點(diǎn)。v3.5 將于 2025 年 8 月 25 日達(dá)到其生命周期終點(diǎn)。
7. Drupal v10(2025 年 6 月 16 日)
Drupal是一個(gè) CMS 和框架,以其靈活性、可擴(kuò)展性和可擴(kuò)展性而聞名。它廣泛應(yīng)用于以內(nèi)容為中心的平臺(tái),如網(wǎng)站、社區(qū)和社交平臺(tái)以及媒體公司。Drupal v10.3,Drupal 10 的最后一個(gè)受支持版本,將于 2025 年 6 月 16 日結(jié)束其支持。
8. Kubernetes < v1.32(2025 年 7 月)
Kubernetes是使用最廣泛的容器編排平臺(tái)。大多數(shù)容器化應(yīng)用程序都會(huì)使用某個(gè)版本的 Kubernetes,尤其是那些具有復(fù)雜系統(tǒng)且可以從微服務(wù)架構(gòu)中受益的應(yīng)用程序。與許多開(kāi)源軟件發(fā)布計(jì)劃一樣,Kubernetes 發(fā)布遵循結(jié)構(gòu)化的時(shí)間表,其中每個(gè)次要版本在發(fā)布后都將獲得一年的完整支持,并在其生命周期結(jié)束前有 2 個(gè)月的維護(hù)期。Kubernetes v1.34 于 2024 年 5 月 15 日發(fā)布,預(yù)計(jì)將于 2025 年 5 月達(dá)到其完整支持的終點(diǎn),并于 2025 年 7 月達(dá)到其生命周期終點(diǎn)。
9. MongoDB 6(2025 年 7 月 31 日)
MongoDB是一個(gè)多功能、可擴(kuò)展的 NoSQL 數(shù)據(jù)庫(kù),廣泛應(yīng)用于各個(gè)行業(yè),并因其對(duì)各種數(shù)據(jù)(完全結(jié)構(gòu)化、半結(jié)構(gòu)化和非結(jié)構(gòu)化)的靈活支持而備受喜愛(ài)。MongoDB 7 帶來(lái)了一些令人興奮的改進(jìn),例如可查詢加密,但這也意味著 6 將于 2025 年 7 月 31 日達(dá)到其生命周期終點(diǎn)。
10. NumPy v1(2025 年 9 月 17 日)
NumPy起源于 Numerical Python (Numeric) 的一個(gè)分支,并融入了 Numarray 的改進(jìn)。Python 科學(xué)計(jì)算社區(qū)廣泛采用它,這對(duì)于密集的數(shù)值數(shù)據(jù)處理和計(jì)算應(yīng)用程序來(lái)說(shuō)非常棒。在 2025 年 9 月 17 日,所有 v1 版本都將達(dá)到其生命周期終點(diǎn)。
11. Postgres v13(2025 年 11 月 13 日)
PostgreSQL是一個(gè)高度可擴(kuò)展的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng),支持 SQL 用于查詢和數(shù)據(jù)管理。它廣泛應(yīng)用于數(shù)據(jù)分析、業(yè)務(wù)數(shù)據(jù)庫(kù)和 Web 應(yīng)用程序。V13 將于 2025 年 11 月 13 日達(dá)到其生命周期終點(diǎn)。
12. Angular v17(2025 年 5 月 15 日)和 v18(2025 年 11 月 19 日)
Angular是 Google 工程師于 2010 年推出的一個(gè)綜合框架,后來(lái)經(jīng)過(guò)重寫以取代 2016 年的 AngularJS。它被廣泛用于構(gòu)建可擴(kuò)展的 Web 應(yīng)用程序。 Angular v17 將于 2025 年 5 月 15 日結(jié)束,v18 將于 2025 年 11 月 19 日結(jié)束。
遷移需要大量的時(shí)間(和金錢)。遷移的復(fù)雜性取決于多種因素,包括開(kāi)源軟件包/框架、代碼庫(kù)的整潔程度、團(tuán)隊(duì)規(guī)模和應(yīng)用程序規(guī)模。在 HeroDevs,我們花大量時(shí)間與組織討論遷移和補(bǔ)救選項(xiàng)。從前端 AngularJS 遷移(其中 10 萬(wàn)行代碼的遷移可能需要2.7 years of effort)到 Spring 5->6 遷移(其中具有許多依賴項(xiàng)的大型項(xiàng)目可能需要more than 6 years of effort),這些 EOL 時(shí)刻應(yīng)該進(jìn)行規(guī)劃和預(yù)算。
假設(shè)您依賴的 OSS 軟件包預(yù)計(jì)在來(lái)年發(fā)生 EOL 事件。在這種情況下,您應(yīng)該已經(jīng)開(kāi)始您的規(guī)劃和遷移——特別是如果您所在的行業(yè)受到高度監(jiān)管,例如醫(yī)療保健 (HIPAA)、支付 (SOC 2 和 PCI DSS)、教育 (FERPA) 和政府 (FedRAMP)。
如果您需要更多時(shí)間,還有其他選擇。直接或第三方商業(yè)支持可以提供擴(kuò)展的長(zhǎng)期支持,使您可以根據(jù)自己的時(shí)間表規(guī)劃遷移并確保數(shù)據(jù)的安全。