驗證驅動的呼叫者

2021-09-06 03:51:22 字數 434 閱讀 6508

驗證驅動的呼叫者

有很多驅動程式載入後,會在驅動程式入口函式driverentry中建立驅動裝置,並建立符號鏈結,同時還會指定派遣例程。這樣一來,所有使用者態程式都可以通過deviceiocontrol函式,呼叫該驅動的派遣例程。即存在ring3惡意呼叫ring0驅動派遣例程的問題,對於這種呼叫ring0程式應進行驗證和過濾。

作為不夠健壯的第三方驅動程式,更容易因為這種惡意呼叫被干擾,發生邏輯錯誤,甚至觸發可能存在的核心漏洞。因此需要考慮驅動程式的通訊物件和呼叫**,在派遣例程中對此進行必要的安全驗證和過濾。

驗證和過濾的方法有很多,例如檢查呼叫者程序的peprocess,程序檔案的md5,等等。除此之外,還可以考慮使用者態程式和驅動程式的通訊加密,對於解密失敗或非法通訊資料的情況可以不予處理。

本文節選自《0day安全:軟體漏洞分析技術(第2版)》一書。

圖書詳細資訊:

驗證驅動的呼叫者

驗證驅動的呼叫者 有很多驅動程式載入後,會在驅動程式入口函式driverentry中建立驅動裝置,並建立符號鏈結,同時還會指定派遣例程。這樣一來,所有使用者態程式都可以通過deviceiocontrol函式,呼叫該驅動的派遣例程。即存在ring3惡意呼叫ring0驅動派遣例程的問題,對於這種呼叫ri...

編寫安全的驅動程式之驗證驅動的呼叫者

有很多驅動程式載入後,會在驅動程式入口函式driverentry中建立驅動裝置,並建立符號鏈結,同時還會指定派遣例程。這樣一來,所有使用者態程式都可以通過deviceiocontrol函式,呼叫該驅動的派遣例程。即存在ring3惡意呼叫ring0驅動派遣例程的問題,對於這種呼叫ring0程式應進行驗...

編寫安全的驅動程式之驗證驅動的呼叫者

有很多驅動程式載入後,會在驅動程式入口函式driverentry中建立驅動裝置,並建立符號鏈結,同時還會指定派遣例程。這樣一來,所有使用者態程式都可以通過deviceiocontrol函式,呼叫該驅動的派遣例程。即存在ring3惡意呼叫ring0驅動派遣例程的問題,對於這種呼叫ring0程式應進行驗...