Dela via


Åtkomstkontroll (Windows-filtreringsplattform)

I Windows Filtering Platform (WFP) implementerar tjänsten Base Filtering Engine (BFE) standardmodellen Windows-åtkomstkontroll baserat på åtkomsttoken och säkerhetsbeskrivningar.

Åtkomstkontrollmodell

Säkerhetsbeskrivningar kan anges när du lägger till nya WFP-objekt, till exempel filter och underlager. Säkerhetsbeskrivningar hanteras med hjälp av WFP-hanteringsfunktionerna Fwpm*GetSecurityInfo0 och Fwpm*SetSecurityInfo0, där * står för WFP-objektets namn. Dessa funktioner är semantiskt identiska med funktionerna i Windows GetSecurityInfo och SetSecurityInfo.

Not

Funktionerna Fwpm*SetSecurityInfo0 kan inte anropas inifrån en explicit transaktion.

Notera

Funktionerna Fwpm*SetSecurityInfo0 kan bara anropas inifrån en dynamisk session om de används för att hantera ett dynamiskt objekt som skapats i samma session.

Standardsäkerhetsbeskrivningen för filtermotorn (rotmotorobjektet i diagrammet nedan) är följande.

  • Bevilja åtkomstbehörighet för GENERIC_ALL (GA) till den inbyggda gruppen Administratörer.
  • Bevilja GENERIC_READ (GR) GENERIC_WRITE (GW) GENERIC_EXECUTE (GX) åtkomsträttigheter till nätverkskonfigurationsoperatorer.
  • Bevilja GRGWGX åtkomstbehörigheter till följande tjänstesäkerhetsidentifierare (SSID): MpsSvc (Windows-brandvägg), NapAgent (Network Access Protection Agent), PolicyAgent (IPsec Policy Agent), RpcSs (Fjärrproceduranrop), och WdiServiceHost (diagnostiktjänstvärd).
  • Ge FWPM_ACTRL_OPEN och FWPM_ACTRL_CLASSIFY till alla. (Det här är WFP-specifika åtkomsträttigheter som beskrivs i tabellen nedan.)

De återstående standardsäkerhetsbeskrivningarna härleds genom arv.

Det finns vissa åtkomstkontroller, till exempel för Fwpm*Add0, Fwpm*CreateEnumHandle0, Fwpm*SubscribeChanges0 funktionsanrop, som inte kan göras på den enskilda objektnivån. För dessa funktioner finns det containerobjekt för varje objekttyp. För standardobjekttyperna (till exempel leverantörer, utrop, filter) överlagras de befintliga funktionerna Fwpm*GetSecurityInfo0 och Fwpm*SetSecurityInfo0, så att en null-GUID- parameter identifierar den associerade containern. För de andra objekttyperna (till exempel nätverkshändelser och IPsec-säkerhetsassociationer) finns det explicita funktioner för att hantera containerns säkerhetsinformation.

BFE stöder automatiskt arv av DACL-åtkomstkontrollposter (Discretionary Access Control List) (ACL). BFE har inte stöd för ACE:er (System Access Control List). Objekt ärver ACE:er från deras container. Behållare ärver ACE:er från filtermotorn. Spridningssökvägarna visas i diagrammet nedan.

Diagram som visar ACE:s distributionsvägar, med början i

För standardobjekttyperna tillämpar BFE alla allmänna och standardåtkomsträttigheter. WFP definierar dessutom följande specifika åtkomsträttigheter.

WFP-åtkomsträtt Beskrivning
FWPM_ACTRL_ADD
Krävs för att lägga till ett objekt i en container.
FWPM_ACTRL_ADD_LINK
Krävs för att skapa en association till ett objekt. Om du till exempel vill lägga till ett filter som refererar till en callout måste anroparen ha ADD_LINK-åtkomst till callouten.
FWPM_ACTRL_BEGIN_READ_TXN
Krävs för att påbörja en explicit lästransaktion.
FWPM_ACTRL_BEGIN_WRITE_TXN
Krävs för att påbörja en explicit skrivtransaktion.
FWPM_ACTRL_CLASSIFY
Krävs för att klassificera mot ett användarlägeslager.
FWPM_ACTRL_ENUM
Krävs för att räkna upp objekten i en container. Uppräknaren returnerar dock bara objekt som anroparen har FWPM_ACTRL_READ åtkomst till.
FWPM_ACTRL_OPEN
Krävs för att öppna en session med BFE.
FWPM_ACTRL_READ
Krävs för att läsa ett objekts egenskaper.
FWPM_ACTRL_READ_STATS
Krävs för att läsa statistik.
FWPM_ACTRL_SUBSCRIBE
Krävs för att prenumerera på meddelanden. Prenumeranter får endast meddelanden om objekt som de har FWPM_ACTRL_READ åtkomst till.
FWPM_ACTRL_WRITE
Krävs för att ange motoralternativ.

BFE hoppar över alla åtkomstkontroller för anropare i kernelläge.

För att förhindra att administratörer låser sig från BFE beviljas alltid medlemmar i den inbyggda administratörsgruppen FWPM_ACTRL_OPEN till motorobjektet. Därför kan en administratör återfå åtkomsten genom följande steg.

  • Aktivera SE_TAKE_OWNERSHIP_NAME behörighet.
  • Anropa FwpmEngineOpen0. Samtalet lyckas eftersom anroparen är medlem i inbyggda administratörer.
  • Ta över ägarskapet för motorobjektet. Detta lyckas eftersom anroparen har SE_TAKE_OWNERSHIP_NAME behörighet.
  • Uppdatera DACL. Detta lyckas eftersom ägaren alltid har WRITE_DAC åtkomst

Eftersom BFE stöder sin egen anpassade granskning genererar den inte allmänna objektåtkomstgranskningar. Därför ignoreras SACL.

Nödvändiga åtkomsträttigheter för WFP

Tabellen nedan visar de åtkomsträttigheter som krävs av WFP-funktionerna för att få åtkomst till olika filtreringsplattformsobjekt. Funktionerna FwpmFilter* visas som ett exempel för åtkomst till standardobjekten. Alla andra funktioner som har åtkomst till standardobjekt följer FwpmFilter* funktionsåtkomstmodell.

Funktion Objekt kontrollerat Åtkomst krävs
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 Containerleverantör
Lager
Sub-Layer
Callout
Providerkontext
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 Containerfilter
FWPM_ACTRL_ENUMFWPM_ACTRL_READ
FwpmFilterSubscribeChanges0 Behållare FWPM_ACTRL_SUBSCRIBE
FwpmFilterSubscriptionsGet0 Behållare 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-databas 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 Behållare FWPM_ACTRL_ENUM
FwpmIPsecTunnelAdd0
FwpmIPsecTunnelDeleteByKey0
Inga ytterligare åtkomstkontroller utöver dem för de enskilda filtren och providerkontexterna