Dela via


Säkerhetsreferensövervakare för Windows Kernel-Mode

Säkerhet är en viktig faktor när du utvecklar enhetsdrivrutiner, särskilt drivrutiner som körs i kernelläge med förhöjd behörighet. Innan någon åtgärd kan utföras måste operativsystemet se till att åtgärden inte bryter mot systemets säkerhetsprincip. Enhetsdrivrutiner behöver mekanismer för att styra vilka processer och användare som kan komma åt sina enheter och vilka åtgärder de får utföra.

Windows Security Reference Monitor (SRM) är en kärnkomponent i kernelläge i Windows-säkerhetsarkitekturen som tillämpar principer för åtkomstkontroll i hela operativsystemet. Den validerar varje begäran om åtkomst till systemobjekt och ser till att endast auktoriserade entiteter kan utföra specifika åtgärder.

Viktiga funktioner i säkerhetsreferensövervakaren

SRM utför flera funktioner för att upprätthålla systemsäkerhet:

  • Tillämpning av åtkomstkontroll: Verifierar varje begäran om åtkomst till systemobjekt som filer, registernycklar och processer.
  • Implementering av säkerhetsprinciper: Tillämpar systemomfattande säkerhetsprinciper och implementerar principen om lägsta behörighet.
  • Granskning och loggning: Genererar säkerhetsgranskningshändelser och spårar säkerhetsreleventiska aktiviteter för efterlevnad och kriminalteknik.

Arkitekturkomponenter

SRM fungerar med flera viktiga datastrukturer och komponenter för att framtvinga säkerhetsprinciper.

Säkerhetsbeskrivningar

Säkerhetsbeskrivningar är datastrukturer som innehåller säkerhetsinformation för objekt.

Information i en säkerhetsbeskrivning lagras i en åtkomstkontrollista (ACL). Windows använder ACL:er för att avgöra vilka objekt som har vilken säkerhet.

Säkerhetsövervakningsrutiner för referenser

SRM tillhandahåller rutiner för att din drivrutin ska fungera med åtkomstkontroll. Rutiner som ger ett direkt gränssnitt till SRM är prefixerade med bokstäverna Se. Vanliga SRM-rutiner är:

  • SeAccessCheck: Utför åtkomstverifiering mot en säkerhetsbeskrivning.
  • SePrivilegeCheck: Kontrollerar om en token har specifika behörigheter.
  • SeSinglePrivilegeCheck: Söker efter en enda behörighet i en åtkomsttoken i kontexten för den aktuella tråden.
  • SeTokenType: Avgör om en token är en primär token eller en personifieringstoken.

Deklarationer för Se-funktioner och relaterade entiteter finns i olika WDK-huvuden, inklusive ntifs.h och wdm.h.

Scenarier för drivrutinsimplementering

Enhetsdrivrutiner använder ofta SRM i flera scenarier för att implementera lämpliga åtkomstkontroller.

Åtkomstkontroll för enhet

Drivrutiner kan styra vilka användare som kan komma åt specifika maskinvaruenheter:

  • Kontrollera användarbehörigheter innan du tillåter enhetsåtgärder.
  • Implementera olika åtkomstnivåer för olika typer av användare.
  • Begränsa administrativa åtgärder till privilegierade användare.

Åtgärdsverifiering

Drivrutiner kan se till att endast auktoriserade processer kan utföra specifika enhetsåtgärder:

  • Verifiera säkerhetskontexten innan du bearbetar I/O-begäranden.
  • Sök efter specifika behörigheter som krävs för känsliga åtgärder.
  • Implementera anpassade säkerhetsprinciper för enhetsspecifika funktioner.

Hantering av säkerhetskontexter

Drivrutiner som hanterar efterliknande och olika säkerhetskontexter kan:

  • Hantera personifieringstoken på rätt sätt.
  • Växla mellan olika säkerhetskontexter efter behov.
  • Upprätthålla säkerhetsgränser mellan olika användarsessioner.

Säkerhetsprinciper

SRM implementerar grundläggande säkerhetsprinciper som är viktiga för att upprätthålla systemintegriteten.

Fullständig medling

Varje åtkomstförsök måste gå igenom referensövervakaren:

  • Det finns inga undantag eller förbikopplingsmekanismer.
  • Säkerställer konsekvent tillämpning av säkerhetsprinciper för alla systemkomponenter.
  • Förhindrar obehörig åtkomst via alternativa kodsökvägar.

Minsta privilegium

Referensövervakaren hjälper till att implementera principen om lägsta behörighet:

  • Användare och processer bör bara ha de lägsta behörigheter som krävs.
  • Hjälper till att minimera potentiella skador från säkerhetsöverträdelser.
  • Implementerad genom noggrann ACL-konfiguration och behörighetshantering.