É “NT AUTHORITY \ SYSTEM” um usuário ou um grupo?

12

No Windows, o usuário System é exibido com o símbolo do grupo: .(usandoaAPIinternadoWin32 LookupAccountSid também revela que parece ser um grupo SidTypeGroup .

Por outro lado, os processos podem ser executados no system context , como em user context . Também documentos da Microsoft descrevem como "usuário do sistema" ou "conta do sistema", e não como "grupo de sistemas".

É um usuário que serve para algum propósito legado exibido como grupo?

(Ou é algo que Werner Heisenberg estaria interessado?)

Nota: Qual é o usuário do NT AUTHORITY \ SYSTEM? ? é semelhante, mas não responde à pergunta por que ele é exibido como grupo e se comporta como um usuário.

    
por boboes 19.04.2016 / 14:24

2 respostas

8

Primeiro, token de acesso contém muito mais do que o identificador de segurança (SID) . Um só tem que "Executar como administrador" um programa para ver no Gerenciador de Tarefas que o usuário é a si mesmo e não Administrador, e este milagre é alcançado apenas pela modificação do token de acesso, não substituindo o SID.

Segundo, NT-AUTHORITY e SYSTEM não são contas nem grupos, apesar do que dizem várias outras fontes (mesmo dentro da Microsoft). Um SID geralmente tem um nome que é exibido sempre que necessário. Uma conta de usuário contribuirá com seu SID como principal SID para o token de acesso, que também determinará o nome exibido por vários utilitários. Mas o token de acesso pode conter SIDs adicionais, por exemplo, para todos os grupos ao qual pertence essa conta de usuário. Ao verificar as permissões, o Windows procure por qualquer SID no token de acesso que tenha essa permissão.

Alguns SIDs do Windows conhecidos terão nomes informados pelo Windows, embora eles não pertençam a nenhuma conta.

Um Identificador de segurança é definido pela Wikipedia como:

a unique, immutable identifier of a user, user group, or other security principal.

O SID não precisa definir nem mesmo uma conta de usuário ou um grupo. Apenas define um conjunto de permissões. O artigo da Wikipédia acima adiciona:

Windows grants or denies access and privileges to resources based on access control lists (ACLs), which use SIDs to uniquely identify users and their group memberships. When a user logs into a computer, an access token is generated that contains user and group SIDs and user privilege level. When a user requests access to a resource, the access token is checked against the ACL to permit or deny particular action on a particular object.

O SID de NT-AUTHORITY\SYSTEM pode ser adicionado a outras contas. Por exemplo, isso é dito sobre o Conta do sistema local :

The LocalSystem account is a predefined local account used by the service control manager. [...] Its token includes the NT AUTHORITY\SYSTEM and BUILTIN\Administrators SIDs; these accounts have access to most system objects.

Já se pode ver no texto acima a confusão que reina mesmo em Documentação da Microsoft relativa a SIDs do sistema, que não são exatamente contas nem grupos - que são apenas um conjunto de permissões. Essa confusão se estende ainda a outros utilitários e artigos, de modo que qualquer informações retornadas devem ser cuidadosamente examinadas.

O artigo da Microsoft Identificadores de segurança conhecidos nos sistemas operacionais Windows detalha todos os SIDs do sistema, alguns dos quais incluo abaixo:

Conclusão:NT-AUTHORITY\SYSTEMéonomedeumIDdesegurança,quenãoénemumgruponemumaconta.EleéexibidonoGerenciadordeTarefascomoSISTEMAquandoéoprincipalSIDdeumprograma.Omáximoqueeuchamariaé"uma pseudo-conta".

    
por 05.06.2017 / 12:21
7

IMHO sua observação está correta. NT-AUTHORITY\SYSTEM é um grupo, então você pode se referir a ele como o sistema grupo . Este grupo existe desde o Windows NT 4 pelo menos e já foi um grupo lá:

Special Groups

[...]

System - The operating system.

Há também uma conta chamada LocalSystem que

[...] includes the NT AUTHORITY\SYSTEM [...]

então você poderia chamar isto de sistema usuário que é membro do grupo SYSTEM.

SysInternals PsGetSid suporta a teoria do grupo para SYSTEM:

C:\>PsGetsid.exe S-1-5-18

PsGetSid v1.44 - Translates SIDs to names and vice versa
Copyright (C) 1999-2008 Mark Russinovich
Sysinternals - www.sysinternals.com

Account for YOURPCNAMEHERE\S-1-5-18:
Well Known Group: NT-AUTHORITY\SYSTEM

Em relação ao início de um processo como um grupo:

Para gerenciar a segurança, um processo obtém uma token de acesso . O token de acesso contém apenas SIDs. Não tenho certeza se há uma verificação se o SID do usuário é realmente um usuário ou um grupo. Em princípio, não importaria: o SID define o que pode ser acessado. Talvez o artigo CodeProject possa ajudar com o implementação

    
por 19.04.2016 / 15:46