Copiar arquivo no modo kernel e detectar cenários de arquivo de cópia

A capacidade de fazer a cópia de arquivo confiável no modo kernel foi introduzida no Windows 11, versão 22H2, incluindo a capacidade de filtros detectarem facilmente cenários de cópia. Essa funcionalidade é particularmente útil para AVs (filtros antivírus), permitindo que eles determinem se podem adiar ou ignorar totalmente a verificação dos arquivos de origem e de destino durante a cópia.

Para garantir que as operações de leitura e gravação no modo kernel sejam marcadas com segurança como parte de uma operação de cópia:

  • O sinalizador FILE_CONTAINS_EXTENDED_CREATE_INFORMATION e a estrutura EXTENDED_CREATE_INFORMATION foram adicionados para sinalizar a intenção de cópia no momento da criação por meio de NtCreateFile. A estrutura EXTENDED_CREATE_INFORMATION atua como um wrapper em torno do parâmetro EaBuffer existente do NtCreateFile.

    Quando o sinalizador FILE_CONTAINS_EXTENDED_CREATE_INFORMATION é especificado, o gerente de E/S interpreta os parâmetros EaBuffer e EaLength como uma estrutura EXTENDED_CREATE_INFORMATION e analisa os campos dessa estrutura como se fossem fornecidos diretamente ao NtCreateFile. Os filtros subjacentes não sofrerão nenhuma alteração no comportamento de atributos estendidos.

  • IoCheckFileObjectOpenedAsCopySource e IoCheckFileObjectOpenedAsCopyDestination foram adicionados para filtros para marcar se um arquivo foi aberto para intenção de cópia.

  • NtCopyFileChunk foi adicionado para fazer a cópia do modo kernel.

Todas as operações de leitura e gravação do NtCopyFileChunk terão:

  • O modo solicitante do IRP definido como KernelMode
  • Uma extensão IRP do tipo IopCopyInformationType.

Os filtros não têm acesso diretamente às extensões IRP, mas podem marcar a presença dessa extensão e obter informações de cópia dos dados de retorno de chamada chamando FltGetCopyInformationFromCallbackData.