軟件內部的定時炸彈:0-Day Log4Shell只是冰山一角
譯文???
【51CTO.com快譯】“如果攻擊者能夠滲透到像log4j這樣的流行庫中,它們將很快在世界上大多數數據中心內以特權運行?!?/p>
— Jeff Williams, Contrast Security (2018)
???
為什么今天的網絡安全威脅更具威脅性,以及它們與我們過去遇到的障礙有何不同
在過去的兩年中,勒索軟件的興起只是冰山一角。頭版頭條新聞和有害軟件供應鏈攻擊的揭露將網絡安全提升到許多政府和組織的首要議程。與此同時,即使是普通大眾也意識到了Nation-State主義者和犯罪組織帶來了一系列新的網絡威脅。
在我寫這篇文章的時候Log4Shell已經發生了。所以這成為我將要分享的最好的例子--為什么現在的網絡威脅更具威脅性。
我需要告訴你的是,網絡安全威脅的性質不同于我們過去所面臨的挑戰--從技術復雜性到日益增長的相互依賴。因此,攻擊者抓住機會的速度比我們的緩解要快得多。但首先讓我們談談什么是Log4Shell。
Log4j 0-day 漏洞(又稱"Log4Shell")(CVE-2021–44228 & CVE-2021–45046)
世界各地的公司都在努力降低多年來發現的最重要的開源軟件安全漏洞造成的損害。過去二十年中,在無數Java應用程序中使用了一個名為Log4j的程序,該程序中的一個缺陷,迫使幾乎每家公司都在調查它們的軟件以確定是否容易受到攻擊。
Zero-day 漏洞 (CVE-2021–44228)于2021年12月9日公布,被稱為Log4j或Log4Shell,它目前正成為攻擊目標。因此CVE-2021-44228被指定為最高的“嚴重”性評級,風險評分為10/10。
在我撰寫本文時,出現了第二個漏洞,記錄為CVE-2021-45046。根據MITRE的說法,新漏洞CVE 2021-45046的描述表明,在Apache Log4j 2.15.0中解決CVE-2021-44228的修復程序“在某些非默認配置中不完整”。
Updated Log4j CVEs Summary
- CVE-2021-44228(CVSS評分:10.0)--影響Log4j 2.0-beta9到 2.14.1版本的遠程代碼執行漏洞(2.15.0 版本中已修復)
- CVE-2021-45046(CVSS評分:9.0)--影響從Log4j 2.0-beta9到2.15.0版本的信息泄漏和遠程代碼執行漏洞,不包括 2.12.2(在 2.16.0 版本中已修復)
- CVE-2021-45105(CVSS評分:7.5)--影響從Log4j 2.0-beta9到2.16.0版本的拒絕服務漏洞(已在2.17.0版中修復)
- CVE-2021-4104(CVSS評分:8.1)--影響Log4j 1.2版的不受信任的反序列化缺陷(無修復程序;直接升級到2.17.0版)
為什么這個漏洞如此具有破壞性?
大多數安全漏洞需要一定程度的專業知識才能被利用。但這個名為“Log4Shell”的程序所需的工作量很小。
1. 大多數軟件(實際上是所有的商業軟件)都會在軟件運行時保存所有的活動日志,允許開發人員和操作員在用戶遇到問題時查看并找出問題的所在。
2. 該活動包括用戶輸入到網站表單中的按鍵內容。
3. Log4Shell漏洞允許攻擊者在Web表單中輸入精心制作的字符串,一旦被記錄下來,就會控制運行它的計算機下載惡意代碼。
4. 根據應用程序決定記錄哪些數據,可以在各個領域找到該惡意字符串,從針對Web服務器的HTTP用戶代理到Minecraft中的聊天室消息。
5. 在當時,那臺電腦被“劫持”。
6. 旨在利用該漏洞的惡意軟件周日晚上開始蔓延。
7. 然后攻擊者進一步利用受影響的系統,例如安裝加密挖礦軟件,勒索軟件等等。
利用此漏洞的結果是可以完全控制受感染的系統。此外無論是否經過身份驗證,此漏洞都可以利用,從而增加了總體的嚴重性、規模和潛在影響,因此CVSS分數異常的高。
據MITRE和ZDNet稱,到目前為止,攻擊者已利用該漏洞:
- 在易受攻擊的系統上安裝加密礦工;
- 竊取系統憑據(憑據被盜);
- 部署勒索軟件;
- 更深地隱藏在受損網絡中(持久性);
- 竊取數據。
建議
目前,Log4j易受攻擊版本范圍從2.0版本到2.14.1。此外,已棄用的1.X中仍然有潛在的漏洞。合理的解決方案是安裝當前可用的Log4j修補版本來解決此漏洞,即Log4j版本2.16.0。
此外,端點檢測和響應(EDR)、Web應用程序防火墻(WAF)和入侵檢測系統(IPS)等網絡安全解決方案正試圖通過提供“虛擬補丁”來緩解這個問題。
更新?--2021年12月20日(CVE-2021–45105)
Apache Log4j2版本2.0-alpha1到2.16.0(不包括2.12.3)不能防止自引用查找不受控制的遞歸。這允許控制線程上下文映射數據的攻擊者在解釋精心設計的字符串時導致拒絕服務。此問題已在Log4j 2.17.0和2.12.3中修復。
網絡犯罪的性質
當我們觀察 20 年前的網絡犯罪分子時,他們必須非常技術化--我們在電影中看到的“真正的黑客”戴著兜帽,在鍵盤上快速著打字?,F在網絡犯罪的入門門檻低,并且網絡犯罪正在成為一種服務。
當今最有利可圖的網絡犯罪活動是勒索軟件,它會滋生更危險的威脅并需要更具創新性的網絡防御。例如,勒索軟件即服務 (RaaS) 為非技術犯罪分子提供了利用網絡勒索的機會。然而,鑒于威脅格局的快速變化,真正的挑戰是了解風險。
黑客可以從更復雜的網絡犯罪中獲利的另一種方式是為網絡犯罪提供“基礎設施即服務”。該領域的那些人提供服務和基礎設施--包括防彈托管和僵尸網絡租賃--其他不法分子利用這些服務和基礎設施來完成他們骯臟的工作。
防彈托管可幫助網絡犯罪分子將網頁和服務器放在Internet上,而不必擔心被執法部門刪除。網絡犯罪分子可以支付僵尸網絡租用費用,讓他們可以臨時訪問受感染計算機網絡,用于分發垃圾郵件或DDoS攻擊等等。
復雜性與相互依賴性
要明確的是,這不是我們第一次遇到這樣的假期破壞者。上一次遇到這樣的危機是2014年在OpenSSL中發現Heartbleed漏洞的時候。難道我們不應該從錯誤中吸取教訓嗎?
幾乎所有主要科技企業公司都同意向一個基金捐款,以維護OpenSSL和其他關鍵開源項目的安全。然而,還有兩個更復雜的問題:
1. 規模:Java長期以來一直是最著名的企業軟件編程語言之一,Log4j是Java應用中最流行的日志工具之一。
2. 如何構建軟件:Log4j也被用于各種開源軟件程序中,這些程序通常作為其他軟件的基礎。
在過去的二十年中,開源軟件導致了企業軟件創新的爆炸式增長。盡管如此,這個世界上還有一個公開的秘密:許多著名和突出的開源項目都是由少數人維護的,他們不一定有償去做這項工作。
然而,問題不在于缺少資金:有太多的開源項目被用來構建世界上一些最關鍵的軟件,而僅僅確定需要支持的軟件就是一個巨大的挑戰。
更多方面的攻擊 — IoT(示例)
即使像微軟這樣的主要技術公司已經改善了他們的安全態勢,但今天的攻擊面也比以前更廣泛。造成這一原因的一個特殊貢獻者是物聯網(IoT)設備。
黑客可以使設備脫機的方法之一就是發送使機器崩潰的惡意數據包。 另一件事是當他們可以在設備上執行代碼時,這就打開了在網絡上持久化或橫向移動到其他類型目標的可能性。
與大型機服務器、臺式計算機、筆記本電腦和移動設備不同,從安全角度來看,物聯網很難更新。這不是簡單的“做或不做”的意識形態,而是局限性導致物聯網安全面臨挑戰。
許多物聯網設備都設計得非常小,并且功率剛好滿足特定的功能需求。因此,沒有足夠的內存、存儲或 CPU 功能來容納安全更新。 所以對于大多數在野外運行的物聯網來說修補是不可能的。
今年8月,Realtek警告稱其WiFi模塊中的三個SDK存在四個漏洞。根據該公告,可能有近一百萬臺易受攻擊的設備處于使用中,這包括VoIP設備、無線路由器、中繼器、IP攝像機、智能照明控制,可能還包括任何采用該芯片設計的WiFi連接設備。
以Realtek為例,修復涉及更新相關產品的固件,這會引入多種困難:
- 查找正在使用的物聯網設備是否包含該芯片組;
- 查看設備是否處于易受攻擊的版本下;
- 更新固件。
更新固件通常涉及到直接訪問設備。在大多數情況下這是另一個挑戰,這些物聯網設備可能位于難以到達的位置(天花板、油箱內、另一臺機器內…)。
也許值得補充的是,每個人都可以使用Shodan漏洞搜索引擎找到受影響的硬件,這意味著黑客也可以這樣做。
回到BlackHat 2016,Log4Shell被發現。
最后,還有一個提醒,我們應該更加關注安全研究。例如,在 Black Hat USA 2016中,Alvaro Mu?oz 和 Oleksandr Mirosh 研究了JNDI問題。
雖然沒有具體命名Log4j,但它是Log4j使用底層接口中的缺陷。當然,知道Log4Shell是一個“我早就告訴過你了”對所有安全專業人員來說都沒有什么好處,他們正以110%的速度努力解決這個問題。
然而,知道它是在2016年發現的,這凸顯了讓安全團隊能夠從研究中獲取相關信息的重要性,以及將這些經驗教訓應用于組織自己的基礎架構和實踐所需的資源(時間,金錢等)。
建議?--再次強調,零信任和縱深防御
經驗證的安全原則,如縱深防御和零信任框架,也可以發揮重要作用。許多安全團隊非常了解這些概念,并希望將其應用于組織的軟件和解決方案部署。
然而,它們經常遇到其他利益相關者的抵制,或者缺乏部署它們的資源。正如我之前提到的,我們仍在實現這一目標的旅程中。
希望隨著自動化(例如基礎架構即代碼,主要用于圍繞 CI/CD 構建的現代管道)的日益普及,使安全團隊能夠與開發人員合作,從一開始就跨多個系統構建起更安全的解決方案。
零信任原則在主機、應用程序和網絡級別也起著至關重要的作用。 例如在主機級別利用Log4j的進程需要哪些實際權限和功能。越來越多的行為監控(EDR、NDR 和 XDR)與運行時保護可以作為一種強大的組合來減輕被利用系統的影響。
值得注意的是,零信任訪問通過網絡級別的微分段來體現自己。由于Log4Shell是一個兩階段攻擊--其中有效負載必須從攻擊者控制的系統中下載 --隔離受感染系統的能力是有利的。
最后的話--軟件內部的定時炸彈
無論是Log4j還是Realtek漏洞--都是冰山一角。 在蠕蟲和病毒準備削弱網絡的重要部分的早期,我們作為一個行業沒有做任何事情:我們沒有實施更好的技術,減少我們的攻擊面,或解決代碼庫中的內存損壞問題。
要了解IT/OT/IoT連接基礎背后真正的危險,還有很多的工作要做。但是我們可以參與查找漏洞,修復它們,并且提供更高級別的解決方案的各方力量越多,我們就能越快地過渡到更安全的世界。
譯者介紹
朱鋼,51CTO社區編輯,2019年CSDN博客專家20強,2020年騰訊云+社區優秀作者,10年一線開發經驗,曾參與獵頭服務網站架構設計,企業智能客服以及大型電子政務系統開發,主導某大型央企內部防泄密和電子文檔安全監控系統的建設,目前在BIM頭部企業從事招投標軟件開發。
原文標題:Time Bombs Inside Software: 0-Day Log4Shell is Just the Tip of The Iceberg,作者:Zen Chan
【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】