Quais são as permissões mínimas de usuário necessárias para instalar um serviço do Windows?

5

Quais são as permissões mínimas de usuário necessárias para instalar um serviço do Windows?

    
por Heckflosse_230 06.01.2010 / 01:07

1 resposta

11

Privilégios administrativos por motivos de segurança.

Apenas os processos com privilégios administrativos podem abrir identificadores para o SCM (Service Control Manager) que pode ser usado pelas funções CreateService e LockServiceDatabase (consulte o Artigo do MSDN para detalhes). No artigo, você verá que, para permissões para criar um serviço, você precisa do direito de acesso SC_MANAGER_CREATE_SERVICE (0x0002) , que está incluído no direito de acesso genérico, GENERIC_WRITE . Se você olhar um pouco mais abaixo na página, verá que somente Administradores têm acesso a isso por meio de SC_MANAGER_ALL_ACCESS . O mesmo vale para usar o InstallUtil.exe para instalar um serviço .NET do Windows, pois o InstallUtil chama o nativo função CreateService .

Um aplicativo instalando um serviço passaria por um dos dois métodos. Parece um design muito lógico que evita problemas de segurança, conforme explicado aqui :

Actually, this design in Windows makes sense. It is the result of security consideration. Windows Service normally runs under a high privilege account, if a normal account can install an unknown service, it is easy for the malicious user to elevate his privilege. For example, he can use installutil.exe to install a hack service which runs under Local Service account. Then, when the service runs the entire machine will be controlled by the hacker with normal user account. This is really a security hole. So Windows only allows Administrators to install a service.

    
por 06.01.2010 / 01:25