Por que alguns processos que não são do sistema estão listados como SYSTEM sob nome de usuário no Gerenciador de Tarefas do Windows?
algum Background:
Processos sempre executados no contexto de um princípio de segurança. Cada principal de segurança é associado a um Security ID(SID). Esta é a unidade primária de identificação de quem está executando o processo. Windows olha para algo chamado token de acesso do processo para identificar o SID( nome de usuário é apenas um nome legível para os mortais)
Closer olha para contextos de execução do processo:
O cenário mais típico da criação de um processo é você clicar duas vezes em uma aplicação ou iniciá-la a partir de um prompt cmd. Em ambos os casos, o processo alvo herda o token de acesso do processo pai (explorer.exe ou cmd.exe) e, portanto, é executado no seu contexto de usuário. Isto é porque o explorer.exe foi iniciado no seu contexto de usuário quando você entrou na sessão atual - (você pode verificar isto no gerenciador de tarefas)
Quando você sai da sua sessão de usuário, há muitas janelas de trabalho de limpeza que fazem por você, uma delas está matando o processo explorer.exe. Isto mata todos os processos filhos do explorer.
(porque as crianças estão ligadas ao tempo de vida dos pais' através de algo chamado objetos de trabalho. Você pode encontrar mais informações aqui - Objetos de Trabalho (Windows))
O kernel do windows e muitos outros serviços críticos don't entendem o conceito de um usuário/sessão, etc. e são agnósticos a ele. Tudo que eles precisam é do SID (que está disponível em qualquer ficha de processo)
Agora, se você sair da sua conta de usuário, certamente não't significa que o windows está't rodando.
(Se o windows estivesse't realmente a correr, você não't seria capaz de voltar a iniciar sessão :) )
Para poder voltar ao windows para continuar a executar outros serviços críticos em segundo plano/ para que o próprio kernel esteja em execução :--- é necessário um contexto de execução que NÃO esteja ligado a nenhuma sessão do utilizador.
É aqui que o NT AUTHORITY\SYSTEM entra em jogo. Este é o mais alto nível de privilégio que um processo poderia ser executado em um contexto não-usuário . Existem outros níveis de privilégios mais baixos como NETWORK SERVICE, LOCAL SERVICE e.t.c.
Extra Info:
O SISTEMA faz parte do grupo "Administrators" na sua máquina e portanto um processo em execução no seu contexto pode potencialmente fazer qualquer coisa que um administrador possa fazer à sua máquina.
(ações privilegiadas como - modificar o registro, instalar drivers etc)
Você poderia escrever um SERVIÇO NT, instalá-lo para rodar como SYSTEM e então chamar :
cmd> Net start "service_name"
Isso poderia rodar seu serviço no contexto SYSTEM.
Existe também uma ferramenta (escrita por Mark Russinovich | Facebook) chamada psexec.exe, que pode lançar executáveis regulares no contexto SYSTEM.
Transforma internamente o seu .exe para uma dll NT SERVICE, instala e executa.
Está disponível para download gratuito aqui - PsExec
Artigos semelhantes
- Quais são as tarefas que eu posso terminar com segurança no gerenciador de tarefas do Windows? O meu CPU e uso de disco é muito alto.
- O que significam os detalhes sob a parte da memória no gerenciador de tarefas?
- Sempre que eu abro qualquer arquivo .exe no Windows 7 , um erro aparece dizendo 'Windows não consegue encontrar o D:\System volume information.exe?
- Como trocar meu nome de usuário Instagram para minha segunda conta sem que outras pessoas recebam meus nomes de usuário