Cargas úteis e beacons de malware: técnicas para mitigar o impacto
O primeiro artigo nesta série, mostramos como as comunicações maliciosas começam, auxiliadas pela infraestrutura do atacante e pelos beacons e cargas úteis associados. Na segundo artigo, investigamos as categorias e os tipos de cargas úteis junto com as técnicas de manipulação na memória. Na parte final desta série, vamos nos concentrar em algumas das técnicas de ofuscação usadas para disfarçar cargas úteis e examinar as técnicas de mitigação que os defensores podem empregar.
Uma métrica importante em cibersegurança é o tempo médio de detecção (MTTD), também conhecido como “tempo de detecção”. Esse é o período de tempo entre a entrada inicial de um atacante e o momento em que o ataque é detectado pela organização alvo. Uma entrada ou exploração bem-sucedida geralmente é apenas o começo. Os agentes de ameaças geralmente empregam diferentes técnicas de ofuscação para não serem detectados nas redes comprometidas.
É útil considerar as seguintes abordagens amplas de mitigação envolvendo técnicas reativas e preventivas:
1. Abordagem que prioriza a reação
- Somente detecção
- Detecção e resposta
2. Abordagem preventiva em primeiro lugar
- Apenas preventivo
- Prevenção e resposta
Sob a abordagem que prioriza a reação, somente a detecção, é o que as tecnologias como os antigos Sistemas de Detecção de Intrusão (IDS) se enquadram. Esses sistemas normalmente usavam um conjunto de assinaturas conhecidas de código malicioso ou cargas úteis para detectar ameaças. Eles são facilmente contornados alterando os hashes ou assinaturas. A detecção de ameaças evoluiu bastante desde então. As técnicas modernas de detecção incluem comportamento e heurística, aprendizado de máquina, autoaprendizado e recursos de inteligência artificial.
Com base na abordagem, detecção e resposta que priorizam a reação, inclui a capacidade de deter uma ameaça após ela ter sido detectada. Isso se baseia na capacidade de detecção de bloquear ou permitir.
Aqui, o nível de confiança do mecanismo de detecção deve ser extremamente alto para evitar falsos positivos (bloqueio de arquivos legítimos confundidos com ameaças) ou falsos negativos (permitindo que ameaças sejam confundidas com arquivos ou códigos legítimos). Com ambas as abordagens de primeiro reativo, alguma ação considerada suspeita deve acontecer primeiro antes que esses sistemas acionem alguma ação reativa.
Por outro lado, a abordagem preventiva em primeiro lugar, especificamente somente preventiva, não depende de algo que aconteça primeiro para agir. Ele tem um conjunto de regras sempre ativas sobre o que deve ser permitido ou bloqueado de qualquer maneira. É também a abordagem empregada por Segmentação Zero Trust (também conhecida como microssegmentação).
Essa abordagem também pode ser adaptativa, dependendo da tecnologia para responder nos casos em que uma resposta baseada em reatividade é necessária. Examinaremos essas duas abordagens neste artigo.
Vamos primeiro examinar algumas técnicas que os agentes de ameaças empregam para ofuscar ou ocultar suas atividades da detecção. Em seguida, examinaremos exemplos de abordagens que priorizam a reação (“detecção” e “detecção e resposta”) e a preventiva (“somente preventiva” e “prevenção e resposta”) para mitigar o impacto dos ataques de malware.
Técnicas de ofuscação
Técnicas como código personalizado, empacotamento de código (por exemplo, usando o empacotador UPX), esteganografia, execução atrasada, backdooring, codificação (Base64) e criptografia podem ser usadas por agentes de ameaças para tentar ocultar ou ofuscar cargas maliciosas.
Os agentes de ameaças também podem empregar técnicas de “viver fora da terra” para utilizar arquivos de sistema e binários já confiáveis, como Powershell ou WMI, ou podem tentar aproveitar binários e executáveis de terceiros já confiáveis.
Backdoors executáveis
Há várias técnicas que um atacante pode usar para garantir que suas cargas sejam executadas.
Uma maneira é esconder seu código malicioso dentro de um arquivo executável legítimo. Olhando para trás, para a máquina da vítima comprometida no blog anterior, notamos um putty.exe executável no usuário Downloads pasta. Putty.exe é um cliente Telnet e SSH amplamente usado.

