Perceber que um vetor de ataque está sendo executado em sua rede bem debaixo do seu nariz pode ser chocante. Você fez sua parte implementando o que pareciam defesas de segurança eficazes, mas o invasor conseguiu contorná-las mesmo assim. Como isso foi possível?
Eles podem ter implantado injeção de processo inserindo códigos maliciosos em seus processos legítimos. Como funciona a injeção de processo e como você pode evitá-la?
O que é injeção de processo?
A injeção de processo é um processo pelo qual um invasor injeta códigos maliciosos em um processo legítimo e ativo em uma rede. Prevalente com ataques de malware, permite que os cibercriminosos infectem os sistemas das formas mais despretensiosas. Uma técnica avançada de ataque cibernético, o intruso insere malware em seus processos válidos e desfruta dos privilégios desses processos.
Como funciona a injeção de processo?
Os tipos de ataques mais eficazes são aqueles que podem ser executados em segundo plano sem levantar suspeitas. Normalmente, você pode detectar uma ameaça de malware descrevendo e examinando todos os processos em sua rede. Mas detectar a injeção de processo não é tão fácil porque os códigos se escondem sob as sombras de seus processos legítimos.
Como você colocou seus processos autorizados na lista de permissões, seus sistemas de detecção os certificarão como válidos, sem indicação de que algo está errado. Os processos injetados também ignoram a análise forense de disco porque os códigos maliciosos são executados na memória do processo lícito.
O invasor usa a invisibilidade dos códigos para acessar todos os aspectos de sua rede que os processos legítimos sob os quais eles estão ocultos podem acessar. Isso inclui certos privilégios administrativos que você não concederia a ninguém.
Embora a injeção de processos possa facilmente passar despercebida, sistemas de segurança avançados podem detectá-los. Portanto, os cibercriminosos aumentam o nível ao executá-lo das maneiras mais despretensiosas que esses sistemas irão ignorar. Eles usam processos básicos do Windows como cmd.exe, msbuild.exe, explorer.exe, etc. para lançar tais ataques.
3 Técnicas de Injeção de Processo
Existem diferentes técnicas de injeção de processo para diferentes propósitos. Como os agentes de ameaças cibernéticas têm muito conhecimento sobre vários sistemas e sua situação de segurança, eles implantam a técnica mais adequada para aumentar sua taxa de sucesso. Vejamos alguns deles.
1. Injeção de DLL
A injeção de DLL (Dynamic Link Library) é uma técnica de injeção de processo na qual o hacker usa um biblioteca de vínculo dinâmico para impactar um processo executável, forçando-o a se comportar de maneiras que você não pretendia ou esperar.
O ataque injeta o código com a intenção de substituir o código original em seu sistema e controlá-lo remotamente.
Compatível com vários programas, a injeção de DLL permite que os programas usem o código várias vezes sem perder a validade. Para que um processo de injeção de DLL seja bem-sucedido, o malware deve conter dados do arquivo DLL contaminado em sua rede.
2. PE Injeção
Uma execução portátil (PE) é um método de injeção de processo em que um invasor infecta um processo válido e ativo em sua rede com uma imagem PE prejudicial. É mais simples do que outras técnicas de injeção de processo, pois não requer habilidades de codificação de shell. Os invasores podem facilmente escrever o código PE em C++ básico.
A injeção PE é sem disco. O malware não precisa copiar seus dados em nenhum disco antes do início da injeção.
3. Processo de esvaziamento
Process Hollowing é uma técnica de injeção de processo em que, em vez de usar um processo legítimo existente, o invasor cria um novo processo, mas o infecta com código malicioso. O invasor desenvolve o novo processo como um arquivo svchost.exe ou bloco de notas. Dessa forma, você não achará suspeito, mesmo que o descubra em sua lista de processos.
O novo processo malicioso não começa a ser executado imediatamente. O cibercriminoso o torna inativo, conecta-o ao processo legítimo e cria espaço para ele na memória do sistema.
Como você pode evitar a injeção de processo?
A injeção de processo pode destruir toda a sua rede, pois o invasor pode ter o nível mais alto de acesso. Você torna o trabalho deles muito mais fácil se os processos injetados estiverem a par de seus ativos mais valiosos. Este é um ataque que você deve se esforçar para evitar se não estiver pronto para perder o controle de seu sistema.
Aqui estão algumas das maneiras mais eficazes de evitar a injeção de processo.
1. Adote a lista de permissões
A lista branca é o processo de listando um conjunto de aplicativos que podem entrar na sua rede com base na sua avaliação de segurança. Você deve ter considerado os itens em sua lista de permissões inofensivos e, a menos que o tráfego de entrada caia na cobertura de sua lista de permissões, eles não podem passar.
Para evitar a injeção de processo com lista branca, você também deve adicionar a entrada do usuário à sua lista branca. Deve haver um conjunto de entrada que tenha permissão para passar por suas verificações de segurança. Portanto, se um invasor fizer qualquer entrada fora de sua jurisdição, o sistema os bloqueará.
2. Monitorar Processos
Na medida em que uma injeção de processo pode ignorar algumas verificações de segurança, você pode revertê-la prestando muita atenção ao comportamento do processo. Para fazer isso, você deve primeiro delinear o desempenho esperado de um processo específico e depois compará-lo com seu desempenho atual.
A presença de códigos maliciosos em um processo causará algumas alterações, por menores que sejam em um processo. Normalmente, você ignoraria essas mudanças porque elas são insignificantes. Mas quando você estiver interessado em descobrir diferenças entre o desempenho esperado e o desempenho atual por meio do monitoramento de processos, perceberá a anomalia.
3. Codificar saída
Os atores de ameaças cibernéticas costumam usar Cross-Site Scripting (XSS) para injetar dados perigosos códigos em uma injeção de processo. Esses códigos se transformam em scripts executados em segundo plano na sua rede sem o seu conhecimento. Você pode impedir que isso aconteça verificando e limpando todas as entradas suspeitas. Por sua vez, eles serão exibidos como dados e não códigos maliciosos como pretendido.
A codificação de saída funciona melhor com a codificação HTML — uma técnica que permite codificar a saída variável. Você identifica alguns caracteres especiais e os substitui por alternativas.
Evite a injeção de processos com segurança baseada em inteligência
A injeção de processo cria uma cortina de fumaça que encobre códigos maliciosos dentro de um processo válido e operacional. O que você vê não é o que você recebe. Os invasores entendem a eficácia dessa técnica e a usam continuamente para explorar os usuários.
Para combater as injeções de processo, você precisa ser mais esperto que o invasor, não sendo tão óbvio com suas defesas. Implemente medidas de segurança que serão invisíveis na superfície. Eles vão pensar que estão jogando com você, mas sem que eles saibam, é você quem os joga.