從【第 09 話】CVE-2023-1643 研究-Null Pointer Dereference 到【第 19 話】CVE-2023-1489 研究-任意 wrmsr 到任意執行我們講解了許多漏洞類型,這些其實都是在現實世界常被惡意程式濫用的漏洞。因此這篇要來介紹 BYOVD 攻擊,說明惡意程式是如何濫用有漏洞的驅動程式來達到什麼目的。
BYOVD(Bring Your Own Vulnerable Driver),也稱作 BYOD(Bring Your Own Driver)或 BYOVKD(Bring Your Own Vulnerable Kernel Driver),這類攻擊是攻擊者在系統中載入一個有漏洞的驅動程式,再透過驅動程式的漏洞來取得 Kernel 執行權限達成目的,例如關閉防毒軟體、安裝 Rootkit。
Windows 的數位簽章是一個確保驅動程式安全性的機制。在 Windows Vista x64 之後驅動程式需要經過簽章才能載入系統。
因為數位簽章的存在,才會有 BYOVD 攻擊的出現。畢竟如果能像 Linux 一樣只要有 root 就可以載入驅動程式,就不需要特地找一個有簽章又有漏洞的驅動程式了。
新版 Windows 中在 Windows 安全性
中的裝置安全性
,裡面可以看到核心隔離
,點進去看有一項叫 Microsoft 易受攻擊的驅動程式封鎖清單
。這針對的就是常被用於 BYOVD 攻擊的驅動程式所做的黑名單,只要開啟這項保護,在黑名單的驅動程式就算有簽章也會被擋住而無法載入。
攻擊公開於 2022 年 10 月,濫用在【第 14 話】CVE-2019-16098 研究-任意讀寫虛擬記憶體介紹的 RTCore64.sys,利用它的任意讀寫虛擬記憶體的漏洞來讓防毒軟體失效,然後執行勒索軟體。
Iron Tiger 又稱作 APT27、LuckyMouse,攻擊公開於 2021 年 4 月,濫用 CPUID 的 cpuz141.sys 漏洞 CVE-2017-15303,漏洞原理是跟【第 18 話】CVE-2023-1679 研究-任意讀寫物理記憶體相似的任意物理記憶體讀寫漏洞,目的是埋後門與 C2(Command and Control Server)連線。
攻擊公開於 2021 年 9 月,主要針對馬來西亞、泰國、越南、印尼等地區,濫用 CheatEngine 的 dbk64.sys 的任意讀寫記憶體與任意執行 Shellcode 的功能,漏洞原理類似【第 11 話】Capcom.sys 研究-任意程式執行,目的是隱藏惡意程式相關的檔案、Process、Registry、連線等等蹤跡。
攻擊公開於 2022 年 3 月,值得注意的是這場攻擊是俄羅斯軍隊入侵烏克蘭的前一天針對烏克蘭的網路攻擊,它濫用 Hermetica Digital Ltd. 的 epmntdrv.sys 的磁碟讀寫功能,目的是要破壞系統,讓系統無法運作與復原。