Seguridad, tokens y cuentas de administrador de BITS

Devoluciones de llamada de certificado de servidor HTTP

Validar correctamente los certificados de servidor es una parte clave del mantenimiento de la seguridad HTTPS. BITS ayuda a validar siempre los certificados de servidor en una lista de requisitos especificados por SetSecurityFlags. De forma predeterminada, BITS usa la validación de certificados de estilo "explorador".

También puede especificar una función personalizada a la que llamar para validar aún más el certificado. Establezca la devolución de llamada del certificado de servidor con el método SetServerCertificateValidationInterface . Solo se llamará al método después de que el sistema operativo haya validado el certificado en función de la llamada a SetSecurityFlag.

Certificados de cliente HTTP

Puede establecer un certificado de cliente en un trabajo HTTP con dos métodos de configuración de certificado diferentes. Puede establecer un certificado por identificador o por el nombre del firmante del certificado. El certificado de cliente se usará durante la negociación tls (o renegociación) si el servidor requiere autenticación de cliente.

Encabezados HTTP de solo escritura

BITS le ayuda a proteger los tokens de autenticación HTTP frente al acceso no deseado. A menudo, un servidor HTTP necesitará algún tipo de token de seguridad o cadena al descargar o cargar un archivo en servidores HTTP.

BITS protege estos tokens de autenticación de varias maneras.

  • BITS le permite usar conexiones HTTP protegidas con TLS y SSL especificando una dirección URL HTTPS.
  • Los encabezados personalizados siempre se conservan en un formato cifrado en el disco.
  • Puede impedir que los encabezados de cliente se devuelvan a otros programas con el método IBackgroundCopyJobHttpOptions3::MakeCustomHeadersWriteOnly .

Usuarios estándar y administradores

Un usuario que se encuentra en el grupo de administradores puede ejecutar un proceso con acceso de usuario estándar o con un estado elevado (con privilegios de administrador). BITS ejecutará el trabajo en cualquier estado siempre que el usuario haya iniciado sesión en el equipo. Sin embargo, si el usuario creó el trabajo o tomó posesión del trabajo en un estado elevado, el usuario debe estar en el estado elevado para recuperar o modificar el trabajo (de lo contrario, se produce un error en la llamada con Acceso denegado (0x80070005)). Para determinar el estado elevado de un trabajo, llame al método IBackgroundCopyJob4::GetOwnerElevationState .

Un usuario estándar no puede enumerar ni modificar trabajos propiedad de otros usuarios.

Nivel de integridad

Además del estado elevado, el nivel de integridad del token puede determinar si el usuario puede modificar un trabajo. Un cliente no puede modificar los trabajos creados por un token con un nivel de integridad superior. En concreto, muchos tokens del sistema local llevan un nivel de integridad superior al nivel de integridad de una ventana con privilegios elevados, por lo que un administrador no puede modificarlo desde una ventana de comandos con privilegios elevados normales. Por ejemplo, los trabajos de Windows Update y SMS se ejecutan como LocalSystem, que tiene un nivel de integridad mayor que un token con privilegios elevados para que un administrador no pueda modificar ni eliminar estos trabajos. Para modificar este trabajo, cree una tarea del Programador de tareas que se ejecute como sistema local. La tarea puede ejecutar una aplicación de consola que usa la API de BITS o la tarea podría ejecutar un script que llame a BitsAdmin.exe. Para determinar el nivel de integridad usado, llame al método IBackgroundCopyJob4::GetOwnerIntegrityLevel .

Identidad de servicio

A partir del Actualización de mayo de 2019 de Windows 10 (10.0; Compilación 18362), los trabajos de BITS iniciados desde un servicio mantendrán la identidad del servicio. Esto permite que los servicios que quieran usar BITS descarguen o carguen archivos desde un directorio cuyos permisos están vinculados al SID del servicio. Además, el tráfico de red se atribuirá correctamente al servicio que solicitó el trabajo de BITS en lugar de atribuirse a BITS.