<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    Jadeite:基于行為和深度學習的Java惡意軟件檢測新方法

    VSole2022-09-18 18:40:20

    其實不難發現,由于Java本身是一門較為安全的語言,所以針對Java安全相關的研究,如:Java漏洞挖掘和Java惡意代碼檢測,相對來說比較少,通過現有的檢測和分析方法就能夠達到一個不錯的檢測效果。

    在惡意代碼檢測領域,將惡意代碼轉換成圖像,配合圖像處理技術進行檢測是一種常用的手段。然而,如果直接將惡意代碼的二進制文件轉換成圖像,可能導致代碼的語義丟失。

    本文提出了一種新的基于行為的Java程序轉換方法,用于基于深度學習的惡意軟件分類。通過基于字節碼級別的過程間API調用靜態捕獲Java程序的行為,將這些行為轉換成圖像,利用圖像處理模型(CNN)實現對惡意代碼的檢測。為降低模型受代碼混淆等技術的影響,作者還從字節碼文件中提取了一組額外的特征。

    模型已開源:https://github.com/sridhar-research-lab/jadeite。

    圖1是Jadeite模型的方法框架。Jadeite以JAR形式的Java字節碼作為輸入,由3個部分組成:(1)字節碼轉換引擎,(2)特征提取引擎和(3)基于CNN的分類引擎。

    Fig. 1 方法框架

    (1)字節碼轉換引擎

    目標是將字節碼轉換成灰度圖。

    首先,從JAR文件中提取出字節碼,然后使用Soot將字節碼轉換成Jimple中間語言(一種三地址碼);接著基于Heros從Jimple構建過程間控制流圖(ICFG)。由于生成的JAR文件的過程間控制流圖很大,所以需要對其進行裁剪以降低模型受維數災難和過擬合問題的影響。具體來說,通過刪除如變量賦值、變量初始化等瑣碎質量,僅保留API調用指令(盡可能保證API指令的調用順序),降低ICFG的復雜性。

    接著,將ICFG用鄰接矩陣表示,矩陣中的每個元素的值存在于[0, 255]中。A[i, j]表示API調用指令i與API調用指令j之間存在一條邊。如果A[i, j]的值大于255,表示API調用指令i與API調用指令j之間的邊數大于255,則說明可能存在循環或者遞歸的情況,因此需要將該值設置為255。基于ICFG的鄰接矩陣,生成灰度圖,圖的維數為矩陣的維數。

    (2)特征提取引擎

    特征提取引擎的框架如圖2所示,目標是使用Jarhead從輸入的字節碼中提取一組額外的特征,減低檢測模型受代碼混淆技術的影響。

    Jarhead主要提取兩種特征:混淆特征和行為特征。具體來說,Jarhead從字節碼的反匯編代碼中提取統計信息來表示混淆特征,如:是否存在Java對象的特定實例,字符串長度等;行為特征包括下載和執行外部文件等。Jarhead從Java直接碼中總共提取42個特征,而本文模型梯度推進算法(gradient boosting algorithm)從這42個特征中選擇出20個特征,如表1所示。本文所用到的特征可以分為兩大類:已知存在漏洞的函數(如:MidiSystem.getSoundbank),下載和執行行為(如:java.net.URL)。

    Fig. 2 特征提取引擎框架

    Tab. 1 額外特征

    (3)基于CNN的分類引擎

    基于CNN的分類引擎需要接收字節碼轉換引擎獲得的灰度圖和特征提取引擎提取的特征,因此需要對這兩種輸入進行組合。圖3是作者探究的幾種不同的輸入組合方式。

    • Image Load:僅使用灰度圖作為輸入;
    • Single Load:同時使用灰度圖和特征作為輸入,將灰度圖展開成1維向量,然后將特征拼接到其后;
    • Double Load:同時使用灰度圖和特征作為輸入,分別使用不同的網絡對二者進行處理,然后將處理的結果進行拼接(這個就類似于推薦系統中的雙塔模型)。

    Fig. 3 CNN網絡構架及輸入組合方式

    實驗結果及混淆矩陣分別如圖4和5所示。

    Fig. 4 實驗結果

    Fig. 5 混淆矩陣

    深度學習字節碼
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    為降低模型受代碼混淆等技術的影響,作者還從字節文件中提取了一組額外的特征。Jarhead主要提取兩種特征:混淆特征和行為特征。具體來說,Jarhead從字節的反匯編代碼中提取統計信息來表示混淆特征,如:是否存在Java對象的特定實例,字符串長度等;行為特征包括下載和執行外部文件等。Fig. 3 CNN網絡構架及輸入組合方式實驗結果及混淆矩陣分別如圖4和5所示。
    隨著深度學習在計算機安全領域越來越受到重視,不同類型的神經網絡已被集成到安全系統中,以完成惡意軟件檢測,二進制分析,以及漏洞發現等多種任務。然而,神經網絡的預測結果難以得到解釋,例如難以確定輸入數據的哪些特征對預測結果產生貢獻,這一定程度上影響到了深度學習方法的應用。已有研究人員通過近似神經網絡的決策函數來確定不同特征對預測結果的貢獻,如LEMNA方法,并已在不同的安全應用中取得了良好的效果。該方
    https://capev2.readthedocs.io/en/latest/安全廠商沙箱二.基于CNN的惡意家族檢測前面的系列文章詳細介紹如何提取惡意軟件的靜態和動態特征,包括API序列。接下來將構建深度學習模型學習API序列實現分類。基本流程如下:1.數據集整個數據集包括5類惡意家族的樣本,每個樣本經過先前的CAPE工具成功提取的動態API序列。
    OneEDR 2.5版本讓惡意Webshell“現原形”
    系統安全第47篇介紹Cape沙箱批量提取動態特征,希望對您有所幫助
    人工智能(AI)不斷發展,并在過去十年中取得了巨大進步。
    對決策者和從業者來說,務實的做法是細致了解哪些任務可以從機器學習中受益,哪些任務不能。
    將人工智能應用于惡意加密流量的檢測
    人工智能(AI)在網絡安全、內容安全、數據安全、業務安全、終端安全等細分領域,給安全行業帶來了新思路新方法,同時,也在對抗樣本、深度偽造等方面給安全行業帶來了新的挑戰。
    網絡流量分析是安全威脅檢測的一個重要研究方向。當前流量分析主要采取事件特征信息與特征庫匹配的方式,然而該方式存在特征庫組織簡單和更新不及時的缺點。此外,持續攻擊技術更新快,容易規避現有規則,從而導致檢測的漏報和誤報率較高。為此提出并設計了一種網絡流量安全智能分析系統。該系統能夠自動學習網絡流量的特征,智能地識別出異常并進行深度分析,從而可以準確快速定位問題并提高安全防護能力。
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类