A diferença entre a conta "Sistema Local" e a conta "Serviço de rede"?

Escrevi um serviço do Windows que gera um processo separado. Este processo cria um objeto COM. Se o serviço funciona sob a conta "Sistema Local" tudo funciona bem, mas se o serviço funciona sob a conta "Serviço de rede", o processo externo começa, mas não cria o objeto COM. O erro retornado da criação do objeto COM não é um erro padrão COM (eu acho que é específico ao objeto COM sendo criado).

Então, como é que eu ... determinar a diferença entre as duas contas, "Sistema Local" e "serviço de rede"? Estes relatos embutidos parecem muito misteriosos e ninguém parece saber muito sobre eles.

Author: Ray, 2009-02-04

1 answers

Como há tanta confusão sobre a funcionalidade das contas de Serviço padrão, vou tentar dar uma corrida rápida para baixo.

Primeiro as contas reais:

  • LocalService conta (preferida)

    Uma conta de serviço limitada que é muito semelhante ao Serviço de rede e que se destina a executar serviços padrão menos privilegiados. No entanto, ao contrário do serviço de rede, acessa a rede como um utilizador anónimo.

    • nome: NT AUTHORITY\LocalService
    • a conta não tem senha (as informações de senha que fornecer são ignoradas)
    • O HKCU representa o LocalService conta de utilizador
    • temprivilégios mínimos no computador local
    • apresentacredenciais anónimas na rede
    • SID : S-1-5-19
    • tem o seu próprio perfil sob a chave de RegistoHKEY_USERS (HKEY_USERS\S-1-5-19)

     

  • NetworkService conta

    Conta de serviço limitada destinada a gerir serviços privilegiados normais. Esta conta é muito mais limitada do que o sistema Local (ou mesmo o administrador), mas ainda tem o direito de Acessar a rede como a máquina (ver caveat acima).

    • NT AUTHORITY\NetworkService
    • a conta não tem senha (as informações de senha que fornecer são ignoradas)
    • a HKCU representa a NetworkService conta de utilizador
    • temprivilégios mínimos no computador local
    • apresenta as credenciais do computador (por exemplo MANGO$ aos servidores remotos
    • SID : S-1-5-20
    • tem o seu próprio perfil sob a chave de RegistoHKEY_USERS (HKEY_USERS\S-1-5-20)
    • Se tentar agendar uma tarefa com ela, indique NETWORK SERVICE na janela Seleccione o Utilizador ou o Grupo

     

  • LocalSystem conta (perigosa, não a uses!)

    Conta de confiança completa, mais do que a conta de administrador. Não há nada numa única caixa que esta conta não possa fazer, e tem o direito de aceder à rede como máquina (isto exige Directório activo e concede as permissões da conta da máquina a alguma coisa)

    • nome: .\LocalSystem (pode também utilizar LocalSystem ou ComputerName\LocalSystem)
    • a conta não tem senha (qualquer informação de senha que forneça é ignorado)
    • SID : S-1-5-18
    • não tem nenhum perfil próprio (HKCU representa o Utilizador por omissão )
    • tem amplos privilégios no computador local
    • apresenta as credenciais do computador (por exemplo MANGO$ aos servidores remotos

     

[[18]] acima ao falar sobre o acesso à rede, isto se refere apenas a [[133]}SPNEGO (negociar), NTLM e Kerberos e não a qualquer outro mecanismo de autenticação. Por exemplo, o processamento que funciona como LocalService ainda pode acessar a internet.

O problema geral com a execução como um padrão fora da conta da caixa é que se você modificar qualquer uma das permissões padrão você está expandindo o conjunto de coisas que tudo em execução como essa conta pode fazer. Assim, se você conceder o DBO a uma base de dados, não só o seu serviço que funciona como serviço Local ou serviço de rede pode acessar essa base de dados, mas tudo o resto que está executando como essas contas também podem. Se cada desenvolvedor faz isso o computador terá uma conta de serviço que tem permissões para fazer praticamente qualquer coisa (mais especificamente o super conjunto de todos os diferentes privilégios adicionais concedidos a essa conta).

É sempre preferível, de uma perspectiva de segurança, Executar como sua própria conta de serviço que tem precisamente as permissões que você precisa para fazer o que seu serviço faz e nada mais. No entanto, o custo desta abordagem é a criação da sua conta de serviço, e a gestão da senha. É um equilíbrio que cada aplicação precisa de gerir.

No seu caso específico, o problema que provavelmente está a ver é que a activação DCOM ou com+ está limitada a um determinado conjunto de contas. No Windows XP SP2, Windows Server 2003, e acima da permissão de ativação foi restringida significativamente. Você deve usar os Serviços de componentes MMC snapin para examinar o seu objeto específico COM e ver as permissões de ativação. Se você não estiver acessando nada na rede como conta da máquina, você deve considerar seriamente a utilização de serviço Local (não o sistema Local que é basicamente o sistema operacional).


No Windows Server 2003 {você[25]}não executar uma tarefa agendada como

  • NT_AUTHORITY\LocalService (também conhecido por conta do serviço Local), ou
  • NT AUTHORITY\NetworkService (também conhecido por conta do serviço de rede).

Essa capacidade só foi adicionada com a tarefa Scheduler 2. 0 , que só existe no Windows Vista / Windows Server 2008 e mais recente.

Um serviço que funciona como NetworkService apresenta as credenciais da máquina na rede. Isto significa que se o seu computador foi chamado mango, ele iria apresentar como a conta da máquina MANGO$:

enter image description here

 720
Author: Peter Oehlert, 2019-06-11 15:04:56