阿里云被工信部暫停合作,惹事的Log4j2漏洞該如何解決?
????
最近幾天,各家互聯網大廠的程序員朋友們,都快被 Log4j2 漏洞折磨瘋了,紛紛啟動自家軟件的漏洞修復。今天早上,阿里云被爆出作為工信部網絡安全威脅信息共享合作平臺,阿里云在發現該漏洞時并未及時向工信部匯報,所以被暫停合作 6 個月。在暫停期滿后,根據阿里云的實際整改情況研究是否恢復合作。
??
??
該漏洞最早被爆出是在 12 月 10 日凌晨。12 月 10 日凌晨,Apache 開源項目 Log4j 的遠程代碼執行漏洞細節被公開,由于 Log4j 的廣泛使用,該漏洞一旦被攻擊者利用會造成嚴重危害。
隨著漏洞爆出,各家大廠紛紛發布公告,斗魚、京東、網易、深信服和汽車產業安全應急響應中心皆發文表示,鑒于該漏洞影響范圍比較大,業務自查及升級修復需要一定時間,暫不接收 Log4j2 相關的遠程代碼執行漏洞。
??
??
那么這個漏洞到底是什么?怎么會讓各大廠連夜整合修復,下場發布公告?為什么波及范圍會這么廣泛?
1、Log4j 是什么?
Log4j ( Log For Java )是 Java 開源日志框架,它在用 Java 敲代碼的碼農群體里可以說是無人不知,無人不曉。
眾所周知,程序員寫完代碼之后并不會對代碼進行馬上使用,而是進行一系列的測試來確定代碼是否可行。
但是代碼在進行測試的時候是黑盒測試狀態,你根本不知道代碼在測試的過程中哪里出了問題。所以這個時候,日志的價值就體現出來了,它就好像一張演算稿紙,你可以在上面進行自己能看得懂的標記,方便隨時進行檢驗測算。
而 Log4j ,就是這樣一個開源的日志框架,它記錄了代碼在測試過程中的每一步,在代碼測試跑完的時候,就可以有針對性地進行修改,效率也更高。它里面整合了不少在修改代碼時會用到的常用功能,比如日志管理、輸出變量等實用功能。
事實上,日志是程序員們經常使用的一個工具,就像早年的英雄聯盟盒子一樣,雖然不用也可以打游戲,但是用了之后我可以更方便地打游戲,所以,為什么不用呢?
2、Log4j2 漏洞是怎么造成的?
Log4j2 是一個開源項目,僅有幾個人進行維護。2014 年,Log4j2 發布,它對 Log4j 進行了重大升級,完全重寫了 Log4j 的日志實現。Log4j2 提供了 Logback 中可用的許多改進,同時修復了 Logback 架構中的一些固有問題,目前已經更新到 2.17.0 版本。
最先發現漏洞的,是阿里云安全團隊中一位大佬。據他的說法,這個漏洞很早就被國外的安全代碼掃描平臺掃出來了,圈內的程序員大佬們也都在等待官方的修復,沒有聲張。
該漏洞是由 Log4j2 提供的 Lookup 功能造成的。從字面上理解,這個功能就是一個用來搜索內容的接口,Log4j2 也在 Lookup 的功能下,提供了不少實現的途徑,問題就出在這個叫 JNDI 的途徑上。
??
??
JNDI 被 Java 允許通過遠程連接的方式來加載文件,這個遠程地址可以是開發者自己的服務器,也可以是外界的服務器。黑客只要通過 JNDI 的方法連接上自己的惡意服務器,就可以堂而皇之從這個接口進來,進而在程序內部為所欲為。
最可怕的地方在于實現起來沒什么門檻,只要用一串簡單的字符,就能輕易攻破服務器,并在上面運行各種代碼。這別說是竊取個人信息了,黑客想要遠程挾持、癱瘓企業級的服務器,那也是毫無阻礙。
這個漏洞有多夸張?不僅包括了阿里、騰訊、百度、網易、新浪等一眾國內的互聯網大廠紛紛中槍,就連手機,耳機,汽車等硬件都有可能中招……
對于這次漏洞,有網友評價說道,“可以說是災難性的漏洞,比之前的 fastjson 和 shiro 還要嚴重,這個漏洞估計在之后三四年內還會繼續存在…”
3、緊急修復方案
針對此次漏洞,給大家分享一些網上的緊急方案:
- 緊急緩解措施
(1)修改 jvm 參數
-DLog4j2.formatMsgNoLookups=true
(2)修改配置 Log4j2.formatMsgNoLookups=True
(3)將系統環境變量 FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS 設置為 true
- 建立防火墻
目前,大部分公司的應急方案是建立防火墻。在 Log4j2 做一個觸發式的攔截程序,把與漏洞相關內容,提前進行阻攔。
- 版本更新
檢查所有使用了 Log4j2 組件的系統,并且進行更新修復。官方目前對漏洞進行了積極修復,版本更新到 2.17。
4、結語
由于 Log4j2 漏洞不僅影響 Java 應用程序,還影響使用該功能的任何服務,所以該漏洞的影響范圍非常的廣泛。雖然維護人員正在評估該漏洞的危害范圍,但是由于該插件非常受歡迎,被數百萬企業應用程序和服務所使用,所以目前無法對影響范圍做出具體的評估。
每個人都知道安全的重要性,安全本身并不是一個能夠創造價值的功能,反而更像是需要消耗價值以確保功能穩定的功能。網絡攻擊成功的可能性以及潛在損失的程度是難以預估的,雖然好多人正在通過漏洞修補方式來解決問題,但該漏洞帶來的影響可能會持續三四年之久。


























