Udostępnij przez


Wzmacnianie zabezpieczeń zadań

Użycie funkcji wzmacniania zabezpieczeń zadań umożliwi właścicielom zadań uruchamianie zadań z minimalnymi wymaganymi uprawnieniami. Należy pamiętać, że ta funkcja jest domyślnie włączona, a właściciele zadań mogą wprowadzić dalsze korekty przy użyciu typu identyfikatora zabezpieczeń tokenu procesu zadania i tablicy wymaganych uprawnień zadania.

Typ SID tokenu procesu zadania oraz tablica uprawnień wymaganych przez zadanie

Określenie ProcessTokenSidType na poziomie definicji zadania umożliwia właścicielom zadań żądanie uruchomienia procesu zadania z typem SID "none" lub typem SID "unrestricted". Jeśli pole znajduje się w definicji zadania, walidacja gwarantuje, że zadanie UserId zawiera nazwę lub odpowiedni ciąg SID dla jednego z tych wbudowanych kont usług systemu operacyjnego: "USŁUGA SIECIOWA" lub "USŁUGA LOKALNA".

Typ identyfikatora SID "none" oznacza, że zadanie jest uruchamiane w procesie, który nie zawiera identyfikatora SID tokenu procesu (żadne zmiany nie zostaną wprowadzone na liście grup tokenów procesu). W takim przypadku główny identyfikator SID konta zadania (LocalService/NetworkService) ma pełny dostęp do tokenu procesu.

Typ identyfikatora SID "bez ograniczeń" oznacza, że identyfikator SID zadania będzie pochodzić z pełnej ścieżki zadania i zostanie dodany do listy grup tokenów procesu. Na przykład \Microsoft\Windows\RAC\RACTask, który działa na koncie usługi lokalnej, identyfikator SID zadania pochodzi z nazwy Microsoft-Windows-RAC-RACTask, gdzie znak "-" jest zastępowany znakiem "\", ponieważ "\" jest nieprawidłowym znakiem nazwy użytkownika. Dobrze znana nazwa grupy dla identyfikatora SID zadania to "NT TASK\<pełna zmodyfikowana ścieżka zadania>" (format nazwa_domeny\nazwa_użytkownika). Domyślna uznaniowa lista kontroli dostępu tokenu procesu (DACL) również zostanie zmodyfikowana, aby umożliwić pełną kontrolę nad identyfikatorem SID zadania i lokalnym identyfikatorem SID systemu oraz kontrolą odczytu dla identyfikatora SID konta głównego zadania. "schtasks.exe /showsid /tn <pełna ścieżka zadania>" spowoduje wyświetlenie identyfikatora SID zadania odpowiadającego zadaniu.

Po uruchomieniu akcji zadania typu innego niż COM aparat planowania loguje się na konto głównego podmiotu zadania, pobiera token procesu, wykonuje zapytanie o listę uprawnień przypisanych do tokenu, a następnie porównuje je z listą uprawnień określoną w RequiredPrivileges. Jeśli nie określono uprawnień w tym drugim, oznacza to SE_PRIVILEGE_REMOVED. Proces wykonywalny zostanie następnie uruchomiony z wynikowym uchwytem tokenu przy użyciu interfejsu API CreateProcessAsUser.

Po uruchomieniu akcji zadania COM musi zostać aktywowana przez proces taskhost.exe. Aparat planowania odpytuje blok kontekstu każdego uruchomionego taskhost.exe przy użyciu tego samego konta co zadanie początkowe. Jeśli okaże się, że proces hosta został uruchomiony z szerszym zakresem uprawnień niż wymagane przez zadanie, które je uruchomiło, to zadanie zostaje umieszczone w ramach tego procesu. Jeśli taki proces nie zostanie odnaleziony, łączy informacje o wzmacnianiu zabezpieczeń wszystkich zadań uruchomionych na hostach zadań w ramach konta głównego zadania z określoną maską RequiredPrivileges, a następnie uruchamia nowe wystąpienie taskhost.exe.

Jeśli atrybut RequiredPrivileges nie jest obecny w definicji zadania, domyślne uprawnienia konta głównego użytkownika zadania bez SeImpersonatePrivilege będą używane do procesu zadania. Jeśli ProcessTokenSidType nie znajduje się w definicji zadania, jako wartość domyślna jest używana wartość "nieograniczone".

Informacje o Rejestracji Zadań

O harmonogramie zadań

konteksty zabezpieczeń dla zadań