close
如果說Webshell是shell中的幽靈,那麼內存Webshell就是幽靈中的王者。

傳統的Webshell不管如何衍變,有着怎樣的隱藏方式,但都脫離不開文件的範疇。既然是文件,就存在被檢測到的可能,所以目前主流產品針對Webshell的靜態檢出率都在90%以上,而OneEDR搭載的基於機器學習訓練成果的Webshell引擎則能實現高達99%以上的檢出率。


目前主流的安全解決方案大多都針對文件檢測,如果木馬不落盤(只在內存運行),(硬盤)沒有文件,雖然有一些開源的檢測方法和工具,但對安全人員的技藝要求較高,很難被更多的用戶使用,導致內存馬的檢出、清除難度都大幅上升,同時內存馬在使用上逐漸趨於「平民化」,多方面的因素讓無文件攻擊逐漸成為網絡攻擊的一大主要方式。為了貼近實戰,各種網絡攻擊演練也與時俱進,內存馬的使用與防禦成為攻守雙方爭奪的焦點,往往成為「獲勝」的關鍵點之一。

據Ponemon Institute 發布的網絡安全報告中顯示,2018年僅有35%屬於無文件攻擊手段。而到2020年,據Dynatrace不完全統計,被發現的勒索病毒攻擊成功的事件中,有超過80%是通過無文件方式完成的。同年新增的大部分新型勒索病毒樣本也大多採用了無文件技術。2021年,在微步在線參與的一系列攻防演練中,無文件攻擊幾乎場場不落,成為攻方首選的攻擊方式。

無文件攻擊的手法複雜多樣,有利用WindowsPowerShell,有針對BIOS和硬盤啟動扇區的,也有通過網絡IO向內存注入Shellcode的……具體可參見下圖對無文件攻擊的分類(來自微軟):

無文件惡意軟件分類示意圖(來自微軟),微軟將無文件惡意軟件分為無執行文件活動(No file activity performed)、間接文件活動(Indirect fileactivity)與需要操作文件(files required to operate)等三類

無文件攻擊之追根溯源

儘管無文件惡意軟件多種多樣,但絕大多數以內存Webshell為主,這之中又有80%是Java web內存馬。究其原因,Java是市場上最主流的(中間件)應用之一,而Java web內存馬又具有Webshell易於使用的特點(尤其是與哥斯拉、冰蠍等惡意軟件組合使用)。

內存Webshell的分類,其中Java類無文件攻擊是最主流使用的方式

Webshell在入侵方面有着非常「悠久的歷史」和 「成熟的經驗」(詳見《Shell中的幽靈?OneEDR用機器學習讓Webshell無處遁形》),而Java平台作為最流行的(中間件)應用,在維護和管理方面有着很好的體驗,但也在無形中增加了被攻擊的風險。

如上圖所示,針對Java平台應用的攻擊主要有Servlet-API、基於Spring等特定框架,以及Java Agent等三類,以Java Agent類型為例,主要利用JVMTI(JVM Tool Interface)接口,這是JVM對外提供的Native編程接口,可以通過JVMTI使得一些外部進程獲取JVM運行時的各種信息。

而Java Agent本質上可以理解為一個Jar包,利用JVMTI編寫並加載目標進程中進行數據獲取傳輸等功能:

在JDK 1.5之前,Java Agent的編寫只能通過Native代碼實現,較為繁瑣;
JDK 1.5版本提供了Instrument接口,可以編寫Agent;
在JDK 1.6之前,Instrument只能在Java程序剛啟動加載類時生效;

從JDK 1.6開始,Instrument開始支持在程序運行時動態修改類,讓程序擁有很強的動態性。同時Instrument還提供了類修改接口ClassFileTransformer,通過實現該接口即可動態修改類。

Java版本的不斷升級,Instrument接口給易用性和可維護性帶來了極佳的體驗,但如同Webshell那樣,無形中也給網絡攻擊提供了便利,尤其是與哥斯拉、冰蠍等惡意軟件組合使用,給企業安全帶來了極大的挑戰。

Java平台無文件攻擊的傳統療法

