• Introdução
  • O que é o taskhost.exe?
  • Processos pai e filho associados ao taskhost.exe
  • Por que os invasores abusam do taskhost.exe?
  • Como o taskhost.exe é explorado?
  • Como o Log360 detecta o taskhost.exe criando processos filho suspeitos
 

Em sistemas Windows, o "process spawning" é uma técnica na qual um processo existente cria um novo processo para executar tarefas específicas.

Um único processo pai pode criar diversos processos filho por um ou mais dos seguintes motivos:

  • Executar múltiplas tarefas: A criação de processos filho permite que o processo pai execute várias tarefas simultaneamente. Enquanto o processo pai se concentra em funções principais do sistema, o processo filho pode realizar tarefas menores, como atualizações e manutenção do sistema.
  • Gerenciar recursos: Os processos filho possuem seu próprio espaço de memória e recursos. Assim, ao criar múltiplos processos filho, o processo pai pode executar operações que exigem muitos recursos de forma mais fluida.
  • Manter a continuidade do sistema: Tarefas que exigem muitos recursos podem encerrar um processo e causar a falha do sistema. Ao delegar essas tarefas a um processo filho, o processo pai garante a continuidade do sistema, mesmo que o processo filho falhe.

Embora a criação de processos seja um evento normal do sistema, ela pode se tornar suspeita quando um processo pai gera um processo filho inadequado ou quando um processo filho legítimo é criado por um processo pai não relacionado. Os invasores exploram essa técnica para manipular o sistema, injetar código malicioso e executar scripts de malware. Um exemplo frequente de processo explorado por invasores é o taskhost.exe.

O que é o taskhost.exe?

O taskhost.exe, também conhecido como Host Process for Windows Tasks, é um processo do Windows responsável por hospedar a execução de arquivos DLL (Dynamic Link Library) quando solicitado por outras aplicações. Um arquivo DLL contém um conjunto de códigos que pode ser usado simultaneamente por vários programas. Diferente dos arquivos EXE, que podem ser executados diretamente pelo sistema operacional Windows, os arquivos DLL precisam ser chamados por outra aplicação ou processo para serem executados.

O taskhost.exe atua como o processo que carrega e permite a execução de arquivos DLL quando solicitados por uma aplicação. Como pode ser chamado por vários aplicativos ao mesmo tempo, diversas instâncias do taskhost.exe podem ser executadas simultaneamente. Ele opera em segundo plano sem interação do usuário e está localizado nas seguintes pastas do Windows:

  • Windows\System32\taskhost.exe
  • Windows\SysWow64\taskhost.exe
  • WINNT\system32\taskhost.exe
An image of multiple taskhost.exe processes running simultaneously in Windows.

Figura 1: taskhost.exe no Windows.

Na figura 1, é possível ver múltiplos processos taskhost.exe sendo executados simultaneamente em um sistema Windows. Ao clicar com o botão direito sobre qualquer processo taskhost.exe e selecionar suas propriedades, é possível visualizar detalhes como o tipo de arquivo que chamou o processo, o local de onde o taskhost.exe foi executado, o tamanho do processo e outras informações. Na imagem, é possível verificar que o processo taskhost.exe foi executado a partir da pasta C:\Windows\System32.

Processos pai e filho associados ao taskhost.exe

Os processos pai que criam o taskhost.exe como processo filho são:

  • services.exe
  • svchost.exe

O services.exe é um processo do Windows que gerencia os serviços do sistema, e o svchost.exe é o processo que hospeda esses serviços em sistemas Windows. O taskhost.exe é iniciado por um desses processos para executar tarefas específicas de aplicações.

Os processos filho criados pelo taskhost.exe são:

  • werfault.exe
  • wermgr.exe
  • WerFaultSecure.exe

Os processos filho acima, associados ao taskhost.exe, fazem parte do sistema de relatório de erros do Windows (Windows Error Reporting) e são responsáveis por lidar com falhas de aplicações e erros do sistema, além de reportá-los.

Fora esses processos, qualquer outro processo em que o taskhost.exe seja o processo pai ou filho pode indicar atividade suspeita de criação de processos no sistema.

Por que os invasores abusam do taskhost.exe?

O taskhost.exe é explorado por invasores para criar processos filho maliciosos pelos seguintes motivos:

  • Processo do Windows na lista de permissões: O taskhost.exe é um processo legítimo do Windows, executado a partir das pastas System32 e SysWow64, que normalmente não são alvo de verificação rigorosa por ferramentas de segurança.
  • Múltiplas instâncias em execução: Diversas aplicações podem chamar o processo taskhost.exe para executar arquivos DLL, gerando várias instâncias do taskhost.exe em execução simultaneamente. Isso torna mais difícil monitorar e rastrear cada processo hospedado em cada instância.
  • Associação a tarefas agendadas: Invasores exploram o taskhost.exe porque ele hospeda tarefas agendadas que envolvem arquivos DLL. Dessa forma, scripts maliciosos são executados sempre que a tarefa agendada é iniciada, dificultando a detecção do processo malicioso.

Como o taskhost.exe é explorado?

Algumas das técnicas usadas por invasores para explorar o taskhost.exe incluem:

  • Injeção de código: Invasores injetam código malicioso em arquivos DLL. Assim, sempre que o taskhost.exe carrega a DLL comprometida, um processo filho malicioso é executado. Como o processo pai (taskhost.exe) aparenta estar executando tarefas legítimas, o processo filho suspeito passa despercebido.
  • Exploração de tarefas agendadas: Ao injetar código malicioso em tarefas agendadas, os invasores garantem que o malware seja executado sempre que a tarefa for iniciada. Isso ajuda a manter a persistência na rede, escalar privilégios e realizar movimentação lateral no sistema.
  • Exploração de múltiplas instâncias: Invasores podem explorar várias instâncias do taskhost.exe para executar processos maliciosos que imitam a funcionalidade legítima do processo em segundo plano. Essa técnica pode ser usada para explorar vulnerabilidades do Windows e criar backdoors furtivos para acesso indevido.

Como o Log360 detecta o taskhost.exe criando processos filho suspeitos

O Log360 da ManageEngine utiliza regras de correlação pré-definidas para detectar processos filho suspeitos. Uma dessas regras, chamada "taskhost criando processos filho suspeitos", permite identificar processos maliciosos que se disfarçam como processos filho inofensivos. Essa regra adota os seguintes critérios de detecção.

Critérios:

(("Parent process name" ends with "Windows\System32\taskhost.exe" OR "Windows\SysWow64\taskhost.exe" OU "WINNT\system32\taskhost.exe") E ("Process name" not ends with "werfault.exe" AND "wermgr.exe" AND "WerFaultSecure.exe"))

Essa regra é acionada quando o processo pai taskhost.exe cria um processo filho que não seja werfault.exe, wermgr.exe ou WerFaultSecure.exe.

Para saber mais sobre como essa regra funciona, acesse esta página.