Seguindo com o terceiro artigo da série, abordarei dois pontos cruciais para os criminosos, execução e persistência. Lembrando que, como citei no último passo, agora os criminosos já possuem acesso ao ambiente e precisam realizar os próximos passos para darem continuidade ao ataque. A ordem em que estes dois passos acontecerão em um ataque real dependerá da percepção dos criminosos em relação ao ambiente mas, em geral, eles sempre acontecem.

Tanto a execução como a persistência são duas etapas bem extensas com diversas possibilidades para cada uma delas, sendo assim abordarei alguns dos pontos que costumam ser amplamente utilizados por cibercriminosos no mundo todo.

Execução

Como o nome sugere trata-se da execução de códigos maliciosos dentro do ambiente do alvo, estes códigos podem ser destinados a diversos tipos de atividades maliciosas, mas, invariavelmente, precisam ser interpretados adequadamente pelo sistema e é aí que entram as diferentes possibilidades .

  • Interpretadores de scripts e comandos: normalmente sistemas operacionais possuem seus próprios interpretadores de comando e scripts nativos, e estas ferramentas também podem ser usadas para fins maliciosos por serem muito versáteis podem trazer apenas informações simples do sistema alvo, como o endereço IP da rede interna, até ações mais robustas como permitir uma conexão reversa com os cibercriminosos (reverse shell). Mesmo sendo nativo do sistema operacional a utilização destes interpretadores de comando costuma ser negligenciada pelos gestores de rede e segurança.
  • Os interpretadores mais populares são, Command Prompt/CMD (Windows), Powershell (Windows), Bash (Linux) e Terminal (Mac).
  • Ferramentas de implementação de softwares: outra forma extremamente eficiente para executar códigos, e que normalmente já possui privilégios de administrador, são as soluções de distribuição interna de software. Tais ferramentas são usadas por administradores de ambientes para facilitar a gestão dos softwares de seus ativos, elas podem ser ferramentas dedicadas a este fim ou um recurso de implementação presente em outras soluções. Seja qual for o cenário quando cibercriminosos conseguem acesso a esse tipo de recursos o nível de comprometimento da rede escala bastante pois eles podem utilizá-lo para inserir o software malicioso em todos os hosts do ambiente com pouquíssimo esforço.
  • Execução por parte do usuário: claro que uma técnica que se aproveite de engenharia social não poderia ficar de fora. Muito similar ao que acontece nos phishings, os cibercriminosos enviam um artefato à vítima para que a mesma o abra e lhes conceda o acesso desejado. O artefato pode ser um link ou um arquivo, eles podem conter diretamente o conteúdo malicioso ou serem apenas mais um estágio para o download do código malicioso no ambiente.

Dentre as possibilidades de obtenção de acesso os criminosos podem conduzir as vítimas a habilitar algum recurso/serviço que seja importante para o ataque ou propagar arquivos em pastas compartilhadas para que outros usuários da rede também executem o código malicioso.

Persistência

Como comentei, seja antes ou depois do passo da execução do código, costuma ser interessante para os criminosos ter um meio de acessar novamente o ambiente, existem formas extremamente simples de realizar essa etapa e mesmo sendo simples são extremamente eficientes. Me aterei às formas clássicas e quase sempre efetivas para realizar a persistência, mas vale lembrar que muitos outros métodos podem ser usados.

  • Modificação de Boot e agendamento de tarefas – quando se estuda testes de invasão esta costuma ser a primeira técnica de persistência aprendida pois é extremamente simples. Com um comando razoavelmente curto é possível fazer a modificação da inicialização do sistema o a criação de um agendamento de tarefas. A depender do tipo de acesso pretendido pelo criminoso o agendamento de tarefas se mostra mais eficiente pois tende a ser executado mais vezes que a inicialização do sistema.
  • Extensões de browser: outra forma para se estabelecer persistência é através de extensões maliciosas instaladas no navegador. Extensões são softwares que costumam agregar alguma funcionalidade no momento da navegação, apesar de diversas extensões maliciosas serem usadas para roubar clicks, acessar propagandas e realizar redirecionamento de tráfego, os softwares maliciosos não se limitam a isso. Elas podem ser programadas para executarem códigos JavaScript que baixam e executam os softwares necessários para que o ataque continue.
  • Obtenção de contas válidas ou criação de contas novas: similar à criação de tarefas agendadas, com dois simples comandos cibercriminosos podem criar uma conta nova e atribuírem a ela direitos de administrador. A obtenção de usuários já existentes costuma ser uma etapa mais complexa pois além de saber o nome do usuário, o que é bem simples, é necessário obter sua senha. A obtenção da senha costuma ser realizada com softwares que fazem dump da memória, por vezes a senha é exibida em texto claro, mas normalmente o criminoso obtém apenas hash e precisa realizar o processo de quebra de senha, o que torna o processo mais demorado.
  • Realizando estas duas etapas com sucesso os cibercriminosos asseguram o controle sobre o ambiente e, a menos que eventos fora da normalidade ocorram, isso se manterá por quanto tempo eles quiserem. Para evitar que eles tenham sucesso separei algumas dicas de segurança que são passiveis de serem usadas independentemente de qual seja a estrutura do ambiente a ser protegido

Como se proteger

  • Controle o acessos a comandos: impedir que usuários não relacionados a áreas de gestão de TI acessem determinados comandos pode trazer um incremento significativo de segurança em caso de incidentes. Garanta que apenas os responsáveis consigam acessar comandos administrativos em todos os hosts.
  • Realize a gestão adequada dos acessos: outro ponto crucial é o controle de acesso a sistemas. É interessante configurar permissões de acessos para que sejam mais restritivas, evitando sempre que possível utilizar permissionamento do tipo “todos os usuários logados podem acessar esse sistema”. Foque na segregação de atividades e grupos de acesso, isso evitará que criminosos em posse de contas de usuários não administrativos consigam acessar sistemas vitais para o ambiente.
  • Realize campanhas de conscientização: como citei mais acima neste artigo e nos passos anteriores, a conscientização é essencial, soluções de proteção são vitais a qualquer ambiente, isso é invariável, ainda assim é necessário instruir a todos os usuários a não se deixarem levar pela curiosidade de abrir um arquivo chamado “Cargos e Salários” que apareceu repentinamente em um local qualquer do computador ou da rede. E sim, essa é uma técnica real usada por criminosos.
  • Tenha uma proteção em todos os hosts do ambiente: mesmo após a conscientização eventualmente algum comportamento malicioso poderá acontecer, para evitar que ele seja bem-sucedido é necessário proteger todo o ambiente com o máximo de camadas de segurança possível. Do notebook do estagiário ao servidor mais crítico da rede, todos eles precisam ter uma proteção instalada, atualizada e configurada para barrar ameaças.
  • Só o a equipe de tecnologia instala softwares: esse item é o que, ao longo da minha carreira, mais vi ser negligenciado. Este ponto se refere a gestão adequada das permissões que cada usuário tem e, quando o tema é segurança da informação, quanto menos permissões melhor. A permissão instalação de softwares é uma das piores pois em caso de comprometimento de ambiente o equipamento que tiver estas permissões pode se transformar rapidamente em uma fonte de desenvolvimento de malware para os criminosos. A gestão adequada dos privilégios é essencial.

Acompanhe nosso blog para não perder os próximos passos dessa série.

Confira toda a série “Passos de um Ataque”: