Opsi Pemverifikasi Driver dan kelas aturan

Topik ini menjelaskan fitur opsional dan kelas aturan dalam Driver Verifier. Lihat Pengaturan standar untuk daftar opsi yang disertakan saat Anda menggunakan pengaturan standar.

Catatan

Beberapa pemeriksaan otomatis selalu dilakukan pada driver yang sedang diverifikasi, terlepas dari opsi mana yang telah dipilih. Jika driver menggunakan memori pada IRQL yang tidak tepat, memanggil atau melepaskan kunci spin dan alokasi memori dengan tidak benar, mengalihkan tumpukan dengan tidak benar, atau membebaskan kumpulan memori tanpa terlebih dahulu menghapus timer, Driver Verifier akan mendeteksi perilaku ini. Ketika driver dibongkar, Driver Verifier akan memeriksa untuk melihat bahwa driver telah melepaskan sumber dayanya dengan benar.

Mengaktifkan kelas aturan dengan /ruleclasses

Mulai dari Windows 10, versi 17627 dan yang lebih baru, Anda dapat mengaktifkan kelas aturan dengan sintaks berikut:

/ruleclasses or /rc [<ruleclass_1> <ruleclass_2> ... <ruleclass_k>]

Perhatikan bahwa saat mengaktifkan beberapa kelas (diwakili oleh bilangan bulat desimal positif di bawah), pisahkan setiap bilangan bulat dengan karakter spasi.

Deskripsi untuk kelas aturan ini dapat ditemukan di bawah ini.

Kelas aturan standar

Kelas aturan ID Desimal
Kumpulan khusus 1
Memaksa pemeriksaan IRQL 2
Pelacakan kumpulan 4
Verifikasi I/O 5
Deteksi kebuntuan 6
Pemeriksaan DMA 8
Pemeriksaan keamanan 9
Pemeriksaan lain-lain 12
Pemeriksaan kepatuhan DDI 18
Verifikasi WDF 34

Kelas aturan tambahan

Kelas aturan ini ditujukan untuk pengujian skenario tertentu. Kelas aturan ditandai dengan (*) memerlukan Verifikasi I/O (5) yang akan diaktifkan secara otomatis. Bendera yang ditandai dengan (**) mendukung pennonaktifkan aturan individual.

Kelas aturan ID Desimal
Simulasi sumber daya rendah acak 3
Paksa permintaan I/O yang tertunda (*) 10
Pengelogan IRP 11
Pemeriksaan MDL invariant untuk tumpukan (*) 14
MDL invariant memeriksa driver (*) 15
Fuzzing penundaan kerangka kerja daya 16
Pemeriksaan antarmuka port/miniport 17
Simulasi sumber daya rendah sistematis 19
Pemeriksaan kepatuhan DDI (tambahan) 20
Fuzzing penundaan sinkronisasi kernel 24
Verifikasi sakelar VM 25
Pemeriksaan integritas kode 26
Pemeriksaan isolasi driver (memerlukan 36) 33
Pemeriksaan IRQL tambahan 35
Aktifkan DIF 36

Fitur opsional dan deskripsi kelas aturan

Kumpulan Khusus

Ketika opsi ini diaktifkan, Driver Verifier mengalokasikan sebagian besar permintaan memori driver dari kumpulan khusus. Kumpulan khusus ini dipantau untuk overrun memori, underrun memori, dan memori yang diakses setelah dibebaskan.

Paksa Pemeriksaan IRQL

Ketika opsi ini diaktifkan, Driver Verifier menempatkan tekanan memori ekstrem pada driver dengan membatalkan kode yang dapat di-pageable. Jika driver mencoba mengakses memori halaman di IRQL yang salah atau saat memegang kunci spin, Driver Verifier mendeteksi perilaku ini.

Simulasi Sumber Daya Rendah (disebut Simulasi sumber daya rendah acak di Windows 8.1)

Ketika opsi ini diaktifkan, Pemverifikasi Driver secara acak gagal permintaan alokasi kumpulan dan permintaan sumber daya lainnya. Dengan menyuntikkan kesalahan alokasi ini ke dalam sistem, Driver Verifier menguji kemampuan driver untuk mengatasi situasi sumber daya rendah.

Pelacakan Kumpulan

Ketika opsi ini diaktifkan, Pemverifikasi Driver memeriksa untuk melihat apakah driver telah membebaskan semua alokasi memorinya ketika dibongkar. Ini mengungkapkan kebocoran memori.

