在本周末,很多企業(yè)的網(wǎng)絡(luò)安全人員正忙得不可開交。Log4j漏洞出現(xiàn)了另外一種攻擊載體,它通過使用底層的Javascript WebSocket連接,通過驅(qū)動式的破壞,在本地服務(wù)器上觸發(fā)遠(yuǎn)程代碼執(zhí)行(RCE)漏洞進(jìn)行攻擊。
換句話說,攻擊者可以利用漏洞攻擊那些并不暴露于任何網(wǎng)絡(luò)內(nèi)部系統(tǒng)中的以localhost運(yùn)行的服務(wù)。
Blumira公司的研究人員指出,這一發(fā)現(xiàn)推翻了Log4Shell攻擊僅限于暴露的有漏洞的網(wǎng)絡(luò)服務(wù)器的說法。
研究人員在周五的評論中說:"這個最新攻擊載體的出現(xiàn)意味著任何使用有漏洞的Log4j版本的用戶都可以通過他們機(jī)器上的監(jiān)聽服務(wù)器的路徑,或通過瀏覽本地網(wǎng)絡(luò)從而觸發(fā)該漏洞。”
這意味著還有更多新的惡意攻擊方式的存在,而不僅僅是通過使用一行代碼來獲得一個shell,從而在面向互聯(lián)網(wǎng)的服務(wù)器上投放惡意軟件進(jìn)行攻擊。
利用WebSockets進(jìn)行攻擊
WebSockets實現(xiàn)了網(wǎng)絡(luò)瀏覽器和網(wǎng)絡(luò)應(yīng)用之間的通信,如網(wǎng)站上的聊天和各種警報。它們通常會允許瀏覽器向這些類型的應(yīng)用程序發(fā)送數(shù)據(jù),但它們也常被用于主機(jī)指紋識別和端口掃描。
研究人員在帖子中解釋說,WebSockets同樣也充滿了各種安全風(fēng)險。WebSockets不像普通的跨域HTTP請求那樣受到同源策略的限制。他解釋說:"它們期望服務(wù)器本身能夠驗證請求的來源。雖然它們有時候很有用,但它們也引入了相當(dāng)多的風(fēng)險,因為沒有任何安全控制來限制它們的使用。"
在Log4j的案例中,攻擊者將通過WebSockets向可能含有漏洞的localhost或本地網(wǎng)絡(luò)服務(wù)器發(fā)出惡意請求。但這些目標(biāo)不一定是要暴露在互聯(lián)網(wǎng)上。
BreachQuest的聯(lián)合創(chuàng)始人兼首席技術(shù)官在電子郵件中說:"WebSockets以前曾被用來對內(nèi)部系統(tǒng)進(jìn)行端口掃描。企業(yè)應(yīng)該及時對應(yīng)用程序進(jìn)行打補(bǔ)丁,并防止?jié)撛诘囊资芄舻姆?wù)向外進(jìn)行連接。"
Log4Shell的本地攻擊場景
研究人員在帖子中對他的攻擊概念證明(PoC)進(jìn)行了詳細(xì)的分解;下面是研究人員的解釋。
第一步:在安裝了含有Log4j2漏洞的服務(wù)器上,攻擊者會通過WebSocket連接從瀏覽器觸發(fā)一個文件路徑的URL。Blumira在PoC中使用了一個基本的Javascript WebSocket連接,但研究人員指出,這不一定必須是localhost;WebSockets則允許連接到任何IP,這很容易在私有IP空間內(nèi)進(jìn)行利用。
第二步:當(dāng)頁面加載時,它將會啟動一個本地WebSocket連接,連接到易受攻擊的監(jiān)聽服務(wù)器上,并通過基于Java命名和目錄接口(JNDI)連接字符串來連接出去。這種技術(shù)類似于WebSockets的本地主機(jī)端口掃描,用于主機(jī)的指紋識別。
第三步:一旦受害者的主機(jī)連接到本地服務(wù)或主機(jī)本身可訪問的服務(wù)的開放端口,攻擊者就可以在文件路徑或參數(shù)中放置一個漏洞字符串。當(dāng)這種情況發(fā)生時,含有漏洞的主機(jī)會和漏洞服務(wù)器進(jìn)行連接,加載攻擊者的類,并以java.exe為父進(jìn)程來執(zhí)行它。
漏洞的檢測和處理
但是壞消息是,根據(jù)分析,這是一種很隱蔽的攻擊方法。主機(jī)內(nèi)的WebSocket連接可能很難進(jìn)行深入的掃描,這也增加了這種攻擊檢測的復(fù)雜性。這是因為WebSocket在網(wǎng)頁加載時會悄悄進(jìn)行連接,客戶端則沒有方法進(jìn)行直接控制。然而,安全研究人員指出,還是有一些方法來繞過這一點的。
為了檢測可能存在的攻擊,研究人員建議尋找".*/java.exe"被用作"cmd.exe/powershell.exe"父進(jìn)程的實例。
研究人員說:"這樣檢查出來的可能是非常雜亂的"。最后,企業(yè)還應(yīng)該確保他們設(shè)置了檢測Cobalt Strike、TrickBot和相關(guān)常見攻擊工具的設(shè)備。
研究人員指出,為了及時檢測出本地環(huán)境中使用Log4j的地方,現(xiàn)在有公開可用的掃描腳本,
為了完全避免這些風(fēng)險,企業(yè)應(yīng)該盡快將所有的本地開發(fā)工作、內(nèi)部應(yīng)用程序和面向互聯(lián)網(wǎng)的網(wǎng)絡(luò)環(huán)境更新到Log4j 2.16,其中包括了任何自定義應(yīng)用程序。
同時,用戶也可以采用流量出口過濾的措施,這也可以限制在實際漏洞利用過程中所需的回調(diào),還可以在不受信任的外部網(wǎng)站上使用NoScript Java攔截器等工具,避免Javascript觸發(fā)WebSocket連接。
Netenrich公司的安全專家通過電子郵件說:"這一消息確實意味著,依靠網(wǎng)絡(luò)應(yīng)用程序防火墻或其他網(wǎng)絡(luò)防御系統(tǒng)不再是有效的攻擊緩解措施。打補(bǔ)丁仍然是一個組織可以采取的唯一的步驟"。
本文翻譯自:https://threatpost.com/new-log4shell-attack-vector-local-hosts/177128/