カーネル モードのファイル コピーとコピー ファイル シナリオの検出
カーネル モードで信頼されたファイル コピーを実行する機能は、コピー シナリオを簡単に検出するフィルターの機能を含め、Windows 11 バージョン 22H2 で導入されました。 この機能はウイルス対策フィルター (AV) に特に役立ち、コピー中にソース ファイルと宛先ファイルの両方のスキャンを延期するか完全にスキップできるかを判断できるようになります。
カーネルモードの読み取りおよび書き込み操作がコピー操作の一部として安全にマークされるようにするには、次の手順を実行します。
FILE_CONTAINS_EXTENDED_CREATE_INFORMATION フラグと EXTENDED_CREATE_INFORMATION 構造体は作成時にコピーの意図を通知するために NtCreateFile により追加されました。 EXTENDED_CREATE_INFORMATION 構造体は、NtCreateFile の既存の EaBuffer パラメーターのラッパーとして機能します。
FILE_CONTAINS_EXTENDED_CREATE_INFORMATION フラグが指定されている場合、I/O マネージャーはEaBuffer パラメーターと EaLength パラメーターを、EXTENDED_CREATE_INFORMATION 構造体としてインターセプトし、NtCreateFile に直接提供された場合と同様に、その構造体のフィールドを解析します。 基礎となるフィルターの拡張属性の動作は変更されません。
IoCheckFileObjectOpenedAsCopySource と IoCheckFileObjectOpenedAsCopyDestination は、ファイルがコピー目的で開かれたかどうかをチェックするためにフィルターに追加されました。
NtCopyFileChunk はカーネル モード コピーを実行するために追加されました。
NtCopyFileChunk すべての読み取りおよび書き込み操作は、次のものがあります:
- IRP のリクエスタ モードは KernelMode に設定されています。
- IopCopyInformationType タイプの IRP 拡張機能
フィルターは IRP 拡張機能に直接アクセスできませんが、FltGetCopyInformationFromCallbackData 呼び出しによってこの拡張機能の存在を確認し、コールバック データからコピー情報を取得できます。