Com o objetivo de inserir a carga maliciosa como um backdoor no putty, o atacante primeiro baixa o arquivo executável putty.exe legítimo do usuário.
.webp)
Em seguida, o atacante gera uma nova carga, mas usa a legítima putty.exe arquivo como um modelo executável para sua carga útil. Eles nomeiam o executável resultante putty_new.exe.

Agora eles podem fazer o upload desse novo executável backdoor para o sistema do usuário, conforme mostrado abaixo.

Como um movimento lateral Técnica, o invasor pode enviar esse executável para outros sistemas dentro da rede comprometida para fazer com que ainda mais usuários, sem saber, executem a carga maliciosa.

Depois que o usuário executa o putty.exe trojanizado, ele pode usar o programa normalmente. Mas, em segundo plano, a carga maliciosa é executada e faz um retorno de chamada para o ouvinte de comando e controle de ataque, conforme visto aqui.

Nos processos em execução da máquina comprometida, podemos ver o putty_new.exe processo estabeleceu uma conexão TCP (porta 443)) de volta ao atacante em app12.webcoms-meeting.com.

Codificação de carga útil
Na computação, codificação é o processo de aplicar algum algoritmo a alguns dados para alterar seu formato. A codificação pode ser útil para alterar o formato de um tipo de dados para outro para facilitar a transmissão, o armazenamento ou o uso em um sistema de destino.
Aqui está um exemplo de texto ASCII (texto normal em inglês) à esquerda, codificado em Base64 à direita. Embora os dados sejam os mesmos, o formato é completamente diferente. Se alguém receber apenas o texto codificado em Base64 desconhecido, precisará de um decodificador Base64 para revertê-lo para o texto ASCII mais familiar.

Esse recurso também é extremamente útil para que os agentes de ameaças ocultem com eficácia seus códigos maliciosos e cargas úteis para tentar evitar a detecção. A codificação dificulta a realização de análises estáticas em uma carga útil, da mesma forma que uma técnica como o empacotamento dificulta a realização da mesma análise, especialmente a detecção de cadeias de caracteres.
O exemplo a seguir mostra como a codificação pode ser usada como parte da geração de uma carga maliciosa pelo atacante.
Aqui, o algoritmo do codificador é shikata_ga_nai. A carga útil é codificada executando esse algoritmo nela em seis iterações, conforme mostrado na imagem abaixo. Isso ajuda a ofuscar aspectos da carga útil e dificulta sua detecção, especialmente por meio da análise de assinatura usando hash ou até mesmo análise estática do código e das cadeias de caracteres da carga útil.

Os agentes de ameaças também podem usar macros de documentos do Microsoft Office, Powershell scripts e outros binários e ferramentas nativos e legítimos para tentar ocultar atividades maliciosas. Empregar ferramentas e binários nativos em um sistema comprometido ou em um ambiente violado é chamado de “viver da terra”. A seguir, examinaremos alguns recursos de mitigação.
Abordagem que prioriza a reação: técnicas de detecção
As abordagens que priorizam a reação dependem da capacidade inicial de detectar atividades suspeitas ou maliciosas. Vamos explorar algumas delas.
Análise estática: análise de código
A análise estática é o processo de analisar uma parte do código de um executável em disco. Expandindo esse tipo de análise a partir do primeiro artigo, uma análise estática adicional mostra alguns indicadores úteis adicionais. Esse arquivo de carga útil faz referência a certas cadeias de caracteres e bibliotecas arriscadas e chama algumas funções do sistema que seriam interessantes para uma investigação de atividades suspeitas.

Análise de assinatura: Antivírus
A análise de assinatura no nível básico envolve pegar um hash ou assinatura do arquivo ou da carga útil de interesse e compará-lo a um grande banco de dados de assinaturas conhecidas e detectadas anteriormente. Essa é a abordagem adotada pelas soluções antivírus tradicionais. O exemplo abaixo mostra a carga maliciosa em estágios do primeiro artigo verificado em um grupo de mecanismos de verificação antivírus.

Análise dinâmica: Sandboxing
A análise dinâmica envolve o monitoramento do comportamento para detectar ações maliciosas. Aqui, a carga útil ou o arquivo de interesse é executado em um ambiente de sandbox para estudar seu comportamento e compará-lo a um conjunto de critérios bons ou ruins. Cada mau comportamento é avaliado em relação a um peso para tomar uma decisão final de detecção maliciosa ou não maliciosa.
Uma sandbox pode ser um aplicativo, como um navegador em execução e monitorado em um espaço protegido, um sistema operacional em execução dentro de uma máquina virtual ou uma emulação completa de componentes de software e hardware do computador, como disco, memória e CPU — sendo o último o mais difícil de ser evitado pelo malware.
O exemplo abaixo mostra um subconjunto das atividades suspeitas em relação às quais um executável ou uma carga útil será avaliada após o sandbox ou a emulação.

