Bagikan melalui


Kontrol akses (Platform Pemfilteran Windows)

Di Windows Filtering Platform (WFP), layanan Base Filtering Engine (BFE) mengimplementasikan model kontrol akses Windows standar berdasarkan token akses dan deskriptor keamanan.

Model kontrol akses

Deskriptor keamanan dapat ditentukan saat menambahkan objek WFP baru, seperti filter dan sub-lapisan. Deskriptor keamanan dikelola menggunakan fungsi manajemen WFP Fwpm*GetSecurityInfo0 dan Fwpm*SetSecurityInfo0, yang merupakan * singkatan dari nama objek WFP. Fungsi-fungsi ini secara semantik identik dengan fungsi Windows GetSecurityInfo dan SetSecurityInfo.

Catatan

Fungsi Fwpm*SetSecurityInfo0 tidak dapat dipanggil dari dalam transaksi eksplisit.

Catatan

Fungsi Fwpm*SetSecurityInfo0 hanya dapat dipanggil dari dalam sesi dinamis jika digunakan untuk mengelola objek dinamis yang dibuat dalam sesi yang sama.

Deskriptor keamanan default untuk mesin filter (objek Mesin akar dalam diagram di bawah) adalah sebagai berikut.

  • Memberikan hak akses GENERIC_ALL (GA) ke grup Administrator bawaan.
  • Memberikan hak akses GENERIC_WRITE (GW) GENERIC_EXECUTE GENERIC_WRITE (GW) GENERIC_READ (GX) ke operator konfigurasi jaringan.
  • Berikan hak akses GRGWGX kepada pengidentifikasi keamanan layanan (SSID) berikut: MpsSvc (Windows Firewall), NapAgent (Network Access Protection Agent), PolicyAgent (IPsec Policy Agent), RpcSs (Remote Procedure Call), dan WdiServiceHost (Diagnostic Service Host).
  • Berikan FWPM_ACTRL_OPEN dan FWPM_ACTRL_CLASSIFY untuk semua orang. (Ini adalah hak akses khusus WFP, yang dijelaskan dalam tabel di bawah ini.)

Deskriptor keamanan default yang tersisa diturunkan melalui pewarisan.

Ada beberapa pemeriksaan akses, seperti untuk panggilan fungsi Fwpm*Add0, Fwpm*CreateEnumHandle0, Fwpm*SubscribeChanges0 , yang tidak dapat dilakukan pada tingkat objek individual. Untuk fungsi-fungsi ini, ada objek kontainer untuk setiap jenis objek. Untuk jenis objek standar (misalnya, penyedia, callout, filter), fungsi Fwpm*GetSecurityInfo0 dan Fwpm*SetSecurityInfo0 yang ada kelebihan beban, sehingga parameter GUID null mengidentifikasi kontainer terkait. Untuk jenis objek lainnya (misalnya, peristiwa jaringan dan asosiasi keamanan IPsec), ada fungsi eksplisit untuk mengelola informasi keamanan kontainer.

BFE mendukung pewarisan otomatis entri kontrol akses (DACL) Daftar Kontrol Akses Diskresi (DACL). BFE tidak mendukung ACE Daftar Kontrol Akses Sistem (SACL). Objek mewarisi ACE dari kontainernya. Kontainer mewarisi ACE dari mesin filter. Jalur penyebaran ditunjukkan pada diagram di bawah ini.

Diagram that shows the ACE propagation paths, starting with 'Engine'.

Untuk jenis objek standar, BFE memberlakukan semua hak akses generik dan standar. Selain itu, WFP mendefinisikan hak akses spesifik berikut.

Akses WFP kanan Deskripsi
FWPM_ACTRL_ADD
Diperlukan untuk menambahkan objek ke kontainer.
FWPM_ACTRL_ADD_LINK
Diperlukan untuk membuat asosiasi ke objek. Misalnya, untuk menambahkan filter yang mereferensikan callout, pemanggil harus memiliki akses ADD_LINK ke callout.
FWPM_ACTRL_BEGIN_READ_TXN
Diperlukan untuk memulai transaksi baca eksplisit.
FWPM_ACTRL_BEGIN_WRITE_TXN
Diperlukan untuk memulai transaksi tulis eksplisit.
FWPM_ACTRL_CLASSIFY
Diperlukan untuk mengklasifikasikan terhadap lapisan mode pengguna.
FWPM_ACTRL_ENUM
Diperlukan untuk menghitung objek dalam kontainer. Namun, enumerator hanya mengembalikan objek tempat pemanggil memiliki akses FWPM_ACTRL_READ.
FWPM_ACTRL_OPEN
Diperlukan untuk membuka sesi dengan BFE.
FWPM_ACTRL_READ
Diperlukan untuk membaca properti objek.
FWPM_ACTRL_READ_STATS
Diperlukan untuk membaca statistik.
FWPM_ACTRL_SUBSCRIBE
Diperlukan untuk berlangganan pemberitahuan. Pelanggan hanya akan menerima pemberitahuan untuk objek yang aksesnya FWPM_ACTRL_READ.
FWPM_ACTRL_WRITE
Diperlukan untuk mengatur opsi mesin.

BFE melewati semua pemeriksaan akses untuk pemanggil mode kernel.

Untuk mencegah administrator mengunci diri dari BFE, anggota grup administrator bawaan selalu diberikan FWPM_ACTRL_OPEN ke objek mesin. Dengan demikian, administrator dapat mendapatkan kembali akses melalui langkah-langkah berikut.

  • Aktifkan hak istimewa SE_TAKE_OWNERSHIP_NAME .
  • Hubungi FwpmEngineOpen0. Panggilan berhasil karena penelepon adalah anggota Administrator Bawaan.
  • Ambil kepemilikan objek mesin. Ini berhasil karena pemanggil memiliki hak istimewa SE_TAKE_OWNERSHIP_NAME .
  • Perbarui DACL. Ini berhasil karena pemilik selalu memiliki akses WRITE_DAC

Karena BFE mendukung audit kustomnya sendiri, BFE tidak menghasilkan audit akses objek generik. Dengan demikian, SACL diabaikan.

Hak Akses yang Diperlukan WFP

Tabel di bawah ini menunjukkan hak akses yang diperlukan oleh fungsi WFP untuk mengakses berbagai objek platform pemfilteran. Fungsi FwpmFilter* tercantum sebagai contoh untuk mengakses objek standar. Semua fungsi lain yang mengakses objek standar mengikuti model akses fungsi FwpmFilter* .

Function Objek dicentang Akses diperlukan
FwpmEngineOpen0 Mesin FWPM_ACTRL_OPEN
FwpmEngineGetOption0 Mesin FWPM_ACTRL_READ
FwpmEngineSetOption0 Mesin FWPM_ACTRL_WRITE
FwpmSessionCreateEnumHandle0 Mesin FWPM_ACTRL_ENUM
FwpmTransactionBegin0 Mesin FWPM_ACTRL_BEGIN_READ_TXN &FWPM_ACTRL_BEGIN_WRITE_TXN
FwpmFilterAdd0 Penyedia Kontainer
Lapisan
Sub-Lapisan
Boks keterangan
Konteks Penyedia
FWPM_ACTRL_ADDFWPM_ACTRL_ADD_LINK
FWPM_ACTRL_ADD_LINK
FWPM_ACTRL_ADD_LINK
FWPM_ACTRL_ADD_LINK
FWPM_ACTRL_ADD_LINK
FwpmFilterDeleteById0
FwpmFilterDeleteByKey0
Filter DELETE
FwpmFilterGetById0
FwpmFilterGetByKey0
Filter FWPM_ACTRL_READ
FwpmFilterCreateEnumHandle0 Filter Kontainer
FWPM_ACTRL_ENUMFWPM_ACTRL_READ
FwpmFilterSubscribeChanges0 Kontainer FWPM_ACTRL_SUBSCRIBE
FwpmFilterSubscriptionsGet0 Kontainer FWPM_ACTRL_READ
IPsecGetStatistics0 IPsec SA DB FWPM_ACTRL_READ_STATS
IPsecSaContextCreate0
IPsecSaContextGetSpi0
IPsecSaContextAddInbound0
IPsecSaContextAddOutbound0
IPsec SA DB FWPM_ACTRL_ADD
IPsecSaContextDeleteById0
IPsecSaContextExpire0
IPsec SA DB DELETE
IPsecSaContextGetById0 IPsec SA DB FWPM_ACTRL_READ
IPsecSaContextCreateEnumHandle0
IPsecSaCreateEnumHandle0
IPsec SA DB FWPM_ACTRL_ENUM &FWPM_ACTRL_READ
IkeextGetStatistics0 IKE SA DB FWPM_ACTRL_READ_STATS
IkeextSaDeleteById0 IKE SA DB DELETE
IkeextSaGetById0 IKE SA DB FWPM_ACTRL_READ
IkeextSaCreateEnumHandle0 IKE SA DB FWPM_ACTRL_ENUM &FWPM_ACTRL_READ
FwpmNetEventCreateEnumHandle0 Kontainer FWPM_ACTRL_ENUM
FwpmIPsecTunnelAdd0
FwpmIPsecTunnelDeleteByKey0
Tidak ada pemeriksaan akses tambahan di luar yang ada untuk filter individual dan konteks penyedia