Sdílet prostřednictvím


Řízení přístupu (Platforma filtrování Windows)

V systému Windows Filtering Platform (WFP) služba BFE (Base Filtering Engine) implementuje standardní model řízení přístupu systému Windows na základě přístupových tokenů a popisovačů zabezpečení.

Model řízení přístupu

Popisovače zabezpečení je možné zadat při přidávání nových objektů WFP, jako jsou filtry a dílčí vrstvy. Popisovače zabezpečení se spravují pomocí funkcí pro správu WFP Fwpm*GetSecurityInfo0 a Fwpm*SetSecurityInfo0, kde * představuje název objektu WFP. Tyto funkce jsou sémanticky identické s funkcemi windows GetSecurityInfo a SetSecurityInfo.

Poznámka

Funkce Fwpm*SetSecurityInfo0 nelze volat v rámci explicitní transakce.

Poznámka

Funkce Fwpm*SetSecurityInfo0 lze volat pouze z dynamické relace, pokud se používají ke správě dynamického objektu vytvořeného ve stejné relaci.

Výchozí popisovač zabezpečení pro modul filtru (kořenový stroj v následujícím diagramu) je následující.

  • Udělte GENERIC_ALL (GA) přístupová práva k vestavěné skupině Administrátoři.
  • Udělte přístupová práva GENERIC_READ (GR), GENERIC_WRITE (GW), GENERIC_EXECUTE (GX) operátorům konfigurace sítě.
  • Udělte GRGWGX přístupová práva k následujícím identifikátorům zabezpečení služby (SSID): MpsSvc (Windows Firewall), NapAgent (Agent ochrany přístupu k síti), PolicyAgent (agent zásad IPsec), RpcSs (vzdálené volání procedur) a WdiServiceHost (Hostitel diagnostických služeb).
  • Udělte oprávnění všem k FWPM_ACTRL_OPEN a FWPM_ACTRL_CLASSIFY. (Toto jsou přístupová práva specifická pro WFP, popsaná v tabulce níže.)

Zbývající výchozí popisovače zabezpečení jsou odvozeny dědičností.

Existují některé kontroly přístupu, například pro Fwpm*Add0, Fwpm*CreateEnumHandle0, Fwpm*SubscribeChanges0 volání funkce, které nelze provést na úrovni jednotlivých objektů. Pro tyto funkce existují objekty kontejneru pro každý typ objektu. Pro standardní typy objektů (například zprostředkovatelé, bublinové popisky, filtry) jsou stávající Fwpm*GetSecurityInfo0 a Fwpm*SetSecurityInfo0 funkce přetížené, aby parametr GUID s hodnotou null identifikátoru GUID identifikoval přidružený kontejner. Pro ostatní typy objektů (například síťové události a přidružení zabezpečení IPsec) existují explicitní funkce pro správu informací o zabezpečení kontejneru.

BFE podporuje automatickou dědičnost položek řízení přístupu (ACEs) volitelného seznamu řízení přístupu (DACL). BFE nepodporuje položky ACE seznamu řízení přístupu systému (SACL). Objekty dědí položky ACE z jejich kontejneru. Kontejnery dědí ACE z filtračního enginu. Cesty šíření jsou znázorněny v následujícím diagramu.

Diagram znázorňující cesty šíření ACE, počínaje 'Enginem'.

Pro standardní typy objektů BFE vynucuje všechna obecná a standardní přístupová práva. Kromě toho WFP definuje následující specifická přístupová práva.

WFP přístupové právo Popis
FWPM_ACTRL_ADD
Vyžaduje se k přidání objektu do kontejneru.
FWPM_ACTRL_ADD_LINK
Vyžaduje se k vytvoření přidružení k objektu. Chcete-li například přidat filtr, který odkazuje na výzvu, musí mít volající přístup ADD_LINK k výzvě.
FWPM_ACTRL_BEGIN_READ_TXN
Vyžaduje se k zahájení explicitní transakce čtení.
FWPM_ACTRL_BEGIN_WRITE_TXN
Vyžaduje se pro zahájení explicitní zápisové transakce.
FWPM_ACTRL_CLASSIFY
Vyžaduje se pro klasifikaci v rámci vrstvy uživatelského režimu.
FWPM_ACTRL_ENUM
Vyžaduje se k vytvoření výčtu objektů v kontejneru. Enumerátor však vrací pouze objekty, ke kterým má volající FWPM_ACTRL_READ přístup.
FWPM_ACTRL_OPEN
Vyžaduje se k otevření relace pomocí BFE.
FWPM_ACTRL_READ
Vyžaduje se ke čtení vlastností objektu.
FWPM_ACTRL_READ_STATS
Je zapotřebí číst statistiky.
FWPM_ACTRL_SUBSCRIBE
Vyžaduje se k přihlášení k odběru oznámení. Odběratelé obdrží oznámení pouze pro objekty, ke kterým mají přístup FWPM_ACTRL_READ.
FWPM_ACTRL_WRITE
Je nutné nastavit možnosti motoru.

