黑客入侵與機器學習沙箱逃逸
0x00、簡介
對於攻擊者來說,在收集目標資料的過程當中(基礎設施掃描、踩點、傳遞惡意軟體),很容易被安全分析師發現。機器學習在防禦領域的應用不僅增加了攻擊者的成本,而且極大地限制了技術的使用壽命。其實攻擊者已經發現了這種趨勢,
·防禦軟體以及安全分析人員可以訪問大量資料收集和分析
·機器學習無處不在,以加速防守成熟度。
攻擊者總是處於不利地位,因為我們作為人類試圖打敗自動學習系統,這些系統利用每一次繞過嘗試來更多的瞭解我們,並預測未來的繞過嘗試。然而,正如我們在這裡所說的,機器學習不僅僅是在防守方使用。這篇文章將探討攻擊者如何利用收集的很少的資料,使用機器學習技術擊潰入侵檢測系統。
0x01、傳統沙箱逃逸介紹
在討論機器學習之前,我們需要更仔細的看看我們作為攻擊者是如何處理資訊的。攻擊者在任何給定的主機或網路上收集不到1%的可用資訊,並使用少於3%的所收集資訊來做出明智的決定(不要太在意百分比),攻擊者需要提高他們的資料利用率
文字資料也使得很難描述兩個程序列表之間的差異,您將如何描述不同主機上的程序列表之間的差異?這個問題的解決方法已經存在——我們可以用數字描述一個過程列表。看上面的過程列表,我們可以得到一些簡單的數值資料:
·有11個過程
· 程序與使用者的比率為2.75。
· 有4個可觀察的使用者
通過數字描述專案,我們可以開始分析差異、排序和分類專案。讓我們新增一個第二個程序列表。
在每一個過程中,都有一個新的描述。我們現在可以確定一個程式清單,以確定任何一個問題,而不必確切的知道這些程式是什麼。我們怎麼解決這個問題呢?我們的解決方案是求出每列的值,然後計算主機總數的平均值。對於每個主機總數,對於沙箱,低於平均值的值被標記為1,對於正常主機,高於平均值的值被標記為0。
0x02、如何使用機器學習逃逸
· ML&AI介紹
機器學習中使用的數學技術試圖複製人類的學習。就像人類的大腦有神經元、突觸和電脈衝都是相連的;人工神經網路有節點、權重,以及所有相連的啟用函式。通過重複並在每次迭代之間進行小的調整,人和人工神經網路都能夠進行調整,以便更接近預期的輸出。有效地,機器學習試圖用數學來複制你的大腦。
在機器學習中,輸入被引入到人工神經網路中。輸入沿著鏈路權重傳遞到節點,並在節點中傳遞到啟用函式。啟用函式的輸出確定節點是否被啟用。通過迭代的檢查相對於目標值的輸出,可以調整鏈路權重以減少誤差。
人工神經網路(ANNs)可以具有任意的大小。本文討論的網路有3個輸入、3個隱藏層和一個輸出。關於更大的ANN,需要注意的一點是每個節點之間的連線數量。每個連線表示我們可以執行的附加計算,這既提高了網路的效率,也提高了網路的精度。此外,隨著ANN大小的增加,數學不會改變,只有計算的數量。
· 資料收集&資料處理
收集過程列表的資料集相對容易。要從沙箱或遠端系統獲取程序列表,巨集需要收集併發布程序列表以進行收集和處理。對於處理,需要對資料集進行解析。需要計算並儲存程序計數、程序對使用者比率和唯一程序計數。最後,資料集中的每個項需要正確地用0或1標記。或者,巨集可以從程序列表中收集數值資料並將結果發回。選擇你自己的冒險方式。為了操作目的,我們更喜歡有原始清單。
我們需要對流程列表資料集進行一次轉換。前面我們比較了每個過程列表的總和與每個過程列表總和的平均值。以這種方式使用平均值是有問題的,因為非常大或非常小的過程列表結果可以顯著地調整平均值。重大的轉變將重新分類潛在的大量主機,引入波動性的預測。為了幫助這一點,我們縮放(歸一化)資料集。有一些技巧可以做到這一點。我們測試了skikit-learning中的所有縮放函式,並選擇了標準標量轉換。這裡重要的是,過大或過小的值不再對分類有如此不穩定的影響。
· 建立和訓練神經網路
上面的例子中使用的資料是從我們的資料集中提取出來的。有了它,我們可以開始探索機器學習如何幫助攻擊者檢測沙箱。在高層次上,為了成功地訓練人工神經網路,我們將迭代地:
1、將比例資料引入人工神經網路。
2、計算啟用函式的輸出。
3、以0或1(其標籤)的形式向網路提供反饋。
4、計算輸出和反饋之間的差值。
5、更新鏈路權重,以嘗試減少步驟4中計算的差異。
· 武器化神經網路
是時候讓人工神經網路為黑客入侵工作了。為了測試我們的概念驗證, 我們編寫了一個簡單的巨集, 它:
1、收集程序列表
2、計算輸入 (程序計數、程序/使用者計數和使用者計數)
3、將這些值釋出回我們的伺服器, 並通過神經網路執行它們進行預測
4、如果神經網路預測一個正常的主機, 儲存程式碼, 否則什麼都不做。
接下來, 我們將惡意文件上傳到多個線上惡意軟體掃描器 (病毒掃描程式、惡意軟體分析等) 並等待。我們在非沙箱上執行了巨集 (在後面後突出顯示了第一個巨集), 然後幾分鐘後, 2個不同的沙箱執行了該巨集並將計算值釋出回來。通過神經網路執行後返回值提供了準確的預測!
最終形成一個分類預測模型,做沙箱逃逸。