Seguindo com o quarto post dessa série, falarei sobre duas etapas do processo de invasão que caminham praticamente lado a lado. Similar ao que ocorreu no passo anterior, quando falei sobre execução e persistência, estas duas etapas podem acontecer simultaneamente e, mesmo que seja em momentos distintos, costumam acontecer com intervalos de tempo muito curtos entre elas.
Para manter uma estrutura similar a indicada pelo Mitre citarei primeiro a escalação de privilégios e em seguida a evasão de defesas, porém, é importante ter em mente que elas realmente podem acontecer simultaneamente, visto que várias das técnicas para escalação de privilégios também podem ser usadas para evasão de defesas e vice versa.
Estas técnicas são essenciais para os cibercriminosos pois permitem que mais informações sejam obtidas e os próximos passos do ataque ocorram. Mesmo sem ter familiaridade com a estrutura seguida pelos criminosos para realizar um ataque é possível entender a finalidade das técnicas, a escalação de privilégios bem sucedida faz com que os criminosos tenham acessos mais permissivos no alvo, permitido que eles executem ações que não normalmente são permitidas a usuários convencionais do ambiente. Já a evasão de defesas atua minando as capacidades de resposta a ações maliciosas realizadas no ambiente e, caso bem sucedida, permite que os atacantes atuem ainda mais livremente no ambiente.
Escalação de Privilégios
- Injeção de processos
Esta forma de escalação é uma das primeiras a serem aprendidas pois costuma funcionar bastante e, por já ser muito conhecida, já possui diversos mecanismos e soluções prontos para executá-la¹.
¹ = Todas as técnicas citadas neste artigo possuem diversas ferramentas já prontas para uso que realizam todas as atividades citadas de forma simples, não sendo necessário aos cibercriminosos nenhum tipo de esforço no desenvolvimento de recursos para atingir os fins citados.
Ela consiste em usar a estrutura de memória de um processo já existente e ativo no sistema do alvo para executar os comandos desejados pelo criminoso. Como esses comandos serão executados no mesmo espaço de memória do processo original eles herdarão seus privilégios que, normalmente, já são privilégios elevados.
- Contas válidas
Outra forma extremamente simples de obter mais privilégios em um ambiente é utilizar um usuário que já possua permissões mais elevadas, como o usuário administrador por exemplo. As contas podem obtidas analisando informações presentes no próprio host atacado como informações salvas no disco ou presentes na memória. Também se trata de um método de escalação simples devido ao descuido com credenciais cometido por diversos administradores.
- Abuso do mecanismo de controle de elevação de privilégios
Uma das formas de se obter mais privilégios em um alvo é se aproveitar de características do funcionamento de sistemas nativos de controle de execução de software, no caso de sistemas operacionais Windows este controle é feito pelo UAC, sigla para User Account Control (Controle de conta de usuário). Uma das formas utilizadas pelos criminosos é alterar parâmetros no computador para que softwares sistêmicos realizem atividades maliciosas, estes softwares costumam funcionar sem a interferência do UAC e poderão realizar a atividade sem que o controle os impeça.
Evasão de defesas
Como citei no início do artigo, algumas técnicas podem ser usadas para diversos fins, sendo assim neste artigo procurarei focar em pontos diferentes para que uma gama maior deles possam ser abordados.
- Mecanismos de proteção mal configurados: não seria possível iniciar o tema de evasão de defesas sem falar do erro mais comum cometido por administradores de ambiente, a má configuração de suas proteções. É essencial possuir softwares de proteção como antivírus em todos os equipamentos da rede, mas de nada adianta se qualquer usuário conseguir desabilitá-lo. Caso um dispositivo seja invadido e a proteção esteja mal configurada um criminoso precisa de apenas um comando para desinstala-la, independentemente de qual proteção o ambiente esteja usando.
- Rootkits: apesar do nome sugerir uma proximidade maior com sistemas operacionais Linux/Unix os rootkits são ameaças que permeiam todos os tipos de sistemas operacionais. Estas ameaças geralmente são desenvolvidas para atuarem em diversas partes do sistema operacional com o intuito de mascarar atividades maliciosas, seja a do próprio rootkit ou a de outros softwares usados pelos criminosos. A atuação desta ameaça pode, por exemplo, evitar que que o sistema operacional e até softwares de proteção como antivírus identifiquem conexões de rede e processos, sendo bastante utilizados para transpor defesas.
- Mudanças antes da inicialização do sistema: mesmo sem ter acesso físico ao equipamento criminosos conseguem realizar alterações em drives de inicialização ou até mesmo no firmware presente no equipamento, como a BIOS e o UEFI, para que seus códigos maliciosos sejam executados antes mesmo do sistema operacional ser iniciado. Alterações nesta etapa do processo de inicialização costumam ser difíceis de serem detectadas apenas com o sistema operacional e podem garantir que os criminosos tenham os privilégios necessários para remover quaisquer defesas presentes no ambiente.
Como se proteger
- Soluções de proteção robustas: como proteger ambientes de ameaças desenvolvidas para enganar defesas? Garantindo que essas soluções de proteção também possuam mecanismos para detecção de tentativas de evasão, assegurando-se de que essa proteção esteja em todos os hosts possíveis, permaneça sempre atualizada e adequadamente configurada.
- Gestão de acessos adequada: mesmo sendo um ponto bem abrangente traz muitos benefícios ao ambiente. Três dos pontos imprescindíveis são a varredura periódica em todos os sistemas para garantir que só existam usuários que realmente precisem acessá-los, a manutenção de uma política de senhas que assegure complexidade e troca periódica e a utilização de duplo fator de autenticação em todos os sistemas em que ele for possível (e tal proteção seja pertinente).
- Treinamento de segurança para gestores técnicos do ambiente: este é um passo além da conscientização, que idealmente deve abranger todo o ambiente, este ponto reforça a importância de que os responsáveis por manter o ambiente funcionando também levem em consideração os aspectos de segurança como melhores práticas de administração, configurações otimizadas para proteção e possíveis pontos vulneráveis.
- O mínimo privilégio possível: é interessante manter todos os usuários, sem exceções, com privilégios mínimos em seus equipamentos de trabalho, isso ajudará a impedir que um cibercriminoso possua uma gama muito grande de recursos disponíveis caso consiga comprometer o ambiente, dificultando a realização de ambas as técnicas mencionadas neste artigo.
Confira toda a série “Passos de um Ataque”: