天天看點

Log4j漏洞背後的更大問題——開源項目的資金來源

作者:科技行者

本文經過更新,包含關于最新Log4j版本釋出、新的漏洞利用向量以及與所有Java版本相關的風險細節。

就在廣大賽車愛好者們觀看維斯塔潘與漢密爾頓的F1冠軍争奪戰時,廣大網際網路企業正被一起突發事件吓得魂不附體。

普通使用者們可能沒有注意到,因為Twitter、Facebook、Gmail乃至其他我們日常使用的服務并未是以陷入當機。但就在近日,Log4j開源技術中的一個bug在全球資訊安全社群中引發恐慌。

該bug已經影響到數十億台裝置,相關企業也在争先恐後地安裝修複程式;而開源社群這邊已經意識到一個更深層次的問題——從哪裡找錢來養活支援Log4j這類開源項目的志願者們。

在深入讨論這麼多複雜議題之前,我們先簡要了解一下Log4j技術與安全問題的背景。

Log4j是什麼?

Log4j 2是一套基于Java的開源日志記錄架構,屬于任何人都能免費使用的Apache Foundation服務之一。衆多企業都在使用這款日志記錄軟體跟蹤自己的伺服器(甚至是用戶端應用程式)上的各類活動。

例如,在我們通路網站時,這款記錄器就會注冊下我們的IP位址、浏覽器及所通路的頁面。利用這些與活動密切相關的資料,企業就能解決他們服務中出現的任何問題。

因為Log4j庫基于Java,是以該架構支援的數十億台裝置都可能因其安全漏洞而身陷風險。

Log4j到底有什麼bug?

上周被編目為CVE-2021-44228的這一漏洞允許攻擊者通過特制字元串遠端執行代碼。由于Log4j普及度極高,網絡犯罪分子可以輕松記錄檔字元串、進而控制目标伺服器或用戶端。

之是以存在此項bug,主要原因是Log4j的某些版本允許通過目錄查找協定(LDAP協定)執行任意文本。

各位非技術人員請注意,此番 #log4j問題正令整個網際網路陷入危機。而引起這一切的關鍵,正是一段簡單的“${jndi:ldap”字元串#Log4Shell#log4jRCE

⬇️

— Emy | eq (@entropyqueen_) 2021年12月11日

彭博社最新釋出的一份報告表明,此項漏洞是由阿裡巴巴團隊的一位安全研究員于11月24日首次上報給Log4j項目維護者。

誰會受到影響?

老實講,更簡單的問法應該是“不會影響到誰?”Log4j的開源特性外加廣泛的相容性使其成為一套出色的解決方案,包括蘋果、微軟、Steam、Twitter、百度及Cloudflare在内的衆多廠商都在實際使用。

是以Log4j漏洞的消息一出,各大企業就在争相掃描伺服器以檢查自身是否面臨風險。

