Leve-me ao seu controlador de domínio: proteções e mitigações usando as ferramentas Zero Trust
Em parte 1 desta série de blogs, analisamos como detecção métodos podem ser usados em um compromisso inicial. O segundo mostrou um exemplo de roubo de identidade usando técnicas de pass-the-hash combinadas com ferramentas de acesso remoto para movimento lateral. Nesta parte final, veremos como mitigar o movimento lateral. Já discutimos o exemplo prático das duas abordagens complementares que permitem o movimento lateral: no nível do aplicativo e no nível da rede.

Deve ficar claro que, por nível de rede, queremos dizer comunicação de host a host pela rede, não necessariamente dispositivos de rede, como switches ou roteadores. Um host pode ser uma carga de trabalho, como uma máquina controladora de domínio, sendo a máquina do servidor de banco de dados física, virtual ou até mesmo em contêineres. O nível do aplicativo também se refere ao que acontece dentro do próprio host. Por exemplo, binários em disco, processos na memória, ações de registro etc.
Durante o movimento lateral discutido no blog anterior, a técnica pass-the-hash habilitada para Mimikatz foi usada dentro do sistema operacional no nível do aplicativo, recuperando credenciais em hash da memória de processo Windows LSASS.

O token de acesso elevado derivado desse ataque foi então usado para permitir o acesso remoto usando a ferramenta PAExec que aproveita o Windows SCM.

Analisando essa sequência de ataque específica em relação aos dois níveis descritos acima, o nível de aplicativo do sistema teria que evitar primeiro o uso do Mimikatz ou, caso contrário, o PaExec, com base na negação padrão usando um lista de permissões de aplicativos. Como alternativa, teríamos que detectar a inicialização do processo na memória, por exemplo, monitorando DLLs carregadas ou chamadas de API. O nível da rede precisaria impor a microssegmentação no nível do host para evitar a movimentação entre sistemas, mesmo que eles estivessem na mesma sub-rede ou VLAN. A linha de base do tráfego também possibilitará a detecção de quaisquer anomalias, como a exfiltração de dados.
A imagem abaixo mostra a análise estática dos binários Mimikatz e PaExec e de algumas das dependências do sistema, como DLLs que são importadas.

O processo em execução na memória nos mostra a árvore de processos do cmd que foi usada tanto para o Mimikatz pass-the-hash quanto para a conexão PaExec subsequente com o controlador de domínio.

A perícia no sistema de destino, neste caso o controlador de domínio, também mostrará o binário usado no controlador de domínio para facilitar o gerenciamento remoto e, nesse caso, o movimento lateral.

E a imagem abaixo também mostra o serviço associado.

Por padrão, ele usa a convenção de nomenclatura padrão para os nomes de processos binários e resultantes. É claro que isso pode ser alterado por um agente de ameaças.
Portanto, é importante que as abordagens de mitigação levem em consideração esses níveis de ataque — proteções que analisam as ameaças no nível do aplicativo e proteções que analisam a segurança no nível da rede com foco na comunicação de host a host. Isso significará que a segurança permanece e se move com o host ou a carga de trabalho que está sendo protegida (por exemplo, o controlador de domínio máquina como carga de trabalho e as máquinas de endpoint que acessam o controlador de domínio).
Aplicando esse conceito de dois níveis ao domínio e aos servidores e clientes associados, o infográfico abaixo mostra algumas das importantes considerações de segurança para se proteger contra ameaças aos controladores de domínio e outros sistemas de domínio, conforme discutido nesta série do blog.

Um bom ponto de partida para obter informações é Melhores práticas da Microsoft para proteger o Active Directory, que detalha abordagens de bom senso, como não fazer login em computadores inseguros com contas privilegiadas ou navegar na Internet normalmente com uma conta altamente privilegiada ou até mesmo diretamente dos controladores de domínio. O gerenciamento eficaz de privilégios e as listas de permissões de aplicativos também podem automatizar a restrição do uso de contas privilegiadas em todo o domínio e impedir o uso de aplicativos não autorizados.
Como exemplo, no nível do aplicativo de proteção do sistema, o Endpoint Detection and Response (EDR), combinado com as soluções de gerenciamento de identidades e privilégios baseadas no Zero Trust, pode ajudar a lidar com ameaças no nível do aplicativo no sistema de domínio, como roubo de credenciais e manipulação de memória LSASS, usando ferramentas como Mimikatz ou Rubeus (mesmo que sejam executadas somente na memória e não usem disco rígido).
O exemplo abaixo mostra esse exemplo de uma solução de EDR, o CrowdStrike Falcon, detectando uma série de comportamentos maliciosos em nível de aplicativo e sistema.