Verifikasi I/O

Ketika opsi ini aktif, Driver Verifier mengalokasikan IRP driver dari kumpulan khusus, dan memantau penanganan I/O driver. Ini mendeteksi penggunaan rutinitas I/O yang ilegal atau tidak konsisten.

Deteksi Kebuntuan

Ketika opsi ini aktif, Driver Verifier memantau penggunaan driver kunci spin, mutex, dan mutex cepat. Ini mendeteksi apakah kode driver memiliki potensi untuk menyebabkan kebuntuan di beberapa titik.

Verifikasi I/O yang Disempurnakan

Ketika opsi ini aktif, Pemverifikasi Driver memantau panggilan beberapa rutinitas Manajer I/O dan melakukan pengujian stres runtime integrasi PnP, runtime integrasi daya, dan IRP WMI. Di Windows 7 dan versi yang lebih baru dari sistem operasi Windows, semua fitur Verifikasi I/O yang Ditingkatkan disertakan sebagai bagian dari Verifikasi I/O dan tidak lagi tersedia atau tidak perlu memilih opsi ini di Driver Verifier Manager atau dari baris perintah.

Verifikasi DMA

Ketika opsi ini aktif, Driver Verifier memantau penggunaan rutinitas DMA driver. Ini mendeteksi penggunaan buffer, adaptor, dan register peta DMA yang tidak tepat.

Pemeriksaan Keamanan

(Windows Vista dan yang lebih baru) Ketika opsi ini aktif, Driver Verifier mencari kesalahan umum yang dapat mengakibatkan kerentanan keamanan, seperti referensi ke alamat mode pengguna oleh rutinitas mode kernel.

Pemeriksaan Lain-lain

(Windows Vista dan yang lebih baru) Ketika opsi ini aktif, Pemverifikasi Driver mencari penyebab umum crash driver, seperti kesalahan penanganan memori yang dibebaskan.

Paksa Permintaan I/O Tertunda

(Windows Vista dan yang lebih baru) Ketika opsi ini aktif, Pemverifikasi Driver menguji respons driver terhadap STATUS_PENDING mengembalikan nilai dengan mengembalikan STATUS_PENDING untuk panggilan acak ke IoCallDriver.

Pengelogan IRP

(Windows Server 2003 dan yang lebih baru) Ketika opsi ini aktif, Pemverifikasi Driver memantau penggunaan runtime integrasi driver dan membuat log penggunaan IRP.

Verifikasi Storport

(Windows Vista dan yang lebih baru) Ketika opsi ini aktif, Driver Verifier memantau driver miniport Storport untuk penggunaan rutinitas Storport yang diekspor dengan tidak tepat, penundaan yang berlebihan, dan penanganan permintaan Storport yang tidak tepat.

Penundaan Power Framework Fuzzing

(Dimulai dengan Windows 8) Ketika opsi ini aktif, Driver Verifier mengacak jadwal utas untuk membantu menghapus kesalahan konkurensi di driver yang menggunakan kerangka kerja manajemen daya (PoFx). Opsi ini tidak disarankan untuk driver yang tidak secara langsung menggunakan kerangka kerja manajemen daya (PoFx)..

Pemeriksaan kepatuhan DDI

(Dimulai dengan Windows 8) Ketika opsi ini aktif, Driver Verifier menerapkan serangkaian aturan antarmuka driver perangkat (DDI) yang memeriksa interaksi yang tepat antara driver dan antarmuka kernel sistem operasi.

Pemeriksaan MDL Invariant untuk Tumpukan

(Dimulai dengan Windows 8) Opsi Invariant MDL Checking for Stack memantau bagaimana driver menangani buffer MDL yang invarian di seluruh tumpukan driver. Driver Verifier dapat mendeteksi modifikasi ilegal buffer MDL invariant. Untuk menggunakan opsi ini, Verifikasi I/O harus diaktifkan pada setidaknya satu driver.

MDL Invariant Memeriksa Driver

(Dimulai dengan Windows 8) Opsi Pemeriksaan MDL Invariant untuk Driver memantau bagaimana driver menangani buffer MDL yang invarian berdasarkan per driver. Opsi ini mendeteksi modifikasi ilegal buffer MDL invariant. Untuk menggunakan opsi ini, Anda harus mengaktifkan Verifikasi I/O pada setidaknya satu driver.

Injeksi Kegagalan Berbasis Tumpukan

