天天看點

Log4j漏洞不僅僅是修複,更需要建構有效預警機制

近日,被全球廣泛應用的Java日志架構元件Apache Log4j被曝出一個高危漏洞,攻擊者僅需一段代碼就可遠端控制受害者伺服器,漏洞波及面和危害程度堪比2017年的“永恒之藍”漏洞。

據外媒報道,Steam、蘋果的雲服務受到了影響,推特和亞馬遜也遭受了攻擊,元宇宙概念遊戲“Minecraft我的世界”數十萬使用者被入侵。美聯社評論稱,這一漏洞可能是近年來發現的最嚴重的計算機漏洞。網友們也紛紛感慨,“這個漏洞就像把核武器按鈕分給了所有人,并且告訴大家,大家随便按按試試”,“這個時代最不缺的大概就是末世感了吧”……

一、Log4j 為何被喻為“核彈級”

引起萬衆矚目、程式猿連夜加班的Apache Log4j,是一個基于Java的日志架構,已于2015年8月5日停止維護。Log4j2是其重構更新版本,新增的Lookups方法設計用于通過多種途徑動态引入外部變量,被大量用于業務系統開發,用來記錄程式輸入輸出的日志資訊,使用極為廣泛。

由于Log4j2版本可由JNDl注入實作遠端代碼執行,黑客無需密碼就能通路網絡伺服器,輕松控制目标裝置。據統計,該漏洞影響6萬多流行開源軟體,影響70%以上的企業線上業務系統。

這一次漏洞的影響面之是以如此之大,主要還是因為樹大招風,log4j2的使用面實在是太廣了。一方面現在Java技術棧在Web、後端開發、大資料等領域應用非常廣泛,除了大型網際網路企業,還有多如牛毛的中小企業選擇Java。另一方面,大量像Kafka、Elasticsearch、Flink、Solr這樣的中間件都是用Java語言開發的。在上面這些開發過程中,大量使用了Log4j2作為日志輸出,一旦輸出的日志有外部輸入混進來,就會釀成大禍。

目前Apache官方已經釋出了修複方案,同時各大廠商也已經給出了對應方案。作為該漏洞的發現者,阿裡雲的應對相對從容,11月24日就向Apache官方報告了漏洞,并第一時間開始修複自家的相關受影響系統。

二、如何有效預防此類漏洞

軟體的漏洞有時不可避免,根據Gartner的相關統計,到 2025 年,30% 的關鍵資訊基礎設施組織将遇到安全漏洞,這将會導緻關鍵資訊基礎設施營運停止或關鍵型網絡實體系統停止,而随着基礎設施雲化程序的加快,一款雲原生觀測與分析平台将至關重要。

日志服務SLS,可幫助快速部署一個預警機制,使得漏洞被利用時可以快速發現并及時響應。通過使用阿裡雲日志服務SLS,隻需兩步即可完成攻擊檢測:

1. 将Java程式日志接入SLS

首先需要将業務日志接入SLS(如果已經接入了的可跳過)。

SLS支援非常便捷的接入方式,這裡推薦使用檔案采集Java程式的日志,具體接入方法包括:

  • 資料采集:日志服務支援采集伺服器與應用、開源軟體、物聯網、移動端、标準協定、阿裡雲産品等多種來源的資料。
  • 使用極簡模式采集日志:極簡模式不對日志内容進行解析,每條日志都被作為一個整體被采集到日志服務中,極大簡化了日志采集流程。

在日志接入後,就可以在SLS控制台配置關鍵詞告警。

2. 配置關鍵字監控

該漏洞被利用時會産生相應的日志,通過檢測以下關鍵字,即可識别:

"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"

然後點選查詢/分析,(如果有攻擊發生,會如下圖):

Log4j漏洞不僅僅是修複,更需要建構有效預警機制

再點選右上角的“另存為告警 -> 新版告警”:配置告警規則如下:

Log4j漏洞不僅僅是修複,更需要建構有效預警機制

通知裡可以配置語音、釘釘等管道,如下圖所示:

Log4j漏洞不僅僅是修複,更需要建構有效預警機制

如果日志中有關鍵字出現,則會在發送語音和釘釘通知。

Log4j漏洞不僅僅是修複,更需要建構有效預警機制

以上,就是建構預警機制的一個簡易流程。最後,鑒于Log4j在全行業和政府使用的雲伺服器和企業軟體中“無處不在”,是以将其更新到穩定版本2.15.0至關重要,同時也要加強監測手段,防範災難性的漏洞。