CLFS ログ ファイル認証は、CLFS ドライバーがログ ファイルの作成者およびライターであることを確認することで、ファイル解析の安全性を向上させるセキュリティ軽減策です。 ログ ファイル認証は、各ログ ファイルの末尾にある予約済みセクションにハッシュベースのメッセージ認証コード (HMAC) を記録することによって実現されます。 ログ ファイルが CLFS API (CLFS ドライバーなど) 以外によって作成または変更された場合、ログ ファイルは解析しても安全でないと見なされ、CLFS は呼び出し元にエラーを生成します (ユーザー モードではERROR_LOG_METADATA_CORRUPTカーネル モードでSTATUS_LOG_METADATA_CORRUPT)。
CLFS 認証チェックは、次のバージョンで既定で有効になっています。
- Windows 11バージョン 25H2
ユーザーへの影響
認証コードは、ログ ファイル データとシステム固有の暗号化キーをハッシュすることによって作成されます。 暗号化キーは各システムに固有であるため、CLFS は他のシステムで作成されたログ・ファイルの認証チェックに失敗し、CLFS ログ・ファイルは管理者の介入なしに使用不可になります (詳細については、以下のセクションを参照してください)。
ストレージのオーバーヘッド
拡張子が .cnpf の新しいファイルは、BLF コンテナーとデータ コンテナーと共に格納されます。 ログ ファイルの BLF が C:\Users\User\example.blf にある場合、そのパッチ ファイルは C:\Users\User\example.blf.cnpf にあります。 ログ ファイルが正常に閉じられていない場合、パッチ ファイルには、CLFS がログ ファイルを回復するために必要なデータが保持されます。 パッチ ファイルは、回復情報を提供するファイルと同じセキュリティ属性を使用して作成されます。 ファイルのサイズは "FlushThreshold" (HKLM\SYSTEM\CurrentControlSet\Services\CLFS\Parameters [FlushThreshold]) と同じです。
より多くの認証コードを格納するために、より多くのファイル ストレージが割り当てられます。 ClfsAddLogContainer または ClfsAddLogContainerSet を呼び出すときなど、呼び出し元が要求したファイル サイズの上に余分な領域が追加されます。 認証コードに必要な領域の量は、ファイルの要求されたサイズによって異なります。 ログ ファイルに割り当てられるデータの量の見積もりについては、次の一覧を参照してください。
512 KB のコンテナー ファイルは、追加の最大 8,192 バイトを割り当てます。
1024 KB のコンテナー ファイルでは、追加の約 12,288 バイトが割り当てられます。
10 MB のコンテナー ファイルでは、追加の約 90,112 バイトが割り当てられます。
100 MB のコンテナー ファイルでは、追加の最大 57,344 バイトが割り当てられます。
4 GB のコンテナー ファイルでは、追加の約 2,101,248 バイトが割り当てられます。
I/O オーバーヘッド
認証コードを維持するための I/O 操作の増加により、ログ ファイルへのレコードの作成、開き、書き込みに要する時間が長くなります。 ログ ファイルの作成とログ ファイルを開く時間の増加は、コンテナーのサイズによって完全に異なり、より大きなログ ファイルの影響が大きくなります。 平均すると、ログ ファイルへのレコードへの書き込みに要する時間は 2 倍になります。
軽減モード
既定では、CLFS は CLFS ログ ファイル認証のセキュリティ軽減策を有効にして実行されます。 CLFS では、ログ ファイルを開くときにエラーが発生します。認証コードが見つからないか無効です。
このバージョンの CLFS で更新プログラムを受け取るシステムには、認証コードのない既存のログ ファイルがシステム上に存在する可能性があります。 これらのログ ファイルが新しい形式に移行されるようにするために、システムは CLFS ドライバーを学習モードにします。このモードでは、CLFS ドライバーが存在しないログ ファイルに認証コードを自動的に追加するよう CLFS に指示します。 認証コードの自動追加は、呼び出し元のスレッドが基になるファイルへの書き込みアクセス権を持っている場合にのみ、ログ ファイルを開くと発生します。 導入期間は、レジストリ HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CLFS\Authentication [EnforcementTransitionPeriod] で定義されます (秒単位)。
推奨されませんが、軽減策を無効にすることができます。 無効にすると、CLFS は認証チェックを実行せず、破損または悪意のあるログ ファイルの可能性を解析します。
コンフィギュレーション
CLFS ログ ファイル認証軽減モードは、いくつかの方法で管理 (有効/無効) できます。
MDM はポリシーを用いています。
グループ ポリシー。" CLFS ログ ファイル認証を有効/無効にする" 設定 ([
Administrative Templates\System\Filesystem\] の下) を使用します。Modeで見つかったHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CLFS\Authenticationレジストリ値の変更。0: 軽減策の値が適用されます。 CLFS では、認証コードが見つからないか無効なログ ファイルを開くとエラーが発生します。1: 軽減策の値は学習モードです。 CLFS は常にログ ファイルを開きます。 ログ ファイルに認証コードがない場合、CLFS はコードを生成してファイルに書き込みます (呼び出し元に書き込みアクセス権がある場合)。 このプロセスは、この軽減策を採用しているシステムを対象とした監査モードです。2: 軽減策の値は、管理者によって無効になります。
ローカル管理者は、次の PowerShell コマンドを使用して軽減策を無効にすることができます。
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\CLFS\Authentication" -Name Mode -Value 2
fsutil を使用した認証コードの修正
fsutil clfs 認証コマンド ライン ユーティリティは、ログ ファイルの認証コードを追加または修正するために管理者によって使用されます。 このコマンドは、次のシナリオで役立ちます。
軽減策の導入期間中にログ ファイルが開かれない場合、または何らかの理由で認証コードがない場合は、このコマンドを使用して、認証コードをログ ファイルに追加できます。
別のシステム (および異なる暗号化キー) で作成されたログ ファイルを開くことができる場合は、このコマンドを使用して、ローカル システムの暗号化キーを使用して既存の認証コードを修正できます。