Sdílet prostřednictvím


Posílení zabezpečení úloh

Použití funkce posílení zabezpečení úloh umožní vlastníkům úloh spouštět své úkoly s minimálními požadovanými oprávněními. Všimněte si, že tato funkce je ve výchozím nastavení povolená a vlastníci úloh můžou provádět další úpravy pomocí typu identifikátoru tokenu procesu úkolu a pole požadovaných oprávnění úkolu.

Typ identifikátoru SID tokenu úkolu a pole požadovaných oprávnění úkolu

Zadání ProcessTokenSidType na úrovni definice úlohy umožňuje vlastníkům úloh požádat o spuštění procesu úkolu s typem identifikátoru SID "none" nebo s typem identifikátoru SID "unrestricted". Pokud je pole přítomno v definici úlohy, ověření zajistí, že UserId úlohy musí obsahovat jméno nebo odpovídající řetězec SID pro jeden z těchto integrovaných účtů služby operačního systému: "NETWORK SERVICE" nebo "LOCAL SERVICE".

Typ IDENTIFIKÁTORu SID "none" znamená, že úloha běží v procesu, který neobsahuje identifikátor SID tokenu procesu (v seznamu skupin tokenů procesu se neprovedou žádné změny). SID hlavního účtu úlohy (LocalService/NetworkService) má v takovém případě úplný přístup k tokenu procesu.

"Neomezený" typ SID znamená, že identifikátor SID úkolu bude odvozen z celé cesty k úkolu a bude přidán do seznamu skupin tokenů procesu. Například identifikátor SID úlohy \Microsoft\Windows\RAC\RACTask, který běží v účtu místní služby, je odvozen od názvu Microsoft-Windows-RAC-RACTask kde je znak "-" nahrazen znakem "\", protože "\" je neplatný znak uživatelského jména. Známý název skupiny pro SID úkolu by byl "NT TASK\<upravená úplná cesta úkolu>" (formát název_domény\uživatelské_jméno). Výchozí volitelný seznam řízení přístupu (DACL) tokenu procesu se upraví tak, aby umožňoval úplné řízení pouze identifikátoru SID úkolu a identifikátoru SID místního systému a řízení čtení identifikátoru SID hlavního účtu úlohy. "schtasks.exe /showsid /tn <úplná cesta úkolu>" zobrazí identifikátor SID, který odpovídá úkolu.

Když se spustí akce úkolu jiného typu než COM, modul plánování se přihlásí k hlavnímu účtu úkolu, získá token procesu a provede dotaz na seznam oprávnění, která má token, poté je porovná se seznamem oprávnění zadaným v RequiredPrivileges. Pokud v druhé části není zadáno oprávnění, označí se jako SE_PRIVILEGE_REMOVED. Pak bude spuštěna spustitelná akce s výsledným popisovačem tokenu pomocí rozhraní API CreateProcessAsUser.

Když se spustí akce úkolu COM, musí být aktivována procesem taskhost.exe. Plánovací modul dotazuje kontextový blok každého spuštěného taskhost.exe se stejným účtem jako spouštěcí úloha. Pokud zjistí, že hostitelský proces byl spuštěn s nadmnožinou oprávnění, která spouštěcí úloha potřebuje, pak se tento úkol hostuje v daném procesu. Pokud takový proces nenajde, zkombinuje informace o posílení zabezpečení všech úloh spuštěných v hostitelích úloh v rámci hlavního účtu úkolu se zadanou maskou RequiredPrivileges a pak spustí novou instanci taskhost.exe.

Pokud v definici úlohy není k dispozici RequiredPrivileges, použijí se pro proces úkolu výchozí oprávnění hlavního účtu úkolu bez oprávnění SeImpersonatePrivilege. Pokud ProcessTokenSidType není v definici úlohy, použije se jako výchozí hodnota "unrestricted".

informace o registraci úloh

O Plánovači Úloh

Kontekst zabezpečení pro úkoly