<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    Log4j 2.x < 2.15.0 反序列化漏洞分析(含排查措施和修復建議)

    VSole2021-12-10 20:20:14

    漏洞簡述

    Log4j 2系列 < 2.15.0版本中存在反序列化漏洞。

    奇安信代碼安全實驗室分析發現該組件存在Java JNDI注入漏洞。程序將用戶輸入的數據進行日志,即可觸發此漏洞;成功利用此漏洞的攻擊者可在目標服務器上執行任意代碼。

    奇安信代碼安全實驗室經驗證,Apache Struts2、Apache Solr、Apache Druid、Apache Flink等眾多組件與大型應用均受影響。

    漏洞復現

    為便于驗證,復現使用的是環境 java 1.8.0_161 的較老版本。

    利用工具如下:

    https://github.com/tangxiaofeng7/apache-log4j-poc

    結果成功執行指定命令(打開macdown)。

    代碼分析

    在org.apache.logging.log4j.core.lookup Interpolator.calss lookup() 處理時,從第 190 行可以看到,它支持多種格式,其中包含jndi,故而使用jndi嘗試進行攻擊。

    觸發點在org.apache.logging.log4j.core.net JndiManager.class lookup()。

    傳入可能的用戶輸入值,即可觸發攻擊。

    修復分析

    在 org.apache.logging.log4j.core.appender AbstractOutputStreamAppender.class directEncodeEvent() 調用getLayout()進行處理時,如下所示代碼中添加了對于jndi調用的白名單檢查。

    并且,后續對 org.apache.logging.log4j.core.net JndiManager.class lookup() 基本重寫,也添加了jndi檢查。

    緩解分析

    jvm 啟動參數

    -Dlog4j2.formatMsgNoLookups=true`
    

    在傳入上述邏輯之前,org.apache.logging.log4j.core.pattern MessagePatternConverter.class format() 中

    第114 行會執行檢查:如果按照緩解建議添加jvm啟動參數,那么此處this.noLookups即為true,則不會進入后續處理,不會觸發后續反序列化流程。

    處理建議

    1、漏洞排查

    排查應用是否引入了 Apache Log4j2 Jar 包,若存在依賴引入,則可能存在漏

    洞影響。

    • (a)相關用戶可根據 Java JAR 解壓后是否存在 org/apache/logging/log4j 相關路徑結構,判斷是否使用了存在漏洞的組件,若存在相關 Java 程序包,則極可能存在該漏洞。

    • (b)若程序使用 Maven 打包,查看項目的 pom.xml 文件中是否存在如下圖所示的相關字段,若版本號為小于 2.15.0-rc2,則存在該漏洞。

    • (c)若程序使用 gradle 打包,查看 build.gradle 編譯配置文件,若在dependencies 部分存在 org.apache.logging.log4j 相關字段,且版本號為小于 2.15.0-rc2,則存在該漏洞。

    2、攻擊排查

    • 攻擊者在利用前通常采用 dnslog 方式進行掃描、探測,對于常見
    • 利用方式可通過應用系統報錯日志中的
    • “javax.naming.CommunicationException”、
    • “javax.naming.NamingException: problem generating object using object factory”、”Error looking up JNDI resource”關鍵字進行排查。
    • 流量排查:攻擊者的數據包中可能存在:“${jndi:rmi”、
    • “${jndi:ldap” 字樣,推薦使用奇安信網神網站應用安全云防護系
    • 統全流量或 WAF 設備進行檢索排查。

    3、修復建議

    (1)升級到最新版本:

    請聯系廠商獲取修復后的官方版本:https://github.com/apache/logginglog4j2 ;

    請盡快升級 Apache Log4j2 所有相關應用到最新的 log4j-2.15.0-rc2 版本,地址:https://github.com/apache/logginglog4j2/releases/tag/log4j-2.15.0-rc2 或采用奇安信產品解決方案來防護此漏洞。

    (2)緩解措施:

    • 添加 jvm 啟動參數 -Dlog4j2.formatMsgNoLookups=true。
    • 在應用程序的 classpath 下添加 log4j2.component.properties 配置文件文件,文件內容:log4j2.formatMsgNoLookups=True。
    • 設置系統環境變量 FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS 設置為 true。
    • 建議 JDK 使用 11.0.1、8u191、7u201、6u211 及以上的高版本。
    • 限制受影響應用對外訪問互聯網。

    事件啟發

    Apache Log4j 是Apache 的一個開源項目。Log4j 是一個強大的日志操作包,是可重用組件,廣泛應用于Java、 C、C++、.Net、PL/SQL 等程序中。通過各種第三方擴展,可將 Log4j 集成到 J2EE、JINI以及SNMP應用中。

    近年來,攻擊者越來越多地開始利用開源組件漏洞發動供應鏈攻擊。據安全機構調查顯示,開源供應鏈攻擊事件比2020年增長了650%。雖然企業第三方風險管理的意識和預算已經增長,但這并不一定意味著所采取的措施是有效的。

    奇安信代碼安全事業部技術總監章磊認為,Apache Log4j RCE 漏洞之所以能夠引起安全圈的極大關注,不僅在于其易于利用,更在于它巨大的潛在危害性。當前幾乎所有的技術巨頭都在使用該開源組件,它所帶來的危害就像多米諾骨牌一樣,影響深遠。我們首先需要做的是梳理自身產品中所使用的軟件資產,檢測其中是否使用了開源組件、影響哪些資產、影響程度如何,判斷受影響資產應修復到哪個版本,其它關聯組件是否受影響等,最后著手修復和防御后續類似攻擊。用戶可通過奇安信開源衛士等工具系統化地應對此類漏洞。

    章磊還表示,開源軟件安全治理是一項任重道遠的工作,需要國家、行業、用戶、軟件廠商都重視起來并投入才能達到良好效果。

    奇安信開源衛士20211209.907版本已支持對Log4j 任意代碼執行漏洞的檢測。用戶可登錄 https://oss.qianxin.com 進行檢測。

    序列化log4j
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    12月9日晚,Apache Log4j2反序列化遠程代碼執行漏洞(CVE-2021-44228)細節已被公開,受影響版本為Apache Log4j 2.x< 2.15.0-rc2。 Apache Log4j-2中存在JNDI注入漏洞,當程序將用戶輸入的數據進行日志記錄時,即可觸發此漏洞,成功利用此漏洞可以在目標服務器上執行任意代碼。 當前官方已發布2.15.0、2.15.1-rc1等版本,用戶
    騰訊云容器安全服務團隊通過犀引擎發現較多鏡像受ApacheLog4j2遠程代碼執行漏洞影響,存在較高風險!為助力全網客戶快速修復漏洞,免費向用戶提供試用,登錄控制臺(https://console.cloud.tencent.com/tcss)即可快速體驗。
    2022年1月19日,360漏洞云團隊監測到Apache發布安全公告,修復了多個存在于Apache Log4j中的漏洞。其中,1個嚴重漏洞,2個高危漏洞。Apache Log4j序列化漏洞漏洞編號CVE-2022-23307漏洞類型反序列化漏洞等級嚴重公開狀態未知在野利用未知漏洞描述由于處理序列化數據時不安全的輸入驗證而存在該漏洞。
    本文首發于奇安信攻防社區漏洞簡述Log4j 2系列 < 2.15.0版本中存在反序列化漏洞。奇安信代碼安全實
    Apache Log4j 1.2 版本的 Java 日志庫中存在一個缺陷,JMSAppender 容易受到不受信任 數據的反序列化的影響,如果部署的應用程序配置為使用 JMSAppender 和攻擊者的 JMS Broker,允許遠程攻擊者在服務器上執行代碼。發現存在 JNDI 遠程命令執行漏洞,效果與 log4j2 漏洞類似,但利用條件相對苛刻。
    后續經過掃描探測發現T3、IIOP協議同時關閉了,僅限HTTP訪問。需要用戶名密碼,打補丁后,可以判斷用戶名密碼是否存在,但是無法上傳文件成功。
    近日,Apache官方發布了多個安全漏洞的公告,包括Apache log4j 代碼問題漏洞(CNNVD-202201-1425、CVE-2022-23307)、Apache Log4j SQL注入漏洞(CNNVD-202201-1421、CVE-2022-23305)、Apache log4j 代碼問題漏洞(CNNVD-202201-1420、CVE-2022-23302)等。成功利用上述漏洞的攻
    目前的Log4j2檢測都需要借助dnslog平臺,是否存在不借助dnslog的檢測方式呢
    Apache Log4j2是一款優秀的Java日志框架,最近爆出了一個jndi注入的漏洞,影響面非常廣,各大廠商都被波及。Log4j2作為日志記錄的第三方庫,被廣泛得到使用,這次主要分享一下,最近的一些調試記錄。
    這是本系列第三篇文章,依舊是某省HVV紅隊的經歷。 過程中只用到很簡單的方法,所以加了個標題“有手就行”。 這家企業在內網犯了幾乎所有能犯的錯誤,打起來也比較順利,只不過當時被管理員發現了,爭分奪秒的過程也比較有趣哈哈。
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类