As abordagens que priorizam a reação são importantes e quase todas as organizações têm alguma forma delas em suas redes. Mas, como tudo em segurança, essa abordagem precisa ser complementada com outras camadas de proteção para uma estratégia de segurança eficaz, aplicando a filosofia de segurança em profundidade. Como a detecção às vezes falha ou pode ser contornada, abordagens preventivas são necessárias.
Abordagem preventiva em primeiro lugar
Conforme descrito anteriormente, a abordagem preventiva em primeiro lugar geralmente se enquadra em “somente preventiva” e “prevenção e resposta”. Nas próximas etapas, primeiro examinaremos as ações iniciais de descoberta que um agente de ameaças pode realizar para encontrar outras máquinas acessíveis pela máquina que ele comprometeu. Em seguida, examinaremos as etapas que os defensores podem tomar para segmentar sistemas na rede, mesmo aqueles na mesma sub-rede, para mitigar o risco de movimento lateral.
Segmentação preventiva de Zero Trust
Na sequência do ofuscado putty.exe carga útil, um agente de ameaças pode continuar um ataque realizando outra verificação de descoberta na rede usando a máquina de ponto pivô comprometida. Os agentes de ameaças estão particularmente interessados nos caminhos comuns de comunicação do movimento lateral que vive fora da terra, como Telnet, SSH, PEQUENO E PEQUENO e RDP para não se destacar na rede.
Podemos ver que alguns desses caminhos de comunicação estão abertos na sub-rede em que o invasor comprometeu com êxito uma máquina. Essa verificação básica fornece uma boa indicação de que os sistemas Windows e Linux estão na rede. Os sistemas Windows normalmente têm portas SMB abertas e os sistemas Linux normalmente têm SSH aberto.

Considerando uma abordagem proativa de mitigação que prioriza a prevenção, uma tecnologia como Núcleo Illumio fornece visibilidade extremamente útil. O Illumio Core pode mostrar claramente as ações do invasor, mesmo no modo “somente monitor” — no caso abaixo, uma verificação de um para muitos da máquina dinâmica para o resto dos sistemas na sub-rede de destino. O mapa de visibilidade do Illumio Core, conhecido como Illumination, mostra uma visão comercial da rede da organização. Também podemos ver que esses sistemas estão espalhados por vários locais.

Na mapa de Illumio, a comunicação da varredura indica que ela é originária do Sede estações de trabalho destinadas a Datacenter-1. Identificar informações úteis e acionáveis é fácil porque os sistemas estão todos associados aos rótulos Illumio (tags ou metadados) para enriquecer o mapa. Essas mesmas informações serão usadas posteriormente para definir políticas sem depender de construções de rede, como endereços IP, VLANs (LANs virtuais) ou zonas, garantindo que as políticas de segurança se adaptem automaticamente às mudanças.
Outro recurso útil é realizar proativamente uma auditoria da rede usando a ferramenta investigativa e de análise de risco da Illumio. Isso pode nos mostrar os caminhos de risco aos quais essa rede é suscetível, como os caminhos comumente usados por malware e ransomware para se espalhar em uma rede comprometida. Na verdade, não precisamos esperar por um incidente cibernético antes de agir. Uma análise de risco preventiva recomendada nos fornecerá de forma clara e fácil essas informações, conforme demonstrado abaixo.

Nesta visão investigativa acima, o Consumidor o lado mostra a fonte e o Provedor O lado mostra o destino das comunicações. Também podemos ver as portas usadas e, na extrema direita, os processos associados a essa comunicação. Se necessário, podemos detalhar ainda mais os nomes das máquinas individuais.
Como exemplo, podemos decidir tomar uma ação sempre ativa, somente preventiva, colocando controles baseados em localização entre nossos Sede estações de trabalho e nossas Datacenter-1 cargas de trabalho. Isso é conhecido como Limite de fiscalização. Ele simplesmente bloqueia todas as comunicações entre as estações de trabalho e as cargas de trabalho ou servidores, conforme definido.

