Protección de seguridad de tareas
El uso de la característica de protección de seguridad de tareas permitirá a los propietarios de tareas ejecutar sus tareas con privilegios mínimos necesarios. Tenga en cuenta que esta característica está habilitada de forma predeterminada y los propietarios de tareas pueden realizar más ajustes mediante el tipo de identificador de seguridad de token de proceso de tarea y la matriz de privilegios necesarios para la tarea.
Tipo de SID de token de proceso de tarea y matriz de privilegios necesarios para tareas
Especificar ProcessTokenSidType en el nivel de definición de tarea permite a los propietarios de tareas solicitar un proceso de tarea que se ejecute con el tipo de SID "none" o el tipo de SID "sin restricciones". Si el campo está presente en la definición de tarea, la validación garantiza que la tarea UserId contenga el nombre o la cadena de SID correspondiente para una de esas cuentas de servicio integradas del sistema operativo: "SERVICIO DE RED" o "SERVICIO LOCAL".
El tipo de SID "none" significa que la tarea se ejecuta en un proceso que no contiene un SID de token de proceso (no se realizarán cambios en la lista de grupos de tokens de proceso). El SID de la cuenta de entidad de seguridad de tarea (LocalService/NetworkService) en ese caso tiene acceso total al token de proceso.
El tipo de SID "sin restricciones" significa que un SID de tarea se derivará de la ruta de acceso completa de la tarea y se agregará a la lista de grupos de tokens de proceso. Por ejemplo, \Microsoft\Windows\RAC\RACTask que se ejecuta en la cuenta de servicio local, el SID de tarea se deriva del nombre Microsoft-Windows-RAC-RACTask donde "-" se sustituye por un "\" ya que "\" es un carácter de nombre de usuario no válido. El nombre de grupo conocido para el SID de tarea sería "NT TASK\<modified full task path>" (nombrededominio\formato de nombre de usuario). La lista de control de acceso discrecional (DACL) predeterminada del token de proceso también se modificará para permitir el control total del SID de la tarea y el SID del sistema local solo y el control de lectura en el SID de la cuenta principal de la tarea. "schtasks.exe /showsid /tn <full task path>" mostrará el SID de tarea correspondiente a la tarea.
Cuando se inicia una acción de tarea que no es COM, el motor de programación inicia sesión en la cuenta de entidad de seguridad de la tarea, obtiene el token de proceso y consulta la lista de privilegios que tiene el token y, a continuación, lo compara con la lista de privilegios especificada en RequiredPrivileges. Si no se especifica un privilegio en este último, se marca como SE_PRIVILEGE_REMOVED. A continuación, la acción ejecutable se iniciará con el identificador de token resultante mediante la API CreateProcessAsUser.
Cuando se inicia una acción de tarea COM, el proceso de taskhost.exe debe activarla. El motor de programación consulta el bloque de contexto de cada taskhost.exe en ejecución con la misma cuenta que la tarea de inicio. Si encuentra que un proceso de host se inició con un superconjunto de privilegios que necesita la tarea inicial, esa tarea se hospeda en ese proceso. Si no encuentra este proceso, combina la información de protección de todas las tareas que se ejecutan en los taskhosts en la cuenta de entidad de seguridad de la tarea con la máscara RequiredPrivileges especificada y, a continuación, inicia una nueva instancia de taskhost.exe.
Si RequiredPrivileges no está presente en la definición de tarea, se usarán los privilegios predeterminados de la cuenta de entidad de seguridad de tarea sin SeImpersonatePrivilege para el proceso de tarea. Si ProcessTokenSidType no está presente en la definición de tarea, se usa "unrestricted" como valor predeterminado.
Temas relacionados