カーネル モードのファイル コピーとコピー ファイル シナリオの検出

この記事では、Windows 11 バージョン 22H2 で導入された信頼できるカーネルモード ファイル コピー機能について説明します。 この機能により、フィルターを使用してコピー シナリオを簡単に検出できるようになります。 これはウイルス対策フィルター (AV) に役立ち、コピー中にコピー元ファイルとコピー先ファイルの両方のスキャンを延期するか、完全にスキップするかを決定できます。

カーネルモードの読み取り操作と書き込み操作がコピー操作の一部として間違いなくマークされるように、次の更新が行われました。

  • FILE_CONTAINS_EXTENDED_CREATE_INFORMATION フラグと EXTENDED_CREATE_INFORMATION 構造体が追加されました。 このフラグと構造体は、NtCreateFile 経由で、作成時にコピー意図を通知するために使用されます。 EXTENDED_CREATE_INFORMATION 構造体は、NtCreateFile の既存の EaBuffer パラメーターのラッパーとして機能します。

    FILE_CONTAINS_EXTENDED_CREATE_INFORMATION フラグを指定すると、入出力マネージャーは EaBuffer パラメーターと EaLength パラメーターを EXTENDED_CREATE_INFORMATION 構造体として解釈します。 その後、入出力マネージャーは、NtCreateFile に直接提供されたかのようにその構造体のフィールドを解析します。 基になるフィルターでは、拡張属性の動作に変更はありません。

  • IoCheckFileObjectOpenedAsCopySourceIoCheckFileObjectOpenedAsCopyDestination は、ファイルがコピー目的で開かれたかどうかをチェックするためにフィルターに追加されました。

  • NtCopyFileChunk はカーネル モード コピーを実行するために追加されました。

NtCopyFileChunk からのすべての読み取り操作と書き込み操作には、次が含まれます。

  • IRP のリクエスタ モードは KernelMode に設定されています。
  • IopCopyInformationType タイプの IRP 拡張機能

フィルターは IRP 拡張機能に直接アクセスできませんが、FltGetCopyInformationFromCallbackData 呼び出しによってこの拡張機能の存在を確認し、コールバック データからコピー情報を取得できます。