Compartilhar via


Cenários de cópia de arquivo no modo kernel e detecção de arquivos de cópia

Este artigo descreve a funcionalidade de cópia de arquivo no modo Kernel confiável introduzida em Windows 11, versão 22H2. Essa funcionalidade permite que os filtros detectem facilmente cenários de cópia. É útil para filtros antivírus (AVs), permitindo que eles determinem se podem adiar ou ignorar totalmente a verificação dos arquivos de origem e 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, as seguintes atualizações foram feitas:

  • A sinalização FILE_CONTAINS_EXTENDED_CREATE_INFORMATION e a estrutura EXTENDED_CREATE_INFORMATION foram adicionadas. Essa sinalização e estrutura são usadas 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 NtCreateFile existente do EaBuffer.

    Quando a sinalização FILE_CONTAINS_EXTENDED_CREATE_INFORMATION é especificada, o gerenciador de E/S interpreta os parâmetros EaBuffer e EaLength como uma estrutura EXTENDED_CREATE_INFORMATION. Em seguida, o gerenciador de E/S analisa os campos dessa estrutura como se eles fossem fornecidos diretamente ao NtCreateFile. Os filtros subjacentes não experimentam nenhuma alteração no comportamento dos atributos estendidos.

  • IoCheckFileObjectOpenedAsCopySource e IoCheckFileObjectOpenedAsCopyDestination foram adicionados para filtros para verificar 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 de NtCopyFileChunk têm:

  • O modo de 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 verificar a presença dessa extensão e obter informações de cópia dos dados de retorno de chamada acionando FltGetCopyInformationFromCallbackData.