SDDL untuk Objek Perangkat
Security Descriptor Definition Language (SDDL) digunakan untuk mewakili deskriptor keamanan. Keamanan untuk objek perangkat dapat ditentukan oleh string SDDL yang ditempatkan dalam file INF atau diteruskan ke IoCreateDeviceSecure. Bahasa Definisi Deskriptor Keamanan sepenuhnya di dokumentasi Microsoft Windows SDK.
Meskipun file INF mendukung berbagai SDDL, hanya subset bahasa yang didukung oleh rutinitas IoCreateDeviceSecure . Subset ini didefinisikan di sini.
String SDDL untuk objek perangkat berbentuk "D:P" diikuti oleh satu atau beberapa ekspresi formulir "(A;; Akses;;; SID)". Nilai SID menentukan pengidentifikasi keamanan yang menentukan kepada siapa nilai Akses berlaku (misalnya, pengguna atau grup). Nilai Akses menentukan hak akses yang diizinkan untuk SID. Nilai Access dan SID adalah sebagai berikut.
Catatan Saat menggunakan SDDL untuk objek perangkat, driver Anda harus menautkan terhadap Wdmsec.lib.
Akses
Menentukan nilai ACCESS_MASK yang menentukan akses yang diizinkan. Nilai ini dapat ditulis baik sebagai nilai heksadesimal dalam bentuk "0xhex", atau sebagai urutan kode simbolis dua huruf yang mewakili hak akses.
Kode berikut dapat digunakan untuk menentukan hak akses generik.
Kode | Akses generik ke kanan |
---|---|
GA |
GENERIC_ALL |
GR |
GENERIC_READ |
GW |
GENERIC_WRITE |
GX |
GENERIC_EXECUTE |
Kode berikut dapat digunakan untuk menentukan hak akses tertentu.
Kode | Hak akses tertentu |
---|---|
RC |
READ_CONTROL |
SD |
DELETE |
WD |
WRITE_DAC |
WO |
WRITE_OWNER |
Perhatikan bahwa GENERIC_ALL memberikan semua hak yang tercantum dalam dua tabel di atas, termasuk kemampuan untuk mengubah ACL.
SID
Menentukan SID yang diberikan akses yang ditentukan. SID mewakili akun, alias, grup, pengguna, atau komputer.
SID berikut mewakili akun di komputer.
SID | Deskripsi |
---|---|
SY |
Sistem Mewakili sistem operasi itu sendiri, termasuk komponen mode penggunanya. |
LS |
Layanan Lokal Akun yang telah ditentukan sebelumnya untuk layanan lokal (yang juga termasuk dalam Autentikasi dan Dunia). SID ini tersedia dimulai dengan Windows XP. |
NS |
Layanan Jaringan Akun yang telah ditentukan sebelumnya untuk layanan jaringan (yang juga milik Terautentikasi dan Dunia). SID ini tersedia dimulai dengan Windows XP. |
SID berikut mewakili grup pada komputer.
SID | Deskripsi |
---|---|
BA |
Administrator Grup Administrator bawaan pada komputer. |
BU |
Grup Pengguna Bawaan Grup yang mencakup semua akun pengguna lokal, dan pengguna di domain. |
BG |
Grup Tamu Bawaan Grup yang mencakup pengguna yang masuk menggunakan akun tamu lokal atau domain. |
SID berikut menjelaskan sejauh mana pengguna telah diautentikasi.
SID | Deskripsi |
---|---|
AU |
Pengguna yang Diautentikasi Setiap pengguna yang dikenali oleh komputer lokal atau oleh domain. Perhatikan bahwa pengguna yang masuk menggunakan akun Tamu Bawaan tidak diautentikasi. Namun, anggota grup Tamu dengan akun individual di mesin atau domain diautentikasi. |
AN |
Pengguna Masuk Anonim Setiap pengguna masuk tanpa identitas, seperti sesi jaringan anonim. Perhatikan bahwa pengguna yang masuk menggunakan akun Tamu Bawaan tidak diautentikasi atau anonim. SID ini tersedia dimulai dengan Windows XP. |
SID berikut menjelaskan bagaimana pengguna masuk ke komputer.
SID | Deskripsi |
---|---|
IU |
Pengguna Interaktif Pengguna yang awalnya masuk ke mesin "secara interaktif", seperti logon lokal dan logo Desktop Jarak Jauh. |
NU |
Pengguna Masuk Jaringan Pengguna mengakses komputer dari jarak jauh, tanpa akses desktop interaktif (misalnya, berbagi file atau panggilan RPC). |
WD |
Dunia Sebelum Windows XP, SID ini mencakup setiap sesi, baik pengguna yang diautentikasi, pengguna anonim, atau akun Tamu Bawaan. Dimulai dengan Windows XP, SID ini tidak mencakup sesi masuk anonim; ini hanya mencakup pengguna terautentikasi dan akun Tamu Bawaan. Perhatikan bahwa kode yang tidak tepercaya atau "dibatasi" juga tidak dicakup oleh SID Dunia. Untuk informasi selengkapnya, lihat deskripsi SID Kode Terbatas (RC) dalam tabel berikut ini. |
SID berikut layak disebutkan secara khusus.
SID | Deskripsi |
---|---|
RC |
Kode Terbatas SID ini digunakan untuk mengontrol akses dengan kode yang tidak tepercaya. Validasi ACL terhadap token dengan RC terdiri dari dua pemeriksaan, satu terhadap daftar SID normal token (berisi WD misalnya), dan satu terhadap daftar kedua (biasanya berisi RC dan subset SID token asli). Akses diberikan hanya jika token lulus kedua pengujian. Dengan demikian, RC benar-benar bekerja dalam kombinasi dengan SID lain. Setiap ACL yang menentukan RC juga harus menentukan WD. Ketika RC dipasangkan dengan WD dalam ACL, superset Semua Orang termasuk kode yang tidak tepercaya dijelaskan. Kode yang tidak tepercaya mungkin berupa kode yang diluncurkan menggunakan opsi Jalankan Sebagai di Explorer. Secara default, Dunia tidak mencakup kode yang tidak tepercaya. |
UD |
Driver User-Mode SID ini memberikan akses ke driver mode pengguna. Saat ini, SID ini hanya mencakup driver yang ditulis untuk User-Mode Driver Framework (UMDF). SID ini tersedia dimulai dengan Windows 8. Dalam versi Windows sebelumnya, yang tidak mengenali singkatan "UD", Anda harus menentukan bentuk SID ini yang sepenuhnya memenuhi syarat (S-1-5-84-0-0-0-0-0) untuk memberikan akses ke driver UMDF. Untuk informasi selengkapnya, lihat Mengontrol Akses Perangkat dalam dokumentasi Kerangka Kerja Driver User-Mode. |
Contoh SDDL Untuk Objek Perangkat
Bagian ini menjelaskan string SDDL yang telah ditentukan sebelumnya yang ditemukan di Wdmsec.h. Anda juga dapat menggunakan ini sebagai templat untuk menentukan string SDDL baru untuk objek perangkat.
SDDL_DEVOBJ_KERNEL_ONLY
"D:P"
SDDL_DEVOBJ_KERNEL_ONLY adalah ACL "kosong". Kode mode pengguna (termasuk proses yang berjalan sebagai sistem) tidak dapat membuka perangkat.
Pengemudi bus PnP dapat menggunakan deskriptor ini saat membuat PDO. File INF kemudian dapat menentukan pengaturan keamanan yang lebih longgar untuk perangkat. Dengan menentukan deskriptor ini, driver bus akan memastikan bahwa tidak ada upaya untuk membuka perangkat sebelum INF diproses akan berhasil.
Demikian pula, driver non-WDM dapat menggunakan deskriptor ini untuk membuat objek perangkatnya tidak dapat diakses sampai program mode pengguna yang sesuai (seperti alat penginstal) mengatur deskriptor keamanan akhir dalam registri.
Dalam semua kasus ini, defaultnya adalah keamanan yang ketat, dilonggarkan seperlunya.
SDDL_DEVOBJ_SYS_ALL
"D:P(A;; GA;;; SY)"
SDDL_DEVOBJ_SYS_ALL mirip dengan SDDL_DEVOBJ_KERNEL_ONLY, kecuali bahwa selain kode mode kernel, kode mode pengguna yang berjalan karena Sistem juga diizinkan untuk membuka perangkat untuk akses apa pun.
Driver warisan mungkin menggunakan ACL ini untuk memulai dengan pengaturan keamanan yang ketat, dan membiarkan layanannya membuka perangkat pada durasi pengguna individual dengan menggunakan fungsi mode pengguna SetFileSecurity . Dalam hal ini, layanan harus berjalan sebagai Sistem.
SDDL_DEVOBJ_SYS_ALL_ADM_ALL
"D:P(A;; GA;;; SY)(A;; GA;;; BA)"
SDDL_DEVOBJ_SYS_ALL_ADM_ALL memungkinkan kernel, sistem, dan administrator kontrol penuh atas perangkat. Tidak ada pengguna lain yang dapat mengakses perangkat.
SDDL_DEVOBJ_SYS_ALL_ADM_RWX_WORLD_R
"D:P(A;; GA;;; SY)(A;; GRGWGX;;; BA)(A;; GR;;; WD)"
SDDL_DEVOBJ_SYS_ALL_ADM_RWX_WORLD_R memungkinkan kernel dan sistem kontrol penuh atas perangkat. Secara default administrator dapat mengakses seluruh perangkat, tetapi tidak dapat mengubah ACL (administrator harus mengontrol perangkat terlebih dahulu.)
Semua orang (SID Dunia) diberi akses baca. Kode yang tidak tepercaya tidak dapat mengakses perangkat (kode yang tidak tepercaya mungkin berupa kode yang diluncurkan menggunakan opsi Jalankan Sebagai di Explorer. Secara default, Dunia tidak mencakup kode Terbatas.)
Perhatikan juga bahwa akses traversal tidak diberikan kepada pengguna normal. Dengan demikian, ini mungkin bukan deskriptor yang sesuai untuk perangkat dengan namespace.
SDDL_DEVOBJ_SYS_ALL_ADM_RWX_WORLD_R_RES_R
"D:P(A;; GA;;; SY)(A;; GRGWGX;;; BA)(A;; GR;;; WD)(A;; GR;;; RC)"
SDDL_DEVOBJ_SYS_ALL_ADM_RWX_WORLD_R_RES_R memungkinkan kernel dan sistem kontrol penuh atas perangkat. Secara default administrator dapat mengakses seluruh perangkat, tetapi tidak dapat mengubah ACL (administrator harus mengontrol perangkat terlebih dahulu.)
Semua orang (SID Dunia) diberi akses baca. Selain itu, kode yang tidak tepercaya juga diizinkan untuk mengakses kode. Kode yang tidak tepercaya mungkin berupa kode yang diluncurkan menggunakan opsi Jalankan Sebagai di Explorer. Secara default, Dunia tidak mencakup kode Terbatas.
Perhatikan juga bahwa akses traversal tidak diberikan kepada pengguna normal. Dengan demikian, ini mungkin bukan deskriptor yang sesuai untuk perangkat dengan namespace.
Perhatikan bahwa string SDDL di atas tidak menyertakan pengubah pewarisan apa pun. Dengan demikian, mereka hanya sesuai untuk objek perangkat dan tidak boleh digunakan untuk file atau kunci registri. Untuk informasi selengkapnya tentang menentukan pewarisan menggunakan SDDL, lihat dokumentasi Microsoft Windows SDK.