No nível da rede do sistema, como no controlador de domínio e outros sistemas de domínio, soluções de microsegmentação baseadas em host, como Núcleo Illumio pode fornecer segurança e microssegmentação Zero Trust. Illumio Edge estende essa proteção aos endpoints dentro e fora do domínio. Isso é especialmente verdadeiro em casos de vulnerabilidades de dia zero e em casos em que as ameaças são ignoradas pela segurança de endpoints em nível de aplicativo e sistema.
A maioria das redes modernas é heterogênea, complexa e estendida, especialmente nesta era de trabalho remoto. Como resultado disso, não é particularmente fácil garantir a segurança sem primeiro ter uma estratégia focada. Especialmente no caso de redes grandes, pode parecer quase impossível obter uma segurança eficaz devido ao grande número de sistemas diferentes e complexos com políticas de segurança variadas. Portanto, é importante voltar ao básico para:
- Saiba o que você tem
- Saiba o que eles fazem
- Proteja-os
Isso é especialmente verdadeiro quando as cargas de trabalho são armazenadas no data center ou na nuvem. A maneira mais fácil e eficaz de saber o que você tem é primeiro agrupar os sistemas por atributos específicos, como localização, ambiente e aplicação. Isso facilitará a identificação de sistemas e grupos de aplicativos críticos, serviços principais usados entre grupos e outros sistemas e aplicativos menos cruciais. Naturalmente, o foco principal estará então nos ativos mais críticos, nos aplicativos mais importantes e nos principais serviços.

A segurança efetiva não existe isoladamente, portanto, qualquer abordagem deve levar em conta estas considerações fundamentais:
- Visibilidade
- Integração
- Desempenho em escala
- Eficácia
O primeiro ponto importante é a visibilidade. Conforme mostrado no exemplo abaixo da solução Core da Illumio para proteção de carga de trabalho Zero Trust, o mapeamento da dependência de aplicativos e a exibição de diferentes grupos de aplicativos e suas conexões abrem caminho para a definição e o provisionamento informados de políticas diretamente em sistemas hospedeiros, como controladores de domínio, servidores de banco de dados e outros sistemas de carga de trabalho essenciais no domínio — físicos, virtuais, contêineres ou na nuvem. Isso significa que a microssegmentação pode ser aplicada até mesmo em um ambiente plano e abandonado, com sistemas que abrangem diferentes localizações geográficas e existem em diferentes plataformas. Isso ajuda a saber o que seus sistemas fazem na rede. O exemplo abaixo mostra os grupos de aplicativos e suas relações de tráfego em um mapa de dependência de aplicativos.

Essas informações úteis em nível de sistema também podem ser integradas aos investimentos de segurança existentes, como SIEMs, scanners de vulnerabilidade ou CMDBs. No exemplo abaixo, as informações da solução de microssegmentação baseada em host são inseridas em uma solução de análise de segurança ou SIEM. Este exemplo mostra a integração com o Splunk SIEM:

E neste segundo exemplo, com o QRadar:

Isso significa que novas soluções podem ser combinadas com investimentos em segurança existentes para proteger os sistemas gerais do domínio. O desempenho e a eficácia das soluções de segurança em grande escala também devem ser uma consideração importante para que a segurança possa ser ampliada ou reduzida, tanto em ambientes fixos quanto ágeis, como contêineres ou migrações para a nuvem.
Uma vez que tudo esteja pronto, é fácil definir políticas de segurança consistentes em todos os sistemas para monitorar, detectar e evitar comportamentos anômalos. A imagem abaixo mostra os diferentes tipos de políticas de microssegmentação que podem ser aplicadas com base em padrões de tráfego em tempo real de host para host, que é o nível da rede.

Em versões mais recentes do Windows, como o Windows 10 e o Server 2016, a auditoria para o evento 4768 - um tíquete de autenticação Kerberos (TGT) foi solicitada e para o evento 4769 - tíquete de serviço Kerberos foi solicitada, e a correlação subsequente pode apontar para o início dos ataques do bilhete dourado ou prateado. A Microsoft também implementou novas proteções, como o Credential Guard, que visa proteger contra o despejo de credenciais. No caso de ocorrer um incidente cibernético, é importante que um estratégia de resposta a incidentes cibernéticos já está em vigor.
As proteções em nível de aplicativo e de rede devem ser sustentadas por um 'presumir violação“estratégia, para que, em geral, a caça ativa de ameaças, apoiada por análises, monitoramento contínuo e detecção, esteja sempre em vigor de forma automatizada e estruturada.