所謂「魔高一尺道高一丈」,既然針對Java平台的無文件攻擊有泛濫趨勢,那麼檢測等反制手段也必然出現。目前,常見的開源內存馬檢測手段大致可分為兩種:

一種是比較溫和地利用中間件熱部署特性將檢測代碼加載到服務的JVM中,用以檢測Tomcat、JBoss、WebLogic等主流的具有熱部署特性的Java Web中間件,比如著名的C0ny1大神開源的java-memshell-scanner工具,就是通過一個jsp腳本來掃描Java Web中間件中Filter,Servlet和Listener組件。

另一種是利用比較通用的Java Instrument接口,動態地利用Agent技術,將檢測的jar包attach到目標JVM中,檢測加載到JVM的類是否異常。其中LandGrey大神主導的copagent項目就用到這種方式,這也是目前較為主流的檢測方式。

但是,這種檢測方式非常依賴安全人員的判斷,在選擇對哪些類進行檢測,將直接影響檢測結果;但如果檢測全部的類,則耗時長且對JVM性能有影響。

這對使用者來說,有較高的技術門檻,很難大規模普及,這也是導致無文件攻擊日益泛濫的原因之一。但有攻必有防,沿着前人探索的無文件攻擊檢測之路,新的方式方法也開始出現,比如微步在線的OneEDR產品,目前已經集成了針對Java平台的內存馬檢測,通過與微步在線領先的威脅情報能力結合,極大地提高了內存馬的檢出率。


OneEDR增加無文件攻擊檢測能力

OneEDR是微步在線推出的一款專注於主機入侵檢測與響應的新型終端安全防護平台,通過輕量級的終端Agent收集終端的進程、網絡、文件等系統行為日誌,在服務端利用威脅情報,文件檢測引擎與全攻擊鏈路行為分析等技術手段,實現對主機入侵的精準發現、自動化告警關聯、攻擊鏈路可視化展示與高效溯源、入侵事件響應及阻斷等功能,同時支持對終端海量行為日誌進行靈活檢索。

OneEDR內集成了12款自研引擎,針對進程、網絡和文件等各種網絡攻擊手段均有很好的檢出率,在最新的OneEDR 2.5版本中還升級了基於機器學習成果的Webshell引擎和Linux ELF文件引擎,將這兩類惡意文件的檢出率提升到99%以上。

針對日漸頻繁的無文件攻擊方式,作為一款主機檢測產品,這是OneEDR必須要面對的難題。OneEDR團隊針對過去幾年中大量的無文件攻擊案例進行分析表明,在所有的無文件攻擊中,Java web內存馬是使用最頻繁的,同時,也是利用最成熟的攻擊方式,企業一旦「中招」,幾乎不可避免地會造成經濟損失。

Java web內存馬通常使用Java Agent技術——也就是利用Java Instrument接口進行編程——這項技術的初衷是為了讓Java用戶擁有更佳的使用和管理體驗,但被網絡攻擊者利用,成為攻擊突破口。OneEDR團隊認為,同樣也可「以彼之道還施彼身」,利用Java Agent技術來實現對正在運行的JVM進行全方位「體檢」,並可實時針對可疑的高危Class進行更細緻的檢查。

OneEDR圖形控制台,針對內存馬檢測工具使用難的問題,OneEDR開發了更加便於使用的圖形控制台

OneEDR針對Java平台內存馬的檢測結果

OneEDR針對檢出的內存馬會提供詳細信息,以方便安全人員進行處置


通過總結前人經驗,並與微步在線強大的威脅情報能力相結合,OneEDR在內存馬檢出方面有着極高的檢出率。



安全傳送門

Free Trial

如果您也有防範內存馬的需求

或正面臨內存馬威脅

歡迎聯繫我們

↓↓↓

400-030-1051


直播推薦

5月18日今晚19:00

攻防演練· 應急響應專題直播

↑ 戳藍字立即報名↑


· END ·

點擊下方名片,關注我們
覺得內容不錯,就點下「贊」和「在看」
如果不想錯過新的內容推送,可以設為星標

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 鑽石舞台 的頭像
    鑽石舞台

    鑽石舞台

    鑽石舞台 發表在 痞客邦 留言(0) 人氣()