(Hanya tersedia dengan Windows 8 dan WDK 8) Opsi Injeksi Kegagalan Berbasis Tumpukan menyuntikkan kegagalan sumber daya dalam driver mode kernel. Opsi ini menggunakan driver khusus, KmAutoFail.sys, bersama dengan Driver Verifier untuk menembus jalur penanganan kesalahan driver.

Simulasi sumber daya rendah sistematis

(Dimulai dengan Windows 8.1) Opsi simulasi sumber daya rendah sistematis menyuntikkan kegagalan sumber daya dalam driver mode kernel.

Verifikasi NDIS/WIFI

(Dimulai dengan Windows 8.1) Ketika opsi ini aktif, Driver Verifier menerapkan serangkaian aturan NDIS dan LAN nirkabel (WIFI) yang memeriksa interaksi yang tepat antara driver miniport NDIS dan kernel sistem operasi.

Fuzzing penundaan sinkronisasi kernel

(Dimulai dengan Windows 8.1) Opsi ini mengacak jadwal utas untuk membantu mendeteksi bug konkurensi pada driver.

Verifikasi sakelar VM

(Dimulai dengan Windows 8.1) Opsi ini memantau driver filter (ekstensi sakelar yang dapat diperluas) yang berjalan di dalam Hyper-V Extensible Switch.

Pemeriksaan antarmuka Port/Miniport

Pemeriksaan antarmuka port/miniport memungkinkan Driver Verifier untuk memeriksa antarmuka DDI antara PortCls.sys dan driver miniport audionya, bersama dengan ks.sys dan driver miniport AVStream-nya. Lihat Aturan untuk driver AVStream dan Aturan untuk driver audio.

Pemeriksaan integritas kode

Saat menggunakan keamanan berbasis virtualisasi untuk mengisolasi Integritas Kode, satu-satunya cara memori kernel dapat dieksekusi adalah melalui verifikasi Integritas Kode. Ini berarti bahwa halaman memori kernel tidak pernah dapat ditulis dan Dapat Dieksekusi (W+X) dan kode yang dapat dieksekusi tidak dapat dimodifikasi secara langsung. Pemeriksaan integritas kode memastikan kompatibilitas aturan integritas kode ini, dan mendeteksi pelanggaran.

Verifikasi WDF

Verifikasi WDF memeriksa apakah driver mode kernel mengikuti persyaratan Kernel-Mode Driver Framework (KMDF) dengan benar.

Pemeriksaan IRQL tambahan

Pemeriksaan IRQL tambahan menambah aturan IRQL Pemeriksaan Kepatuhan DDI untuk PASSIVE_LEVEL. Ini terdiri dari dua aturan:

  • Aturan IrqlIoRtlZwPassive menentukan bahwa driver memanggil DDI yang tercantum dalam aturan hanya ketika dijalankan di IRQL = PASSIVE_LEVEL.
  • Aturan IrqlNtifsApcPassive menentukan bahwa driver memanggil DDI yang tercantum dalam aturan hanya ketika dijalankan baik di IRQL = PASSIVE_LEVEL atau di IRQL <= APC_LEVEL.

Pemeriksaan Isolasi Driver

Pemeriksaan Isolasi Driver sangat penting untuk memvalidasi persyaratan isolasi paket driver runtime Driver Windows Untuk informasi selengkapnya, lihat Mulai menggunakan Driver Windows. Pemeriksaan memantau registri membaca dan menulis yang tidak diizinkan untuk paket driver yang terisolasi.

Pengaturan standar

Opsi yang disertakan dalam pengaturan standar

Kumpulan Khusus

Paksa Pemeriksaan IRQL

Pelacakan Kumpulan

Verifikasi I/O

Deteksi Kebuntuan

Verifikasi I/O yang Disempurnakan (Di Windows 7 dan yang lebih baru, opsi ini secara otomatis diaktifkan ketika Anda memilih Verifikasi I/O)

Verifikasi DMA

Pemeriksaan Keamanan

Pemeriksaan Lain-lain (Windows Vista dan yang lebih baru)

Pemeriksaan kepatuhan DDI (Dimulai dengan Windows 8)

Opsi Pemverifikasi Driver yang memerlukan Verifikasi I/O

Ada empat opsi yang mengharuskan Anda mengaktifkan Verifikasi I/O terlebih dahulu. Jika Verifikasi I/O tidak diaktifkan, opsi ini tidak diaktifkan.