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