Compartilhar via


Segurança do BITS, tokens e contas de administrador

Retornos de chamada de certificado do servidor HTTP

Validar corretamente certificados de servidor é uma parte fundamental da manutenção da segurança HTTPS. O BITS ajuda sempre validando certificados de servidor em relação a uma lista de requisitos especificada por SetSecurityFlags. Por padrão, o BITS usa a validação do certificado de estilo "navegador".

Você também pode especificar uma função personalizada para chamar para validar ainda mais o certificado. Defina o retorno de chamada de certificado do servidor com o métodosetServerCertificateValidationInterface. Seu método só será chamado depois que o sistema operacional validar o certificado com base na chamada doSetSecurityFlag.

Certificados de cliente HTTP

Você pode definir um certificado de cliente em um trabalho HTTP com dois métodos de configurações de certificado diferentes. Você pode definir um certificado ID ou pelo nome da entidade certificado. O certificado do cliente será usado durante a negociação (ou renegociação) do TLS se o servidor exigir autenticação do cliente.

Cabeçalhos HTTP somente gravação

O BITS ajuda você a proteger tokens de autenticação HTTP contra acesso indesejado. Muitas vezes, um servidor HTTP precisará de algum tipo de token de segurança ou cadeia de caracteres ao baixar ou carregar um arquivo em servidores HTTP.

O BITS protege esses tokens de autenticação de várias maneiras.

  • O BITS permite que você use conexões HTTP protegidas por TLS e SSL especificando uma URL HTTPS.
  • Cabeçalhos personalizados são sempre mantidos em um formato criptografado no disco.
  • Você pode impedir que cabeçalhos de clientes sejam retornados para outros programas com o métodoIBackgroundCopyJobHttpOptions3::MakeCustomHeadersWriteOnly.

Usuários padrão e administrador

Um usuário que está no grupo de administradores pode executar um processo com acesso de usuário padrão ou em um estado elevado (com privilégios de administrador). O BITS executará o trabalho em ambos os estados, desde que o usuário esteja conectado ao computador. No entanto, se o usuário criou o trabalho ou assumiu a propriedade do trabalho em um estado elevado, o usuário deverá estar no estado elevado para recuperar ou modificar o trabalho (caso contrário, a chamada falhará com o Access Negado (0x80070005)). Para determinar o estado elevado de um trabalho, chame o métodoIBackgroundCopyJob4::GetOwnerElevationState.

Um usuário padrão não pode enumerar ou modificar trabalhos de propriedade de outros usuários.

Nível de integridade

Além do estado elevado, o nível de integridade do token pode determinar se o usuário pode modificar um trabalho. Um cliente não pode modificar trabalhos criados por um token com um nível de integridade mais alto. Em particular, muitos tokens do sistema local têm um nível de integridade superior ao nível de integridade de uma janela elevada e, portanto, não podem ser modificados por um administrador de uma janela de comando com privilégios elevados comuns. Por exemplo, os trabalhos do Windows Update e sms são executados como LocalSystem, que tem um nível de integridade mais alto do que um token elevado, de modo que um administrador não pode modificar ou excluir esses trabalhos. Para modificar esses trabalhos, crie uma tarefa do Agendador de Tarefas que seja executada como um sistema local. A tarefa pode executar um aplicativo de console que usa a API BITS ou a tarefa pode executar um script que chama BitsAdmin.exe. Para determinar o nível de integridade usado, chame o métodoIBackgroundCopyJob4::GetOwnerIntegrityLevel.

Identidade do serviço

A partir da Atualização de Maio de 2019 do Windows 10 (10.0; Build 18362), os trabalhos de BITS iniciados a partir de um serviço manterão a identidade do serviço. Isso permite que os serviços que desejam usar o BITS baixem arquivos ou carreguem arquivos de um diretório cujas permissões estão vinculadas ao SID de serviço. Além disso, o tráfego de rede será atribuído corretamente ao serviço que solicitou o trabalho BITS em vez de ser atribuído ao BITS.