Identificar um processo em execução no sistema operacional não é uma tarefa simples. Muitas vezes não conseguimos identificar detalhes e informações relevantes sobre determinado processo que está em execução na máquina naquele instante.
Em sistemas Microsoft, existem algumas ferramentas que auxiliam neste processo de identificação. No caso dos sistemas Windows, especificamente, (vamos falar das versões Desktop primeiro), há uma ferramenta nativa do sistema com este propósito, conhecida como Gereciamento de Tarefas ou Task Manager.
É possivel também utilizar cmdlets (Command-lets) do PowerShell para obter informações a respeito de processos, além do prompt de comandos (CMD) e utlitarios do pacote SysInternals (ProcMon, ProcessExplorer).
Acima, executando um simples comando “Get-Process” no PowerShell, você obtem uma lista simples de processos em execução, abaixo uma breve descrição dos campos exibidos:
- Handles: o número de identificadores que o processo abriu.
- NPM (K): A quantidade de memória não paginada que o processo está usando, em kilobytes.
- PM (K): A quantidade de memória paginável que o processo está usando, em kilobytes.
- WS (K): O tamanho do conjunto de trabalho do processo, em kilobytes. O conjunto de trabalho consiste nas páginas de memória que foram referenciadas recentemente pelo processo.
- VM (M): A quantidade de memória virtual que o processo está usando, em megabytes. A memória virtual inclui armazenamento nos arquivos de paginação no disco.
- CPU (s): A quantidade de tempo do processador que o processo utilizou em todos os processadores, em segundos.
- ID: O ID do processo (PID) do processo.
- ProcessName: o nome do processo.
Com alguns argumentos junto ao comando “Get-Process” é possivel obter detalhes do processo em execução, como por exemplo o caminho onde se encontra determinado executavel:
Para identificar por exemplo o usuário que iniciou o processo:
No site da Microsoft há vários outros comandos que podem ser explorados utilizando-se o PowerShell com este intuito. Vale dar uma boa pesquisada na Net também se deseja se aprofundar.
Já utilizando o Task Manager (Gerenciamento de Tarefas), a visualização é a partir de uma interface gráfica e interativa. Para localizar esta função no Windows, tente uma das maneiras abaixo:
- Utilizando teclas de atalho como: Ctrl + Shift + Esc
- Através do botão direito na barra de tarefas > Task Manager
- Digitando o comando “taskmgr” no menu iniciar
Nas versões mais “novas” do Windows, uma janela compacta será exibida. Para ver mais detalhes, clique no botão especificado:
Então a janela com as principais abas será disponibilizada:
Observe na imagem, que a primeira aba “Processes” exibe todos os processos em execução e está listado de acordo com a colunas configuradas. Por padrão, algumas colunas não são exibidas, para isto, clique com o botão direito sobre uma das colunas e marque as opções que deseja visualizar, por exemplo PID, Publisher (Fabricante/Proprietario), Command Line (a linha de comando de execução do processo), entre outras.
Esta coluna “Command Line” é de extrema importancia na verificação do processo. Primeiro que você tem uma visão ampla de onde está sendo executado tal processo e quais parâmetros estão sendo utilizados em conjunto com o arquivo.
Atentando-se aos campos “Publisher” e “Command Line” é possivel identificar se o processo em execução a principio trata-se de um processo desconhecido ou “possivelmente malicioso”. Não que um processo malicioso não possa estar “disfarçado” de um processo legitimo, mas à primeira vista você já consegue tirar algumas duvidas.
Vamos analisar um processo em execução:
Pegamos o processo identificado como “sihost.exe”.
O Host de Infraestrutura do Shell do Windows (sihost) é encarregado por controlar elementos gráficos da interface do sistema operacional, incluindo a transparência da barra de tarefas e o menu Iniciar. Esse utilitário exibe aplicativos na interface do Windows e controla certas funções do comportamento em segundo plano, como alterar o papel de parede.
Esse é um utilitario essencial do sistema operacional Windows, e que se removido, pode causar problemas sérios no ambiente do sistema operacional.
Ao clicar sobre ele com o botão direito, são apresentadas algumas opções, como por exemplo abrir o local de onde está localizado o arquivo:
Ao abrir o local, vemos que o arquivo está localizado em C:\Windows\System32.
O diretório System32 contém arquivos de sistema do Windows e arquivos de programas de software, quais são vitais para a operação do sistema operacional e programas de software em execução no Windows. Os tipos mais comuns de arquivos encontrados no diretório System32 são os arquivos DLL (biblioteca de vínculo dinâmico) e executáveis (EXE).
Voltando a tela do Task Manager, ao clicar no processo novamente e na opção “Go to details”…
… a aba “Details” (Detalhes) do TaskManager será exibida. Nesta aba, as informações estão mais “resumidas” do que a tela inicial de processos. Por aqui é possivel ver o Usuario/proprietario, consumo de CPU e Memória RAM, Status, ID e uma breve descrição:
Clicando no processo e em seguida em “Properties”, uma janela com as propriedades do arquivo será exibida;
Na aba “Details” da janela de propriedades, é possivel ver maiores detalhes sobre o arquivo como:
Tipo, versão, fabricante, data de modificação, nome original, etc…
Existem alguns processos que são listados como “svchost.exe”, que você já deve ter visto e se perguntado o que raios é esse processo? Qual o serviço por trás deles?
Neste caso, há duas maneiras simples de verificar o que ocorre por trás deste processo:
1 – Utilizando o botão direito sobre o processo > Go to service(s):
Este procedimento levará à aba de serviços (Services), exibindo qual ou quais serviço(s) está executando e a qual grupo pertence:
Outra maneira é utilizando linha de comando, através do comando “tasklist /svc /fo list”:
Observe o ID (760), é o mesmo que aparece lá em task Manager, e em Services:
A informação é bem básica, mas pelo menos você terá uma melhor compreensão do que está acontecendo por trás de um processo Svchost.
Em um proximo artigo vou falar mais sobre o ProcessMonitor e o ProcessExplorer.
Espero ter ajudado!