譯者:知道創宇404實驗室翻譯組
原文鏈接:CSDL c?a Windows Defender (Ph?n 2)

本節中,我們將進一步了解數據庫中的一些其他簽名類型,包括 SIGNATURE_TYPE_DELTA_BLOB、SIGNATURE_TYPE_FRIENDLYFILE_SHA256 和 SIGNATURE_TYPE_LUASTANDALONE。

SIGNATURE_TYPE_DELTA_BLOB

上一部分中,我們了解了 VDM 文件。在 VDM 文件中,有 mpasdlta.vdm 和 mpavdlta.vdm文件,其中包含基礎VDM文件的相關信息。

img

Delta文件包含用于加快簽名更新的數據,無需下載整個新文件,只需下載更改的文件,利用這些文件即可獲得完整的數據庫。Delta文件中的數據包括SIGNATURE_TYPE_DELTA_BLOB_RECINFO和SIGNATURE_TYPE_DELTA_BLOB。SIGNATURE_TYPE_DELTA_BLOB_RECINFO 包含更新信息(如構建版本等),其元素結構包括應用Delta文件更改后的CSDL的大小、CRC校驗和以及Delta數據數組:

img

Windows Defender 通過讀取前 2 個字節 (WORD sizeX) 來執行 data_blob 數據,然后根據以下兩個方面獲取完整文件數據:

  • 如果flagX的設置了最高位,那么它會從基礎文件的偏移量(DWORD offset)讀取大小為(flagX & 0x7fff)+ 6的數據段。
  • 否則,它會從當前的delta文件偏移量讀取大小為sizeX的數據段。

img

當所有data_blob數據合并后,Windows Defender 將使用完整的 VDM 文件,而不是原始的 VDM 基礎文件。近日,MS發布了CVE-2023-24934的補丁,修復了攻擊者可以任意創建VDM delta文件并應用它來更新數據庫的問題,從而改變Windows Defender的數據庫執行一些攻擊行為(如刪除簽名,向文件添加哈希值白名單等)。可以參考文章Windows Defender安全風險:Defender Pretender 了解更多信息。

SIGNATURE_TYPE_FRIENDLYFILE_SHA256

在Windows Defender的VDM文件中,還包含了其他數據類型,如SIGNATURE_TYPE_FRIENDLYFILE_SHA256,這些數據類型的作用是構建排除列表,主要用于一些指定文件或應用程序信任文件,無需詳細檢查,以提高性能和減少分析時間。

img

這個近 500,000 個哈希值的集合可以被視為一個可靠的排除列表,用于在系統整體檢查過程中,幫助節省分析時間。

SIGNATURE_TYPE_LUASTANDALONE

此分析中,作者指出Windows Defender在操作過程中使用了LUA腳本。LUA腳本的簽名可以理解為以下結構:

img

其中,Type 是一個用途未知的字段,DescSize 是描述腳本所屬類別的字符串的大小,如果腳本未被分類到任何Category,則此字段的值將為0。LUASize 是腳本所屬類別的大小,根據 LUA 標頭計算得出值為“1b 4c 75 61 51 00 01 04 08 04 08 01”,其中數據字段還包含其他數據塊。這里使用的LUAScript是5.1版本,可以用luadec進行反編譯https://github.com/viruscamp/luadec(需要構建64位luadec版本):

img

為了能夠反編譯lua腳本,我們需要提取LuaScript數據,使用這里 的腳本將該數據轉換為luadec的格式進行反編譯(因為MS改變了部分頭部和數據字段的大小),然后保存程序輸出的結果。

img

大多數腳本都可以被提取和反編譯,但是并不是所有腳本都可以被luadec 100%反編譯。

img

img

反編譯后的LUAScript

用于監控勒索軟件常用程序(例如 wmic、vssadmin)命令行的腳本:

img

該腳本監視讀取 lsass.exe 進程的進程,其中還包括一些排除項:

img

img

腳本檢測異常文件擴展名或包含兩個文件擴展名的腳本:

img

使用CVE-2023-38831的正則表達式捕獲異常文件名的腳本,該漏洞影響Winrar。

img

檢測powershell命令編碼類型的腳本:

img

除此之外,還有許多其他腳本可供查看:

https://github.com/hongson11698/defender-database-extract/tree/master/as_db

總結

研究 Windefender 的數據庫具有許多好處,如查找攻擊路徑、附加數據的更新方法、篩選方法、新威脅的檢測以及繞過已存在簽名的方法。以下是兩個腳本的更新(附加了delta文件補丁、Friendly_sha256和lua腳本),用于提取vdm版本1.397.0.0提取文件的內容,然后用WDExtract將其解壓成csv數據,供大家參考參考。

  1. https://raw.githubusercontent.com/hongson11698/defender-database-extract/master/lua_sig_parser_decompile.py
  2. https://raw.githubusercontent.com/hongson11698/defender-database-extract/master/extract_sig.cpp

參考鏈接


Paper 本文由 Seebug Paper 發布,如需轉載請注明來源。本文地址:http://www.bjnorthway.com/3046/