Windows 的提權經常利用高權限的程式與服務,而其中的驅動更是佔有很大的部分,經常只要被找到一個 OEM 開發的邏輯錯誤就可以橫掃大部分的 Windows 驅動程式。這當然與 Windows 本身為嘗試降低驅動開發難度不斷重構框架與新增API參數有關,但更多是在於除錯不易導致 OEM 開發者經常參考他人或前人成品源碼以保證自身驅動的 Handle、IDR、APC、Memory Page、IOCTL 連接可以順利運行而不 BSoD。可以說,在驅動的領域,能穩定運行就已經是為高標準了,安全的問題則經常被開發者忽略。
雖然Windows驅動領域看似漏洞研究人員的天堂,似乎只要理解 Windows 驅動的機制理論就可以進行漏洞賞金挖掘,然而接連而出的SMEP、Meltdown 導致的 KTPI、HyperV 與 PatchGuard 都導致 MSR 利用與Hooking的難上加難。本議程將先講述 WindowsDriver 架構幫助解釋後面談到的漏洞利用,後藉由幾個知名案例解釋驅動的降級攻擊、驅動的 Handle 洩漏、驅動的 MSR 利用,最後總結並提出偵測解決與修補建議。
UCCU Hacker 成員,Windows 驅動開發者,曾於 SITCON 2019, MOPCON 2019 & iThome CyberSec 2020 擔任講者分享。