Membuat Penginstalan Perangkat Aman
Ketika Anda membuat paket driver, Anda harus memastikan bahwa penginstalan perangkat Anda akan selalu dilakukan dengan cara yang aman. Penginstalan perangkat yang aman adalah penginstalan yang melakukan hal berikut:
membatasi akses ke perangkat dan kelas antarmuka perangkatnya
membatasi akses ke layanan driver yang dibuat untuk perangkat
melindungi file driver dari modifikasi atau penghapusan
membatasi akses ke entri registri perangkat
membatasi akses ke kelas WMI perangkat
menggunakan fungsi SetupAPI dengan benar
Keamanan penginstalan perangkat dikendalikan oleh deskriptor keamanan. Media utama untuk menentukan deskriptor keamanan adalah file INF. Sistem menyediakan deskriptor keamanan default, dan dalam sebagian besar keadaan Anda tidak perlu mengambil alih deskriptor ini.
Pengaturan Keamanan untuk Perangkat dan Antarmuka
Sistem memasok deskriptor keamanan default untuk semua kelas penyiapan perangkat yang disediakan sistem. Umumnya, deskriptor ini memungkinkan akses penuh untuk administrator sistem dan akses baca/tulis/eksekusi untuk pengguna. (Deskriptor keamanan yang mengontrol akses ke perangkat juga mengontrol akses ke kelas antarmuka perangkat perangkat, jika ada.)
File INF untuk driver WDM dapat menentukan pengaturan keamanan, baik per kelas atau per perangkat, yang menggantikan pengaturan default sistem. Vendor yang membuat kelas penyiapan perangkat baru harus menentukan pendeskripsi keamanan untuk kelas . Umumnya, menentukan deskriptor keamanan khusus perangkat tidak diperlukan. Mungkin berguna untuk menyediakan deskriptor keamanan khusus perangkat jika berbagai jenis perangkat yang termasuk dalam kelas yang sama memiliki berbagai jenis pengguna.
Untuk menentukan deskriptor keamanan untuk semua perangkat yang termasuk dalam kelas penyiapan perangkat WDM, gunakan arahan INF AddReg dalam bagian INF ClassInstall32 dari file INF penginstal kelas. Direktif AddReg harus menunjuk ke bagian add-registry yang menetapkan nilai untuk entri registri DeviceType dan Security . Nilai registri ini menentukan deskriptor keamanan untuk semua perangkat dari jenis perangkat yang ditentukan.
Untuk menentukan deskriptor keamanan untuk satu perangkat yang termasuk dalam kelas penyiapan perangkat WDM, gunakan arahan INF AddReg dalam bagian INF DDInstall.HW dari file INF perangkat. Direktif AddReg harus menunjuk ke bagian add-registry yang menetapkan nilai untuk entri registri DeviceType dan Security . Nilai registri ini menentukan deskriptor keamanan untuk semua perangkat yang cocok dengan ID perangkat keras atau ID yang kompatibel yang ditentukan oleh bagian Model INF terkait.
Secara default, sistem menerapkan deskriptor keamanan yang diatur untuk perangkat ke permintaan untuk membuka objek perangkat yang mewakili perangkat (misalnya, permintaan untuk membuka perangkat yang nama perangkat NT-nya adalah \Device\DeviceName).
Namun, sistem tidak secara default menerapkan deskriptor keamanan yang diatur untuk perangkat ke permintaan untuk membuka objek di namespace perangkat, di mana namespace perangkat menyertakan semua objek yang namanya memiliki formulir \Device\DeviceName\ObjectName. Untuk memastikan bahwa pengaturan keamanan yang sama diterapkan untuk membuka permintaan objek di namespace perangkat, atur bendera karakteristik perangkat FILE_DEVICE_SECURE_OPEN untuk perangkat. Untuk informasi selengkapnya tentang akses perangkat yang aman, lihat Mengontrol Akses Namespace Perangkat (Driver Windows). Untuk informasi tentang cara mengatur bendera karakteristik perangkat FILE_DEVICE_SECURE_OPEN, Lihat Menentukan Karakteristik Perangkat (Driver Windows).
Manajer PnP menetapkan nilai keamanan pada objek perangkat setelah memanggil rutinitas AddDevice driver. Beberapa driver WDM dapat menentukan pendeskripsi keamanan khusus perangkat saat membuat objek perangkat fisik (PDO) dengan memanggil IoCreateDeviceSecure. Untuk informasi selengkapnya, lihat Mengamankan Objek Perangkat.
Pengaturan Keamanan untuk File Driver
Saat menyalin file dengan menggunakan direktif INF CopyFiles, dimungkinkan untuk menentukan bagian daftar file. bagian keamanan . Bagian ini menentukan deskriptor keamanan untuk semua file yang disalin oleh direktif CopyFiles . Namun, vendor tidak perlu menentukan deskriptor keamanan untuk file driver, jika tujuan penginstalan adalah salah satu subdirektori sistem %SystemRoot%. (Untuk informasi selengkapnya tentang subdirektori ini, lihat Menggunakan Dirids.) Sistem menyediakan deskriptor keamanan default untuk subdirektori ini, dan deskriptor default tidak boleh ditimpa.
Pengaturan Keamanan untuk Layanan Driver
Dalam bagian penginstalan layanan file INF driver (lihat Petunjuk AddService INF), Anda dapat menyertakan entri Keamanan . Entri ini menentukan izin yang diperlukan untuk melakukan operasi seperti memulai, menghentikan, dan mengonfigurasi layanan driver yang terkait dengan perangkat Anda. Namun, sistem menyediakan pendeskripsi keamanan default untuk layanan driver, dan deskriptor default ini umumnya tidak harus ditimpa.
Pengaturan Keamanan untuk Entri Registri Perangkat dan Driver
Saat menentukan entri registri dalam file INF dengan menggunakan direktif INF AddReg, Anda dapat menyertakan add-registry-section. Bagian keamanan untuk setiap add-registry-section. Bagian add-registry. Bagian keamanan menentukan izin akses ke entri registri yang dibuat yang dibuat oleh bagian add-registry-section terkait. Sistem menyediakan deskriptor keamanan default untuk semua entri registri yang dibuat di bawah akar relatif HKR . Oleh karena itu, Anda tidak perlu menentukan deskriptor keamanan saat membuat entri registri di bawah akar relatif.
Pengaturan Keamanan untuk Kelas WMI
Sistem menetapkan deskriptor keamanan default ke GUID yang mengidentifikasi kelas WMI. Untuk Windows XP dan versi sistem operasi yang lebih lama, deskriptor keamanan default untuk GUID WMI memungkinkan akses penuh ke semua pengguna. Dimulai dengan Windows Server 2003, pendeskripsi keamanan default hanya mengizinkan akses ke administrator.
Jika driver Anda mendefinisikan kelas WMI dan Anda tidak ingin menggunakan deskriptor keamanan default sistem untuk kelas-kelas ini, Anda dapat menyediakan deskriptor keamanan dengan menggunakan bagian INF DDInstall.WMI dalam file INF perangkat.
Menggunakan Fungsi SetupAPI Dengan Benar
Jika paket driver Anda menyertakan penginstal, penginstal bersama, atau aplikasi penginstalan lain yang memanggil fungsi SetupAPI, Anda harus mengikuti panduan untuk menggunakan SetupAPI.
Menguji Pengaturan Keamanan Penginstalan
Gunakan pengelogan SetupAPI untuk memverifikasi bahwa pengaturan keamanan yang terkait dengan penginstalan perangkat Anda telah ditentukan dengan benar. Atur tingkat pengelogan ke verbose (0x0000FFFF), lalu coba berbagai skenario penginstalan.
Skenario tersebut harus mencakup penginstalan awal dan penginstalan ulang, dari akun pengguna dan akun administrator sistem. Coba colokkan perangkat Anda sebelum menginstal perangkat lunak, dan sebaliknya.
Jika penginstalan berhasil, lihat log untuk mengonfirmasi bahwa tidak ada kesalahan yang terjadi. Jika penginstalan gagal, lihat log untuk menentukan penyebab kegagalan.
Selain itu, setelah penginstalan selesai, Anda dapat melakukan hal berikut:
Gunakan Editor Registri untuk melihat pengaturan keamanan yang ditetapkan ke entri registri.
Gunakan Komputer Saya untuk melihat setelan keamanan yang ditetapkan ke suatu berkas.