通過對使用Apache Log4j(Java日志記錄庫)的多台主機執行大規模掃描,結果發現其确實易受到遠端代碼執行漏洞的影響 (https://t.co/GgksMUlf94)。

請通過我們的API查詢"tags=CVE-2021-44228"以擷取源IP位址及其他IOC。#threatintel

— Bad Packets (@bad_packets) 2021年12月10日

也有程式員測試了各類站點及服務以檢查攻擊的潛在影響範圍;感興趣的朋友可以點選此處檢視完整清單。

Log4j漏洞背後的更大問題——開源項目的資金來源

圖示:根據IP位址可以看到,Twitter正在廣泛使用Log4j服務

好消息是,有媒體發現不少企業都部署了多道防火牆以抵禦網絡攻擊。是以即使某些伺服器可能受到Log4j攻擊活動的影響,其他安全系統也能有效阻斷攻勢。

這個問題最早發現自《我的世界》站點,有研究人員發現向伺服器傳遞特定字元串、甚至通過遊戲中的聊天框即可令系統陷入攻擊者的控制。網絡基礎設施廠商Cloudflare公司CEO Matthew Prince發表推文稱,該公司将向全體客戶提供一系列針對性保護措施,使用免費套餐的客戶也将被納入其中。

我們已經确定#Log4J 問題相當嚴重,是以将嘗試在預設情況下至少為全體 @Cloudflare客戶提供一定程度的保護,其中包括不享受WAF防火牆服務的免費客戶。我們正在研究如何安全地達成保護目标。

— Matthew Prince (@eastdakota) 2021年12月10日

值得一提的是,Log4j甚至可能影響到某些運作有Java伺服器元件的智能裝置。是以大家的智能烤面包機也有可能成為黑客攻擊的目标……雖然似乎沒什麼意義。

資料安全平台LunaSec也在官方博文中對該漏洞的潛在影響做出了着實的技術解釋。

最後,讓我們用一條推文概括Log4j的使用範圍究竟有多廣。

大家聽說過2020年登陸火星的機智号漫遊車嗎?它也是由Apache Log4j提供支援的哦。

https://t.co/gV0uyE1ylk#Apache#OpenSource#innovation#community#logging#servicespic.twitter.com/aFX9JdquP1

— Apache – The ASF (@TheASF) 2021年6月4日

有什麼緩解措施?

就在bug曝光數小時之後,Apache基金會的安全團隊就釋出了新的Log4j版本(v15.0),其中包含保護系統免受攻擊的更新檔。

《我的世界》開發商Mojang Studios還釋出了一份指南,幫助運作官方遊戲用戶端及遊戲伺服器的使用者們快速修複bug。指南還警告說,其他運作第三方遊戲用戶端的使用者恐怕需要等待相應供應商釋出修複更新檔。另外,瑞士政府計算機響應小組(CERT)也以圖檔形式在Twitter上釋出了易于了解的預防指南。

請注意:我們發現大量針對#log4j漏洞的掃描,并決定釋出這篇包含指導意見的博文::https://t.co/dtEXfY1G16

請立即安裝更新檔! pic.twitter.com/HSedlSed0V

— GovCERT.ch (@GovCERT_CH) 2021年12月12日

Red Hat及VMWare等廠商也釋出了自己的漏洞修複更新檔。各位伺服器管理者朋友,請點選此處參考多篇伺服器安全博文以了解詳盡的緩解政策。一位GitHub使用者還制作了非常實用的更新檔清單,其中列出了包括Netflix、Citrix、Docker及甲骨文在内的多家廠商釋出的更新檔。

Apache也已經釋出了Log4j架構的2.16.0版本,此次更新完全删除了郵件查找功能以消解安全威脅。此外,新版本還禁用了指向消息或其參數中所包含查找資訊的自動解析功能。

一切才剛剛開始

雖然服務供應商和開源社群正日以繼夜地努力解決問題,希望盡可能保護一切使用Log4j的系統,但真正的威脅仍然懸于我們頭頂。

根據Bleeping Computer昨晚釋出的報道,攻擊者正利用這一漏洞安裝加密貨币挖礦軟體、惡意軟體,并部署大規模DDoS(分布式拒絕服務)僵屍網絡。微軟的威脅情報團隊也注意到,不少攻擊者正在利用Colbat Strike滲透檢測工具開展憑證盜竊。

Sophos進階研究研究員Sean Gallagher也表示,這家安全廠商已經檢測到大量遠端代碼執行嘗試:

自12月9日以來,Sophos已經檢測到數十萬次使用Log4Shell漏洞進行的遠端代碼執行嘗試。最初的嘗試主要來自安全研究人員及潛在攻擊者執行的概念驗證(PoC)漏洞利用測試,外加自我檢測性質的線上漏洞掃描。在此之後,攻擊者開始嘗試安裝挖礦程式,包括Kinsing礦工僵屍網絡。

最新情報還表明,攻擊者正試圖利用此項漏洞竊取亞馬遜雲科技(AWS)賬戶中使用的密鑰。

安全研究員Greg Linares在推文中表示,惡意攻擊者可能正在建構一種蠕蟲,用于通過Log4j漏洞攻擊大量伺服器、進而造成損害或索取贖金。

#Log4J 據我所見,有證據表明接下來的24到48小時内将出現一種專門針對這項漏洞的蠕蟲程式。

這種病毒能夠自我傳播,并在受感染的端點上建立起自托管伺服器。

除了制造流量、滲漏檔案之外,它還将具備c2c功能。

— Greg Linares (@Laughing_Mantis) 2021年12月12日

美國網絡安全與基礎設施安全局(CISA)也釋出了警告,指出該漏洞“正在被愈發廣泛的惡意攻擊者所利用;鑒于影響的廣泛性,網絡防禦一方正面臨着緊迫挑戰。”該局建議各組織禁用運作有Log4j的一切面向外部的裝置,并根據漏洞相關特性設定規則以增強現有防火牆的安全水準。

安全研究人員昨晚發現,Log4j bug會影響到所有Java版本。是以即使大家運作的Java已經是最新版本,也仍然需要額外安裝Log4j修複更新檔。

JNDI-Exploit-Kit中剛剛添加了對LDAP序列化載荷的支援。是以隻要序列化載荷中使用的類位于應用程式的classpath當中,那麼此次漏洞就會影響到*一切* java版本。别以為使用最新版本的java就安全無憂了,請盡快更新您的log4j!pic.twitter.com/z3B2UolisR

— Márcio Almeida (@marcioalm) 2021年12月13日

The Verge網站的一份報告指出,如果研究人員将裝置名稱更改為能夠利用漏洞的特定字元串,就能從蘋果和特斯拉等伺服器處擷取ping權限。

開源社群貢獻者報酬過低問題已經引起公憤

此次發現的Log4j bug再次表明,全球大型企業正高度依賴于免費開源軟體。這種依賴性本身并沒有問題,但開源社群貢獻者報酬過低的問題已經引起公憤。

谷歌公司密碼學家Filippo Valsorda在自己的個人部落格上提到,修複Log4j bug的兼職維護者們為項目做出了巨大貢獻,但該項目在GitHub上隻有三個贊助者願意為項目志願者們支付酬金。

他還指出,貢獻者隻能通過GitHub或Patreon獲得少量資金回報,但他們的開發成果卻往往支撐着價值數百萬美元的業務。另外,這些重要系統中的bug很可能令整個網際網路瞬間傾覆,我們也沒理由對這些隻是拿業餘時間以幾乎免費方式參與貢獻的平民英雄們要求太多。

這些維護者們正在修複可能導緻數百萬美元(甚至再高幾個數量級)損失的嚴重漏洞。

“我用業餘時間研究Log4j。”

“一直夢想能全職從事開源工作。”

“有三位贊助者正在資助@rgoers的工作:Michael、Glenn與Matt。”

各位,我們在搞什麼…… pic.twitter.com/2hAxUWCjuC

— Filippo ${jndi:ldap://filippo.io/x} Valsorda (@FiloSottile) 2021年12月10日

約翰霍普金斯大學密碼學教授Matthew Green認為,開源行業需要一份真正具有廣泛影響力的開源庫與技術清單,以便更多人能夠參與到這些對于網際網路順暢運作極為重要的項目當中。

好吧,我想強調的是,如果大家想要解決這個問題,那最緊急的資源可能并不是錢。“可見性”更為重要。我們都知道有問題,但不知道問題究竟在哪。

— Matthew Green (@matthew_d_green) 2021年12月11日

安全廠商Chainguard公司創始人Dan Lorenc表示,雖然企業有意願資助開源項目,但卻很難找到合适的關鍵項目、特别是項目維護者本人。他還提到,在理想狀況下,整個行業可以直接資助那些負責維護三到四個項目的團隊。

這聽起來不太現實,但真正的難題在于如何配置設定、而非如何籌錢。畢竟網際網路行業是出了名的有錢。

企業有預算、也願意花錢,但卻特别缺時間。遺憾的是,尋找真正需要幫助的項目、特别是願意用精力和投入換取金錢的開源維護者才是真正的難題。pic.twitter.com/mFkOoOVYXn

— Dan Lorenc (@lorenc_dan) 2021年12月12日

貢獻者們表示,他們通過開源貢獻獲得的報酬非常有限,單憑這一份工作也幾乎維持不了生計。這樣的境況隻能用可悲來形容。

希望這個問題最終能喚醒行業注意到這群自發團結起來、願意為保持網際網路正常運轉而努力的開源貢獻者們。但願這次暴雷不要僅僅激起一絲漣漪,不要止步于人們的口頭讨論。

最後,讓我們用XKCD漫畫為這次事件作結。

Log4j漏洞背後的更大問題——開源項目的資金來源

繼續閱讀