一起看看讓互聯網著火的“Log4j”

來源 | 一驥絕塵
知圈  進“域控制器群”請加微13636581676,備注域

一起看看讓互聯網著火的“Log4j”的圖1

發生了什么?


2021年11月24日,阿里云安全團隊向Apache官方報告了Apache Log4j2遠程代碼執行漏洞。隨后多家機構,包括車輛安全漏洞預警與分析平臺,監測到Apache Log4j存在任意代碼執行漏洞,并緊急通報相關情況。以下是該“核彈級”漏洞的情況。

一起看看讓互聯網著火的“Log4j”的圖2
圖1:近期火爆的Log4j漏洞
 
編號 :CVE-2021-44228
嚴重級別 :CVSS:10.0
 
由于Apache Log4j存在遞歸解析功能,未取得身份認證的用戶,可以從遠程發送數據請求輸入數據日志,輕松觸發漏洞,最終在目標上執行任意代碼。這個漏洞可能對互聯網上所有通過Apache Log4j來記錄用戶訪問請求的所有Java應用程序都有影響,可以讓網絡攻擊者無需密碼就能訪問網絡服務器。范圍基本上波及所有Java項目。
 
Apache官方緊急發布了2.15.0 RC1的補丁版本,但隨后發現該補丁可以被繞開。官方又緊急發布了2.15.02 RC2的補丁版本。
 
如果版本不兼容,短時間內難以升級補丁怎么辦?Apache也給出了臨時緩解措施:
1. 禁止沒有必要的業務訪問外網
2. 使用jvm參數啟動 -
 
  Dlog4j2.formatMsgNoLookups=true
3. 設置  log4j2.formatMsgNoLookups=True
4. 系統環境變量中將 
   FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS 設置為 true
 
在CVE-2021-44228公布后近兩周的時間內,各方面都忙于修補漏洞,當然也有進一步發掘甚至利用漏洞的。截至寫這篇文章的時候,已經多了兩個相關的漏洞:CVE-2021-45046和CVE-2021-45105。Apache Log4j 也已經升級到2.17.0版本。
 
對這個告警新聞,有沒有覺得總體理解,但又有些疑問?我們借此機會,來進一步扒開看看這條新聞,多吃幾口瓜。當然以下內容是針對非專業人員的討論,老兵和大牛們請跳過或者指正。

一起看看讓互聯網著火的“Log4j”的圖3

網絡信息安全背景


黑客這個名字相信大家都很熟悉,白客相信也不陌生。但你知道還有灰客、紅客、藍客和綠客嗎?其實它們都是指戴著不同顏色帽子的駭客,而駭客指具有相當網絡安全技術的人。在上世紀二三十年代的美國電影里,壞人經常戴個黑禮帽,而好人經常戴的是白禮帽,而隨著更多定義范圍延伸,就有了戴不同顏色帽子的駭客。
 
一起看看讓互聯網著火的“Log4j”的圖4
圖2:戴各色帽子的駭客
 
黑客: 通過非法手段破壞網絡安全來賺取利益或者傷害他人人身安全。就是通常意義上理解的壞人。
 
白客: 他們是黑客的對立面,受雇于政府或者公司,通過他們的網絡信息技術來設計網絡安全系統、修復漏洞、阻擋非法入侵等。也就是通常意義上理解的好人。上面新聞提到的阿里云安全團隊,以及耳熟能詳的騰訊科恩實驗室和360漏洞云團隊等都是白客。
 
灰客: 這個世界當然不是非黑即白的,灰客就是一批游走于灰色地帶的人。不同于白客,他們通常會在被攻擊方不知情的情況下入侵對方網絡。但是不同于黑客,入侵后他們不會竊取金錢或者造成其他傷害。有時候灰客入侵網絡后會通知網絡主人,如果網絡主人愿意付給他們錢,他們也會提供修復漏洞的方法。
 
紅客: 他們是激進的駭客。雖然也出于正義的目的對付黑客,但是紅客們一般采取“以暴制暴”的方式。例如對DOS攻擊黑客的系統讓其癱瘓,或者遠程入侵黑客的電腦,刪除其所有資料。
 
藍客: 他們是編制外的“臨時工”。與白客不同,他們不受雇于某個組織或公司。但是這些組織或者公司部署好網絡安全系統之后會邀請藍客來做滲透測試,即嘗試攻擊系統來測試安全系統的可靠性。
 
綠客: “綠”字有點“愣頭青”的意思。他們指一批勤于學習網絡安全知識,但是學藝未精的人。由于技術欠佳,綠客經常會在進階過程中造成意外傷害和攻擊,而自己也不知道怎么修復。
 
除了人物之外,我們再來看看事情。上面新聞提到的CEV和CVSS又是什么?
 
CVE的英文全稱是“Common Vulnerabilities & Exposures”,是一個通用漏洞披露的項目。CVE為信息安全漏洞或易損性給出一個公共的名稱,以幫助用戶在各自獨立的各種漏洞數據庫中和漏洞評估工具中共享數據。同時CVE也提供了描述漏洞的標準,使大家在分析討論問題的時候,能明確地在“同一個頻道上”。其編號由年份和數目編碼組成,例如這次的CVE-2021-44228。
 