BFE přeskočí všechny kontroly přístupu volajících v režimu jádra.

Aby se správci nemohli uzamknout před BFE, mají členové předdefinované skupiny Administrators vždy udělené FWPM_ACTRL_OPEN k objektu modulu engine. Správce tak může získat přístup pomocí následujícího postupu.

  • Povolte oprávnění SE_TAKE_OWNERSHIP_NAME.
  • Volání FwpmEngineOpen0. Volání proběhne úspěšně, protože volající je členem vestavěné skupiny Správci.
  • Převzít vlastnictví objektu engine. To se podaří, protože volající má oprávnění SE_TAKE_OWNERSHIP_NAME.
  • Aktualizujte DACL. To proběhne úspěšně, protože vlastník má vždy WRITE_DAC přístup.

Vzhledem k tomu, že BFE podporuje vlastní auditování, negeneruje audity obecného přístupu k objektům. Proto je SACL ignorován.

Požadovaná přístupová práva WFP

Následující tabulka ukazuje přístupová práva požadovaná funkcemi WFP pro přístup k různým objektům platformy filtrování. Funkce FwpmFilter* jsou uvedeny jako příklad pro přístup ke standardním objektům. Všechny ostatní funkce, které přistupují ke standardním objektům, následují FwpmFilter* model přístupu funkcí.

Funkce Objekt zkontrolován Požadovaný přístup
FwpmEngineOpen0 Motor FWPM_ACTRL_OPEN
FwpmEngineGetOption0 Motor FWPM_ACTRL_READ
FwpmEngineSetOption0 Motor FWPM_ACTRL_WRITE
FwpmSessionCreateEnumHandle0 Motor FWPM_ACTRL_ENUM
FwpmTransactionBegin0 Motor FWPM_ACTRL_BEGIN_READ_TXN & FWPM_ACTRL_BEGIN_WRITE_TXN
FwpmFilterAdd0 Poskytovatel kontejneru
Vrstva
Sub-Layer
Vyznačení
Kontext zprostředkovatele
FWPM_ACTRL_ADDFWPM_ACTRL_ADD_LINK
FWPM_ACTRL_ADD_LINK
FWPM_ACTRL_ADD_LINK
FWPM_ACTRL_ADD_LINK
FWPM_ACTRL_ADD_LINK
FwpmFilterDeleteById0
FwpmFilterDeleteByKey0
Filtr ODSTRANIT
FwpmFilterGetById0
FwpmFilterGetByKey0
Filtr FWPM_ACTRL_READ
FwpmFilterCreateEnumHandle0 Filtr kontejneru
FWPM_ACTRL_ENUMFWPM_ACTRL_READ
FwpmFilterSubscribeChanges0 Kontejner FWPM_ACTRL_SUBSCRIBE
FwpmFilterSubscriptionsGet0 Kontejner 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 ODSTRANIT
IPsecSaContextGetById0 Databáze zabezpečení IPsec (SA DB) FWPM_ACTRL_READ
IPsecSaContextCreateEnumHandle0
IPsecSaCreateEnumHandle0
IPsec SA databáze (Internet Protocol Security Security Association Database) FWPM_ACTRL_ENUM & FWPM_ACTRL_READ
IkeextGetStatistics0 Databáze IKE SA FWPM_ACTRL_READ_STATS
IkeextSaDeleteById0 Databáze IKE SA ODSTRANIT
IkeextSaGetById0 Databáze IKE SA FWPM_ACTRL_READ
IkeextSaCreateEnumHandle0 Databáze IKE SA FWPM_ACTRL_ENUM & FWPM_ACTRL_READ
FwpmNetEventCreateEnumHandle0 Kontejner FWPM_ACTRL_ENUM
FwpmIPsecTunnelAdd0
FwpmIPsecTunnelDeleteByKey0
Žádné další kontroly přístupu nad rámec jednotlivých filtrů a kontextů zprostředkovatele