應(yīng)用程序開發(fā)人員現(xiàn)在需要做什么來對抗Log4j漏洞
為什么企業(yè)可能已經(jīng)處于危險(xiǎn)之中,現(xiàn)在如何檢測和緩解Log4j漏洞,以及如何在未來提高您的代碼安全性。
本月早些時(shí)候,安全研究人員發(fā)現(xiàn)了用于數(shù)萬個(gè)Web應(yīng)用程序的Log4jJava軟件中的一系列主要漏洞。該代碼廣泛用于消費(fèi)者和企業(yè)系統(tǒng),從Minecraft、Steam和iCloud到Fortinet和RedHat系統(tǒng)的所有系統(tǒng)。一位分析師估計(jì)數(shù)百萬個(gè)端點(diǎn)可能面臨風(fēng)險(xiǎn)。
Log4j只是一系列軟件供應(yīng)鏈攻擊中的最新一次,包括SolarWinds(其構(gòu)建過程受損)和Kaseya(攻擊者替換了帶有惡意軟件的代碼)。
自從第一個(gè)Log4j漏洞曝光以來,安全供應(yīng)商和分析師已經(jīng)發(fā)布了大量有關(guān)該做什么的信息,范圍遍及整個(gè)地圖。有些人發(fā)布了接近世界末日的情景,而其他人則沒有那么可怕的預(yù)測。CheckPointSoftwareTechnologies已經(jīng)在其近一半的客戶群中發(fā)現(xiàn)了漏洞利用企圖。ContrastSecurity發(fā)現(xiàn)58%的Java應(yīng)用程序存在易受攻擊的版本,但實(shí)際上只有37%使用Log4j。
這四個(gè)問題分別是CVE-2021-44228、CVE-2021-45046、CVE-2021-4104和CVE-2021-45105。美國網(wǎng)絡(luò)安全和基礎(chǔ)設(shè)施安全局正在維護(hù)一個(gè)網(wǎng)頁,其中包含指向各種供應(yīng)商博客的鏈接,以及受影響的應(yīng)用程序列表,并試圖通過任何修復(fù)程序保持更新。這些問題涉及日志軟件的幾個(gè)特性,包括Java命名和目錄接口(JDNI)和JMSAppender事件消息,這兩者都允許遠(yuǎn)程代碼執(zhí)行。使這組漏洞變得危險(xiǎn)的原因是攻擊者不需要很多專業(yè)知識(shí)即可獲得這種遠(yuǎn)程訪問。最后一個(gè)漏洞是指拒絕服務(wù)條件,讓每個(gè)人都保持警覺。最近,Blumira發(fā)現(xiàn)了一種新的攻擊向量,它使用WebSockets擴(kuò)大了整個(gè)表面。
看起來我們還沒有聽說過Log4j的終結(jié)。很明顯,作為應(yīng)用程序開發(fā)人員,您有很多工作要做,以在短期內(nèi)查找、修復(fù)和防止log4j問題,但從長遠(yuǎn)來看,您需要擔(dān)心一些事情。
可能已經(jīng)處于危險(xiǎn)之中
在您開始鎖定問題之前,Mitiga的首席運(yùn)營官ArielParnes警告說:“您應(yīng)該查看組織是否已經(jīng)在過去某個(gè)時(shí)候使用Log4j遭到黑客攻擊。罪犯可能已經(jīng)在里面了?!盜T經(jīng)理JohnCronin提出了關(guān)鍵問題:“您知道您的哪些服務(wù)器使用Log4j?生成這些服務(wù)器的列表需要多長時(shí)間?你能及時(shí)修補(bǔ)它們嗎?你有自動(dòng)化工具還是有人需要登錄每臺(tái)服務(wù)器并手動(dòng)完成?您是否有在高峰使用時(shí)間修補(bǔ)實(shí)時(shí)生產(chǎn)服務(wù)器的流程?”當(dāng)然,回答這些問題需要付出一些努力。在上一篇文章中,我們介紹了如何確定您是否已被感染。
安全分析師發(fā)現(xiàn)了可追溯到2021年12月1日的漏洞利用,使用范圍廣泛的網(wǎng)絡(luò)協(xié)議,包括LDAP、RMI、DNS和HTTP。這些漏洞已經(jīng)安裝了各種惡意軟件,包括隱藏的加密貨幣礦工、Bitdefender稱為Khonsari的新型勒索軟件系列,以及加入Mirai僵尸網(wǎng)絡(luò)的代碼。最重要的是,一些研究人員報(bào)告了來自中國、朝鮮、土耳其和伊朗的國家支持的攻擊者的攻擊。
即時(shí)防御計(jì)劃
您的第一道防線是升級(jí)到最新的Log4j版本。最初,Apache發(fā)布了一個(gè)補(bǔ)丁,結(jié)果證明仍然存在漏洞。最新版本是Log4jv.2.17.0(如果您運(yùn)行的是Java8或更高版本)和Log4jv.2.12.2(如果您在整個(gè)Web應(yīng)用程序基礎(chǔ)架構(gòu)中運(yùn)行Java7)。這些默認(rèn)關(guān)閉JNDI并刪除消息查找訪問權(quán)限,這兩者都是各種漏洞的核心。禁用JNDI可能會(huì)破壞您的應(yīng)用程序中的某些內(nèi)容,因此在您在任何生產(chǎn)系統(tǒng)中實(shí)施之前,請仔細(xì)測試。
如果您的任何應(yīng)用程序不需要任何基于Java的日志記錄,您可能還想停止它。同樣,在部署之前進(jìn)行測試。
那些運(yùn)行自己的Minecraft服務(wù)器的人應(yīng)該檢查它是否在運(yùn)行Minecraftv.1.8.8或更高版本;這些版本是易受攻擊的。微軟發(fā)布了Minecraftv.1.18.1,修復(fù)了這個(gè)問題。您應(yīng)該立即升級(jí)或找到另一個(gè)更值得信賴的已修復(fù)服務(wù)器。
有哪些檢測工具可用
安全供應(yīng)商加班加點(diǎn)來擴(kuò)充他們的工具,您應(yīng)該利用各種免費(fèi)優(yōu)惠。下面我列出了各種掃描器,可用于在運(yùn)行的應(yīng)用程序或源文件中定位易受攻擊的代碼。您應(yīng)該確定該代碼是否已部署在任何生產(chǎn)實(shí)例中。
?Qualys有30天的Web應(yīng)用程序掃描器免費(fèi)試用期,并在他們的博客上提供了有關(guān)如何使用它的說明。
?CheckPoint的CloudGuardAppSec是另一款掃描儀,這里還有30天的免費(fèi)試用期。
?CERT有一系列使用Windows、Python和Bash編寫的掃描儀。
?如果您使用BurpSuite,IBM的X-Force有它的免費(fèi)掃描器,SilentSignal有它的插件。
?WhiteSource有免費(fèi)的掃描儀。
?JFrog擁有基于Python的無Xray掃描工具來檢查您自己的Java代碼庫。
?如果您使用的是Semgrep,這是規(guī)則。
?OrcaSecurity有一個(gè)免費(fèi)的在線工具,可以掃描AWS、Azure和GoogleCloud環(huán)境,并提供30天的平臺(tái)試用期。
提高編碼安全性的長期策略
首先,了解代碼依賴。Log4j的挑戰(zhàn)之一是它的流行度和包含在眾多Java庫中。一旦您在自己的代碼中根除舊版本,就該調(diào)查您正在運(yùn)行的其他依賴于它的版本。如果您使用Apache框架Struts2、Flume、Dubbo、Kafka、Solr、Druid或Fink,則必須升級(jí)這些項(xiàng)目中的Log4j庫。如果Struts引起了人們的注意,那么2017年的一次漏洞利用導(dǎo)致Equifax的數(shù)據(jù)庫遭到入侵,泄露了超過1.4億客戶的私人數(shù)據(jù)。
WeHackPurple的TanyaJanca(一個(gè)優(yōu)秀的應(yīng)用程序安全來源)建議你使用dependencyGraph、Snyk或OWASP的Dependency-Check。一旦找到任何依賴項(xiàng),如果不能立即修補(bǔ)它,請注釋掉調(diào)用Log4j的代碼。
了解Web應(yīng)用程序防火墻(WAF)的工作原理。如果您沒有WAF,現(xiàn)在是時(shí)候入手一個(gè)了。如果您的任何代碼部署在WAF后面,請打開他們的檢測規(guī)則并檢查供應(yīng)商是否已更新其規(guī)則以涵蓋所有最新漏洞。但要意識(shí)到,自從該漏洞被公布以來,研究人員已經(jīng)展示了許多構(gòu)建嵌套和混淆有效載荷的方法,這些有效載荷可以繞過提議的WAF過濾規(guī)則。Fastly對如何測試WAF有效性進(jìn)行了廣泛的解釋。
利用Log4j漏洞緩解和補(bǔ)丁工具。許多公司已經(jīng)為Log4j提供了緩解工具:
?Cybereason整理了此代碼。LunaSec進(jìn)一步改進(jìn)了它并將其作為公共服務(wù)托管在實(shí)時(shí)服務(wù)器上。
?來自AmazonWebServices的Corretto團(tuán)隊(duì)開發(fā)了一個(gè)嘗試修補(bǔ)Log4j的Java代理。該代理可在GitHub上獲得。
?ContrastSecurity具有SafeLog4j,它可以檢測和修補(bǔ),據(jù)說可以抵御WAF繞過攻擊。
?Cisco提供其安全端點(diǎn)的30天免費(fèi)試用。還有其他端點(diǎn)供應(yīng)商已包含檢測規(guī)則,包括MicrosoftDefender(但目前僅適用于Windows版本)。
?如果您使用容器,您將需要特殊的保護(hù)產(chǎn)品。例如,RedHat更新了他們的Kubernetes高級(jí)集群安全,PaloAltoNetworks更新了它的PrismaCloud。