Outra abordagem será usar a abordagem de política de lista de permissões (negação padrão) do Zero Trust. Seja qual for a abordagem que decidirmos adotar, depois de aplicar essa ação preventiva, outra verificação de descoberta mostra que os caminhos de comunicação que foram abertos dentro da rede agora estão todos sendo exibidos como filtrados.

De volta ao Illumio mapa de visibilidade, essas linhas de comunicação agora estão vermelhas, indicando que o escaneamento não foi apenas monitorado, mas bloqueado desta vez.

Isso significa que reduzimos com sucesso nosso risco de movimento lateral de forma proativa em vários sistemas executados em plataformas diferentes ao mesmo tempo, tudo a partir de um único ponto de gerenciamento. Ainda podemos ir mais longe com esse sistema específico, aprimorando a abordagem somente preventiva com prevenção e resposta para isolar esse sistema para uma investigação mais aprofundada.
Prevenção e resposta: segmentação adaptativa de Zero Trust
Acabamos de ver como uma abordagem preventiva, como no caso da segmentação Zero Trust, pode garantir uma política de segurança sempre ativa para evitar a propagação de malware e outros ataques.
No entanto, talvez já tenha ocorrido um incidente ao qual precisamos responder em alguns casos. Pode ser que ainda não tenhamos habilitado nossa política de segurança preventiva. É aqui que a mesma tecnologia Illumio Core pode ser usada para reagir e responder, ainda utilizando uma abordagem preventiva, mas com uma capacidade adaptativa adicional.
Nos exemplos que mostramos até agora, você notará que todas as políticas foram definidas por metadados ou rótulos, não por construções de rede ou informações de IP. Esses rótulos também são usados para agrupar logicamente as cargas de trabalho, servidores e estações de trabalho.
Podemos ver na captura de tela abaixo que já temos uma política chamada “Ransomware-Quarantine” definida.

Agora precisamos mudar um ou mais rótulos quadridimensionais do sistema de interesse para o rótulo de quarentena mostrado na página de inventário da carga de trabalho abaixo.

Isso pode ser feito manualmente ou automaticamente. Ele também pode ser acionado por meio de um manual SoC (Security Operations Center) ou SOAR, conforme necessário. Como resultado dessa ação, isolaremos automaticamente esse sistema específico e interromperemos toda a comunicação desse sistema com o resto da rede. No entanto, ainda permitiremos que as comunicações gerenciais monitorem e investiguem suas ações.
A partir do exemplo abaixo, o sistema infectado agora foi isolado em sua própria bolha de quarentena, longe do original Sede localização e grupos de aplicativos associados. Ele é efetivamente isolado do resto de nossos sistemas e até mesmo da Internet, conforme indicado pelas linhas vermelhas de comunicação.

No entanto, ainda podemos monitorar claramente todas as ações desse sistema com segurança e continuar quaisquer investigações que precisemos realizar neste sistema.
Além disso, para servidores e cargas de trabalho essenciais ou “incríveis”, podemos aplicar outras configurações de melhores práticas de segurança, como:
- Restringindo comunicações externas para apenas uma lista de destinos aprovados
- Usando interno DNS servidores que são altamente monitorados e segmentados
- Normal vulnerabilidade digitaliza como parte de uma análise geral vulnerabilidade postura gerencial
Todos esses recursos podem ser incorporados à mesma solução Illumio Core para aprimorar sua postura geral de segurança e reforçar os investimentos existentes em segurança de detecção e resposta.
Conclusão
Para todas as técnicas de ameaças descritas nesta série, e mesmo para aquelas que ainda não foram descobertas, o objetivo do atacante é se mover lateralmente pelo ambiente sem ser detectado. Como a maioria das organizações já terá alguma forma de tecnologia reativa pioneira, como antivírus, detecção e resposta de terminais ou sandboxing, é crucial também “trancar as portas” com uma tecnologia preventiva sempre ativa que tenha recursos de resposta adaptativa.
Para saber mais sobre os recursos de contenção e visibilidade de malware e ransomware da Illumio:
- Leia”Combata rapidamente o ransomware com limites de fiscalização.”
- Confira nossa série de webinars em três partes,”O ransomware acontece. Nós impedimos que ele se espalhe.”
- Experimente você mesmo o Illumio — inscreva-se em laboratórios práticos gratuitos, A experiência Illumio.