Log4j 漏洞不僅僅是修復(fù),更需要構(gòu)建有效預(yù)警機(jī)制
近日,被全球廣泛應(yīng)用的Java日志結(jié)構(gòu)組件Apache Log4j被曝出一個(gè)高??p隙,攻擊者僅需一段代碼就可長途操控受害者服務(wù)器,縫隙波及面和損害程度堪比2017年的“永恒之藍(lán)”縫隙。
據(jù)外媒報(bào)導(dǎo),Steam、蘋果的云服務(wù)受到了影響,推特和亞馬遜也遭受了攻擊,元世界概念游戲“Minecraft我的世界”數(shù)十萬用戶被侵略。美聯(lián)社評(píng)論稱,這一縫隙可能是近年來發(fā)現(xiàn)的最嚴(yán)重的計(jì)算機(jī)縫隙。網(wǎng)友們也紛紛感慨,“這個(gè)縫隙就像把核武器按鈕分給了所有人,并且告訴我們,我們隨意按按試試”,“這個(gè)時(shí)代最不缺的大約便是末世感了吧”……
一.Log4j 為何被喻為“核彈級(jí)”
引起萬眾矚目、程序猿連夜加班的Apache Log4j,是一個(gè)依據(jù)Java的日志結(jié)構(gòu),已于2015年8月5日中止保護(hù)。Log4j2是其重構(gòu)晉級(jí)版別,新增的Lookups辦法設(shè)計(jì)用于經(jīng)過多種途徑動(dòng)態(tài)引進(jìn)外部變量,被很多用于事務(wù)系統(tǒng)開發(fā),用來記錄程序輸入輸出的日志信息,運(yùn)用極為廣泛。
由于Log4j2版別可由JNDl注入完成長途代碼執(zhí)行,黑客無需暗碼就能訪問網(wǎng)絡(luò)服務(wù)器,輕松操控目標(biāo)設(shè)備。據(jù)統(tǒng)計(jì),該縫隙影響6萬多流行開源軟件,影響70%以上的企業(yè)線上事務(wù)系統(tǒng)。
這一次縫隙的影響面之所以如此之大,主要仍是由于樹大招風(fēng),log4j2的運(yùn)用面實(shí)在是太廣了。一方面現(xiàn)在Java技術(shù)棧在Web、后端開發(fā)、大數(shù)據(jù)等范疇?wèi)?yīng)用十分廣泛,除了大型互聯(lián)網(wǎng)企業(yè),還有數(shù)不勝數(shù)的中小企業(yè)選擇Java。另一方面,很多像Kafka、Elasticsearch、Flink、Solr這樣的中間件都是用Java語言開發(fā)的。在上面這些開發(fā)過程中,很多運(yùn)用了Log4j2作為日志輸出,一旦輸出的日志有外部輸入混進(jìn)來,就會(huì)釀成大禍。
現(xiàn)在Apache官方已經(jīng)發(fā)布了修正方案,一起各大廠商也已經(jīng)給出了對(duì)應(yīng)方案。作為該縫隙的發(fā)現(xiàn)者,阿里云的應(yīng)對(duì)相對(duì)沉著,11月24日就向Apache官方報(bào)告了縫隙,并第一時(shí)間開端修正自家的相關(guān)受影響系統(tǒng)。
二.如何有用預(yù)防此類縫隙
軟件的縫隙有時(shí)不可避免,依據(jù)Gartner的相關(guān)統(tǒng)計(jì),到 2025 年,30% 的要害信息基礎(chǔ)設(shè)施組織將遇到安全縫隙,這將會(huì)導(dǎo)致要害信息基礎(chǔ)設(shè)施運(yùn)營中止或要害型網(wǎng)絡(luò)物理系統(tǒng)中止,而隨著基礎(chǔ)設(shè)施云化進(jìn)程的加快,一款云原生觀測與分析平臺(tái)將至關(guān)重要。
日志服務(wù)SLS,可幫助快速部署一個(gè)預(yù)警機(jī)制,使得縫隙被利用時(shí)能夠快速發(fā)現(xiàn)并及時(shí)響應(yīng)。經(jīng)過運(yùn)用阿里云日志服務(wù)SLS,只需兩步即可完成攻擊檢測:
1.將 Java 程序日志接入 SLS
首要需要將事務(wù)日志接入SLS(假如已經(jīng)接入了的可跳過)。
SLS支持十分便捷的接入方法,這兒推薦運(yùn)用文件收集Java程序的日志,具體接入辦法包括:
-
數(shù)據(jù)收集:日志服務(wù)支持收集服務(wù)器與應(yīng)用、開源軟件、物聯(lián)網(wǎng)、移動(dòng)端、規(guī)范協(xié)議、阿里云產(chǎn)品等多種來源的數(shù)據(jù)。
-
運(yùn)用極簡模式收集日志:極簡模式不對(duì)日志內(nèi)容進(jìn)行解析,每條日志都被作為一個(gè)整體被收集到日志服務(wù)中,極大簡化了日志收集流程。
在日志接入后,就能夠在SLS操控臺(tái)裝備要害詞告警。
2.裝備要害字監(jiān)控
該縫隙被利用時(shí)會(huì)產(chǎn)生相應(yīng)的日志,經(jīng)過檢測以下要害字,即可識(shí)別:
"jndi:ldap://" or "jndi:rmi" or "javax.naming.CommunicationException" or "javax.naming.NamingException: problem generating object using object factory" or "Error looking up JNDI resource"
然后點(diǎn)擊查詢/分析,(假如有攻擊發(fā)生,會(huì)如下圖):
再點(diǎn)擊右上角的“另存為告警 -> 新版告警”:裝備告警規(guī)則如下:
通知里能夠裝備語音、釘釘?shù)惹?,如下圖所示:
假如日志中有要害字出現(xiàn),則會(huì)在發(fā)送語音和釘釘通知。
以上,便是構(gòu)建預(yù)警機(jī)制的一個(gè)簡易流程。最后,鑒于Log4j在全行業(yè)和政府運(yùn)用的云服務(wù)器和企業(yè)軟件中“無處不在”,因而將其更新到安穩(wěn)版別2.15.0至關(guān)重要,一起也要加強(qiáng)監(jiān)測手段,防范災(zāi)難性的縫隙。