CLFS-loggfilautentisering

CLFS-loggfilautentisering är en säkerhetsåtgärd som förbättrar säkerheten vid filparsning genom att säkerställa att CLFS-drivrutinen är den som skapar och skriver loggfiler. Loggfilautentiseringen utförs genom att du spelar in hash-baserade autentiseringskoder för meddelanden (HMAC) i ett reserverat avsnitt i slutet av varje loggfil. Om en loggfil skapas eller ändras av något annat än CLFS-API:et (till exempel CLFS-drivrutinen) anses loggfilen vara osäker att parsa och CLFS genererar ett fel till anroparen (ERROR_LOG_METADATA_CORRUPT i användarläge, STATUS_LOG_METADATA_CORRUPT i kernelläge). CLFS-autentiseringskontroll är aktiverat som standard i följande versioner:

  • Windows 11, version 25H2

Användarpåverkan

Autentiseringskoder skapas genom att du hashar ihop loggfildata och en system unik kryptografisk nyckel. Eftersom den kryptografiska nyckeln är unik för varje system misslyckas CLFS-autentiseringskontrollen på loggfiler som har skapats i andra system, vilket gör ATT CLFS-loggfiler inte kan nås utan administratörsintervention (Mer information finns i följande avsnitt).

Omkostnader för lagring

En ny fil med tillägget .cnpf lagras tillsammans med BLF- och datacontainrarna. Om BLF för en loggfil finns på C:\Users\User\example.blf ska dess korrigeringsfil finnas på C:\Users\User\example.blf.cnpf. Om en loggfil inte är helt stängd innehåller korrigeringsfilen data som krävs för att CLFS ska kunna återställa loggfilen. Korrigeringsfilen skapas med samma säkerhetsattribut som filen som den innehåller återställningsinformation för. Filen har ungefär samma storlek som "FlushThreshold" (HKLM\SYSTEM\CurrentControlSet\Services\CLFS\Parameters [FlushThreshold]).

Mer fillagring allokeras för att lagra fler autentiseringskoder. Extra utrymme läggs till ovanpå den filstorlek som anroparen begär, till exempel när clfsAddLogContainer eller ClfsAddLogContainerSet anropas. Mängden utrymme som krävs för autentiseringskoder beror på den begärda storleken på filen. I följande lista finns en uppskattning av hur mycket mer data som allokeras för dina loggfiler:

  • 512 KB-containerfiler allokerar ytterligare ~8 192 byte.

  • 1 024 KB-containerfiler allokerar ytterligare ~12 288 byte.

  • 10 MB containerfiler allokerar ytterligare ~90 112 byte.

  • 100 MB containerfiler allokerar ytterligare ~57 344 byte.

  • 4 GB containerfiler allokerar ytterligare ~2 101 248 byte.

I/O-omkostnader

På grund av ökningen av I/O-åtgärder för att underhålla autentiseringskoder ökar den tid det tar att skapa, öppna och skriva poster till loggfiler. Den ökade tiden för att skapa loggfiler och öppna loggfiler beror helt på storleken på containrarna, med större loggfiler som har en mycket mer märkbar inverkan. I genomsnitt fördubblas den tid det tar att skriva till en post till en loggfil.

Åtgärdsläge

Som standard körs CLFS med säkerhetsreduceringen för CLFS-loggfilsautentisering aktiverad. CLFS genererar ett fel när öppna loggfiler har saknade eller ogiltiga autentiseringskoder.

Ett system som tar emot en uppdatering med den här versionen av CLFS har troligen befintliga loggfiler i systemet som inte har autentiseringskoder. För att säkerställa att dessa loggfiler övergår till det nya formatet placerar systemet CLFS-drivrutinen i ett inlärningsläge, vilket instruerar CLFS att automatiskt lägga till autentiseringskoder i loggfiler som inte har dem. Automatisk tillägg av autentiseringskoder sker när loggfilen öppnas och sker endast om den anropande tråden har skrivåtkomst till de underliggande filerna. Implementeringsperioden definieras i registret HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CLFS\Authentication [EnforcementTransitionPeriod] (i sekunder).

Även om det inte rekommenderas kan åtgärden inaktiveras. När clfs är inaktiverat utför de inte autentiseringskontroller och parsar potentiellt skadade eller skadliga loggfiler.

Konfiguration

Hanteringsläget för CLFS-loggfilsautentisering kan hanteras (aktiveras/inaktiveras) på flera sätt:

  1. MDM, med hjälp av /Vendor/MSFT/Policy/Config/FileSystem/ClfsAuthenticationChecking principen.

  2. Grupprincip med inställningen "Aktivera /inaktivera CLFS-loggfilautentisering" (under Administrative Templates\System\Filesystem\).

  3. Ändra registervärdet Mode som finns under HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CLFS\Authentication.

    1. 0Värdet : Minskning tillämpas. CLFS genererar ett fel när loggfiler som saknar eller ogiltiga autentiseringskoder öppnas.

    2. Värdet 1: Lindring är i inlärningsläge. CLFS öppnar alltid loggfiler. Om en loggfil saknar autentiseringskoder genererar och skriver CLFS koderna till filen (förutsatt att anroparen har skrivåtkomst). Den här processen är ett granskningsläge som är avsett för system som anammar denna mitigering.

    3. Värdet 2: Åtgärden är inaktiverad av en Administratör.

    En lokal administratör kan inaktivera åtgärden med följande PowerShell-kommando:

    Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\CLFS\Authentication" -Name Mode -Value 2
    

Korrigera autentiseringskoder med fsutil

Kommandoradsverktyget fsutil clfs autentiserar används av administratörer för att lägga till eller korrigera autentiseringskoder för en loggfil. Det här kommandot är användbart för följande scenarier:

  1. Om en loggfil inte öppnas under begränsningsperioden, eller om autentiseringskoder saknas av någon anledning, kan det här kommandot användas för att lägga till autentiseringskoder i loggfilen.

  2. Om du vill kunna öppna loggfiler som har skapats i ett annat system (och därmed en annan kryptografisk nyckel) kan det här kommandot användas för att korrigera befintliga autentiseringskoder med hjälp av det lokala systemets kryptografiska nyckel.

Se även

ClfsAddLogContainer

ClfsAddLogContainerSet

fsutil clfs authenticate