沙箱(Sandbox)是一種安全機制,為執行中的程式提供隔離環境。沙箱可為來源不可信、具破壞力或無法判定意圖的程式提供環境進行運作。卡巴斯基也有開發自己的沙箱,在其基礎設施中,可作為惡意程式分析、研究和建立特徵碼的工具之一;沙箱也是卡巴斯基反針對攻擊平台和卡巴斯基線上惡意程式分析的一部分,它有助於將檔案和連結判斷為惡意或良好,並提供有關其活動的訊息,這對建立檢測規則和演算法非常有用。
卡巴斯基沙箱由硬體虛擬化建立,因此快速且穩定,該虛擬化環境可以模擬下面兩個情境:
- Windows(Windows XP以上,Windows Server 2003以上
- Android(x86,ARM)
沙箱監控執行程序與作業系統的活動(監控約3萬個不同的API),若發現可疑行為的情況下,可以自動深入分析。它可以從漏洞利用開始,如返回導向程式設計攻擊鍊利用、堆噴射、棧遷移、安全令牌變更、可疑記憶體保護變更等,卡巴斯基沙箱甚至能夠偵測目標攻擊中使用的進階漏洞。
可以執行的物件類型
Windows:任何文件,例如:*.exe、*.dll、.NET 物件、MS Office 檔案、PDF。
Android:APK(DEX)。
URL:沙箱前往 URL 並偵測以下事件:下載、JavaScript、Adobe Flash 執行等。
惡意軟體偵測流程
沙箱從端點防護或其他安全方案接收掃描物件(檔案或 URL)的請求,並附帶執行指令,這些指令包含:作業系統和執行物件的設定、物件的執行參數、虛擬機安裝的第三方應用程式、測試時間限制等
當物件被執行後,沙箱會開始收集執行的資訊 ,這些資訊會初步與已知信譽檔案程序或網址比對,如果比對為惡意程式,則回傳惡意程式結果;如果沒有比對出來,接下來會進行物件分析。沙箱將物件的資料添加到判決中,判決包含ID、功能、日誌、行為等詳細資訊,這有助於進一步分析,而無需向沙箱發出新請求。 如果在樣本執行過程中發現某個可疑活動,沙箱也會回傳該活動的詳細情形,卡巴斯基的沙箱預設約有200種不同的可疑活動指標。
卡巴斯基沙箱收集的內容如下:
- 應用程式執行日誌,包含:API 函數呼叫及其參數、執行事件
- 記憶體程序
- 載入的模組程序
- 檔案系統、登錄檔的更改
- 網路流量(PCAP檔案)
- 螢幕截圖(如果需要,可以地進行手動分析
- 漏洞利用的方法
沙箱規避:
駭客知道沙箱技巧,設計惡意程式時會嘗試偵測和規避沙箱,惡意程式一旦知道自己正在沙箱中執行,就有可能停止執行、從磁碟中自我刪除、終止執行或使用其他規避技術。可參考這個惡意程式,斗大的標題寫著「The application can’t be started」:https://app.any.run/tasks/17792159-5284-47e9-9790-684bd6a2c3b8
為了反沙箱規避,卡巴斯基沙箱對進行更簡單設計,例如掛鉤 API 函數,這將留下正在監視可疑程序的痕跡。卡巴斯基也實作了其他非侵入式監控技術,不會留下掃描對象可見的痕跡;沙箱雖然可以控制處理器和記憶體的使用,但不會修改程序對記憶體、磁碟和記憶體程序,因此不留下任何監控痕跡。
卡巴斯基隨時追蹤新的規避技術並調整沙箱以反制,例如:
- 惡意程式會識別沙箱環境是否為知名品牌的沙箱。
反規避方法:卡巴斯基沙箱隨機化配置虛擬化環境。
- 惡意程式可以偵測是否有使用者餐與來偵測環境。某些惡意程式執行時,使用者需輸入密碼、點一下或執行其他人為操作。許多沙箱不會模擬這一點,因此惡意程式不會執行。
反規避方法:卡巴斯基沙箱可以模擬使用者操作,如:滾動滑鼠、滾動開啟的文件,也能自動執行使用者啟動惡意程式時所做的人為操作。
即使有上面的反規避方法,但有些惡意程式會偵測是否在虛擬機執行,這類的惡意程式只能靠人工分析。而全部使用卡巴斯基的方案,如果都沒有偵測到,又會是另一個問題,因此在這裡推薦ANY.RUN這款互動式沙箱,中小企業使用免費版足矣。