CVSS的英文全稱是“Common Vulnerability Scoring System”,是一個通用漏洞評分系統。CVSS旨在評估安全漏洞的嚴重性,是全球各組織使用的公開標準。該標準通過漏洞難易程度以及對機密性、完整性、可用性的影響綜合評估后,生成一個0到10分之間的評分值,10分最高。CVE-2021-44228對于網絡信息安全的機密性、完整性以及可用性均有嚴重影響,其CVSS分值10分就是該標準最嚴重的評分。
 
一起看看讓互聯網著火的“Log4j”的圖5

這個漏洞究竟是什么?


Apache是著名的非盈利開源軟件組織,它采用的協議鼓勵代碼共享和尊重原作者的著作權,允許使用者也可以在需要的時候修改代碼來滿足需要并作為開源或商業產品發布/銷售。
 
當然開源軟件不是說可以免費隨便用,比如不同開源軟件對于其許可(license)都是有要求的,而且修改后能否商用也不盡相同。汽車上就有不少用到Apache開源軟件的地方。而按照歐洲的法規,開源軟件的許可還需要在網站上公示。例如下圖就是某豪華品牌汽車的開源軟件許可情況,其中也包含了Apache License。
 
表1:某豪華品牌汽車的開源軟件許可情況 
一起看看讓互聯網著火的“Log4j”的圖6

Log 就是日志,主要用于記錄程序運行的情況,以便于程序在部署之后的排錯調試等。針對不同的編程語言,日志體系也有所不同。
 
一起看看讓互聯網著火的“Log4j”的圖7
圖3:Java和Log4j
 
Log4j(log for java)則是 Apache 的一個開源項目,通過使用 Log4j,可以控制日志信息輸出到日志文件、也可以控制每一條日志的輸出格式以及控制日志的生成過程。
 
JNDI(Java Naming and Directory Interface)是一種標準的Java命名系統接口,JNDI提供統一的客戶端API,由管理者將JNDI API映射為特定的命名服務和目錄系統,使得Java應用程序可以和這些命名服務和目錄服務之間進行交互。
 
這次的漏洞就出在Log4j對日志消息處理時沒有限制JNDI的使用。用戶遠程輸入的內容一般會被日志記錄。而如果攻擊者輸入的內容包含了JNDI Lookup,則在運行日志記錄操作時,JNDI Lookup會被遞歸調用。當該JNDI指向一個惡意服務器時,Log4j就會鏈接該服務器,下載并執行任意的惡意代碼,形成攻擊。所以該漏洞的緩解措施都關于限制JNDI在日志消息處理時的調用。

一起看看讓互聯網著火的“Log4j”的圖8
 

對汽車網絡安全的潛在影響

 
一起看看讓互聯網著火的“Log4j”的圖9
圖4:智能座艙概念圖
 
Java在汽車上的應用一般是非實時和非安全強相關的,例如車載娛樂app。Java的運行效率、魯棒性和可靠性都不如C/C++。與操作系統的契合上,C++主要在Linux和QNX,而Java則主要在Android上應用。近年來隨著車載App和車載視頻處理的豐富,Android和Java在汽車上的應用亦越來越多。此次安全漏洞相信對底盤和ADAS等車載軟件的影響較少,但是對車載娛樂App和廠商云端后臺的影響相信是舉足輕重的。
 
譬如Apache Kafka就受這次的Log4j影響,而有些廠商的云端就采用了該開源流處理平臺來做車隊管理和車端采集數據管理系統。

一起看看讓互聯網著火的“Log4j”的圖10

寫在最后


隨著網聯化和智能化的發展,汽車一定會更深入地成為計算機和互聯網的重要節點。無論從法律法規的要求還是消費者對信息安全的個人需求來說,汽車網絡安全的發展都是勢在必行的。而矛與盾永遠是那么相愛相殺。跟汽車相關的網絡安全漏洞在未來亦一定會層出不窮,而對于網絡安全平臺、漏洞披露等白客項目亦必定會如雨后春筍般涌現。很多團體和機構亦已布局已久。像阿里云安全團隊、科恩實驗室等雖然曝光度不算很高,但他們都是已經深耕多年的汽車網絡安全技術團隊。而國家車輛安全漏洞預警與分析平臺也是汽車網絡安全深化發展,全方位完善體系建設的重要體現。
 
一起看看讓互聯網著火的“Log4j”的圖11
圖5:國家智能網聯汽車創新中心網站的車聯網安全態勢分析截圖
 
對于個人而言,汽車網絡安全工程師無疑大有可為。你知道這個世界上駭客的失業率嗎?答案是零!沒有一個網絡安全技術人員找不到工作!而精通計算機、網絡技術和汽車技術的復合型人才更是少之又少,相信這類人才會是汽車行業最吃香的崗位之一。你有興趣一起投身這個領域嗎? 一起看看讓互聯網著火的“Log4j”的圖12
 
參考來源:

1. ‘The Internet Is on Fire’, 
A vulnerability in the Log4j logging framework 

has security teams scrambling to put in a fix. 

https://www.wired.com/story/log4j-flaw-hacking-internet/

2. https://dunhamweb.com/
blog/log4j-what-you-should-know-and-what-you-can-do

3. https://logging.apache.org/log4j/2.x/

4. https://index.cvvd.org.cn/

登錄后免費查看全文
立即登錄
App下載
技術鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP