Rastreando uma Cadeia de Eliminação do Ransomware Akira Através de Logs de Perímetro e Endpoint
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumo
O artigo descreve uma recente intrusão ligada à operação de ransomware Akira. Os atacantes obtiveram acesso inicial forçando a senha de uma conta desativada de SSL VPN local, então prosseguiram para descoberta de credenciais, Kerberoasting e movimento lateral via RDP. Antes de iniciar a criptografia, eles limparam logs e removeram cópias de sombra. Notavelmente, toda a sequência foi visível através dos dados de syslog do firewall e logs EVTX do Windows, sem depender de ferramentas de detecção de endpoint. O relatório destaca como a combinação de telemetria de perímetro e de endpoint pode expor atividades de ransomware em seus estágios iniciais.
Investigação
A investigação baseou-se exclusivamente em logs de firewall de SSL VPN e exportações de logs de eventos do Windows coletadas de controladores de domínio e servidores membros. IDs de eventos, incluindo 4624, 4688, 4769, 1102, e 7036 foram correlacionados para reconstruir toda a cadeia de ataque, desde o acesso inicial até o impacto final. As técnicas observadas incluíram enchimento de credenciais, descoberta de domínio, Kerberoasting, autenticação RDP, limpeza de logs e exclusão de cópias de sombra. Nenhuma imagem de memória ou telemetria de EDR foi necessária para mapear a intrusão.
Mitigação
O relatório recomenda aumentar a segurança de acesso remoto, aplicar MFA, remover contas desativadas das listas de acesso do firewall e reforçar as políticas de bloqueio de autenticação. Também aconselha habilitar auditoria detalhada de processos com o ID de Evento 4688 em todos os sistemas, aumentar a retenção de logs de segurança e encaminhar logs críticos para armazenamento externo. O conteúdo de detecção deve cobrir especificamente tickets Kerberos baseados em RC4, vssadmin exclusão de cópias de sombra, e comandos PowerShell inesperados utilizando -EncodedCommand. A sincronização de tempo consistente em toda a infraestrutura também é essencial para uma correlação confiável.
Resposta
Quando qualquer um dos indicadores identificados aparecer, os respondentes devem isolar imediatamente a conta VPN comprometida e colocar em quarentena os sistemas afetados. Os logs relevantes do firewall e EVTX devem ser preservados, as credenciais resetadas, contas comprometidas desativadas, e cópias de sombra restauradas a partir de backups limpos onde disponíveis. Uma revisão forense completa deve ser realizada para identificar qualquer atividade de persistência ou continuidade, enquanto os procedimentos de resposta a ransomware são ativados. As partes interessadas devem ser informadas prontamente, e a divulgação pública deve ser considerada quando necessário.
graph TB %% Class definitions classDef phase fill:#ffcc99 classDef tool fill:#c2f0c2 %% Node definitions phase_initial_access[“<b>Fase</b> – Acesso inicial<br/><b>Técnica</b> – T1133 Serviços remotos externos<br/><b>Descrição</b>: Credential stuffing contra VPN SSL usando uma conta local comprometida.”] class phase_initial_access phase tech_valid_accounts[“<b>Técnica</b> – T1078 Contas válidas<br/><b>Descrição</b>: Uso de credenciais roubadas para login na VPN.”] class tech_valid_accounts phase phase_discovery[“<b>Fase</b> – Descoberta<br/><b>Técnica</b> – T1482 Descoberta de relações de confiança de domínio<br/><b>Descrição</b>: Enumeração de relações de confiança usando nltest.”] class phase_discovery phase tech_account_discovery[“<b>Técnica</b> – T1087 Descoberta de contas<br/><b>Descrição</b>: Enumeração de grupos e usuários via net.exe e whoami.”] class tech_account_discovery phase phase_credential_access[“<b>Fase</b> – Acesso a credenciais<br/><b>Técnica</b> – T1558.003 Kerberoasting<br/><b>Descrição</b>: Solicitação de tickets de serviço RC4 para quebrar senhas de contas de serviço.”] class phase_credential_access phase phase_lateral_movement[“<b>Fase</b> – Movimento lateral<br/><b>Técnica</b> – T1021.001 Serviços remotos RDP<br/><b>Descrição</b>: Uso de RDP para movimentação lateral para servidores e controladores de domínio.”] class phase_lateral_movement phase phase_persistence[“<b>Fase</b> – Persistência e escalada de privilégios<br/><b>Técnica</b> – T1136 Criação de conta<br/><b>Descrição</b>: Criação de conta de serviço em OU não padrão e adição a grupos privilegiados.”] class phase_persistence phase phase_execution[“<b>Fase</b> – Execução<br/><b>Técnica</b> – T1059.001 PowerShell<br/><b>Descrição</b>: Execução de scripts PowerShell com -EncodedCommand.<br/><b>Técnica</b> – T1059.003 Windows Command Shell<br/><b>Descrição</b>: Uso de cmd.exe para vários comandos.”] class phase_execution phase phase_defense_evasion[“<b>Fase</b> – Evasão de defesa<br/><b>Técnica</b> – T1070.001 Limpeza de logs do Windows<br/><b>Descrição</b>: Exclusão de logs do Windows.<br/><b>Técnica</b> – T1562 Comprometimento de defesas<br/><b>Descrição</b>: Parada de serviços de segurança usando sc.exe ou net stop.”] class phase_defense_evasion phase phase_impact[“<b>Fase</b> – Impacto<br/><b>Técnica</b> – T1490 Impedir recuperação do sistema<br/><b>Descrição</b>: Exclusão de shadow copies com vssadmin.<br/><b>Técnica</b> – T1565.001 Manipulação de dados armazenados<br/><b>Descrição</b>: Criptografia de arquivos em disco.”] class phase_impact phase tool_ssl_vpn[“<b>Ferramenta</b> – Cliente VPN SSL”] class tool_ssl_vpn tool tool_nltest[“<b>Ferramenta</b> – utilitário nltest”] class tool_nltest tool tool_net[“<b>Ferramenta</b> – utilitário net.exe”] class tool_net tool tool_whoami[“<b>Ferramenta</b> – comando whoami”] class tool_whoami tool tool_powershell[“<b>Ferramenta</b> – PowerShell”] class tool_powershell tool tool_cmd[“<b>Ferramenta</b> – cmd.exe”] class tool_cmd tool tool_sc[“<b>Ferramenta</b> – comando sc.exe”] class tool_sc tool tool_vssadmin[“<b>Ferramenta</b> – utilitário vssadmin”] class tool_vssadmin tool %% Connections showing flow phase_initial_access –>|leva a| tech_valid_accounts tech_valid_accounts –>|leva a| phase_discovery phase_discovery –>|leva a| tech_account_discovery tech_account_discovery –>|leva a| phase_credential_access phase_credential_access –>|leva a| phase_lateral_movement phase_lateral_movement –>|leva a| phase_persistence phase_persistence –>|leva a| phase_execution phase_execution –>|leva a| phase_defense_evasion phase_defense_evasion –>|leva a| phase_impact %% Tool usage edges phase_initial_access –>|usa| tool_ssl_vpn phase_discovery –>|usa| tool_nltest phase_discovery –>|usa| tool_net phase_discovery –>|usa| tool_whoami phase_execution –>|usa| tool_powershell phase_execution –>|usa| tool_cmd phase_defense_evasion –>|usa| tool_sc phase_impact –>|usa| tool_vssadmin
Fluxo de Ataque
Detecções
Possível Enumeração de Conta de Admin ou Grupo (via linha de comando)
Ver
Possível Enumeração ou Manipulação de Conta ou Grupo (via linha de comando)
Ver
Descoberta Suspeita de Confianças de Domínio (via linha de comando)
Ver
Atividade Suspeita de VSSADMIN (via linha de comando)
Ver
Detecção de Movimento Lateral Baseado em RDP e Escalação de Privilégio em Nível de Domínio [Log de Evento de Segurança do Microsoft Windows]
Ver
Detecção de Força Bruta de SSLVPN e Preenchimento de Credenciais [Firewall]
Ver
Execução de Simulação
Pré-requisito: O Check de Pré-voo de Telemetria e Base deve ter sido aprovado.
Justificativa: Esta seção detalha a execução precisa da técnica adversária (TTP) projetada para acionar a regra de detecção. Os comandos e a narrativa DEVEM refletir diretamente os TTPs identificados e visam gerar a telemetria exata esperada pela lógica de detecção.
-
Narrativa e Comandos de Ataque:
- Reconhecimento (T1087): O atacante enumera nomes de usuário de um sistema interno comprometido e constrói uma lista de preenchimento de credenciais (por exemplo,
users.txt). - Loop de Força Bruta (T1021.001 / T1078.001): Usando um intervalo de IP externo comprometido pertencente a um provedor de hospedagem conhecido (por exemplo,
203.0.113.45), o atacante lança uma série rápida de tentativas de autenticação falhadas no SSLVPN (≥ 50) dentro de uma hora. Cada tentativa usa uma senha diferente da lista, visando uma única conta de vítima. - Preenchimento de Credenciais Bem-Sucedido: Após esgotar a lista, é encontrada uma senha correta; o atacante se loga com sucesso a partir do mesmo IP, satisfazendo a cláusula “successful_auth”.
- Evasão (Opcional – T1070.001): O atacante limpa o log de Segurança no equipamento VPN após o login bem-sucedido para esconder vestígios (não coberto por esta regra).
- Reconhecimento (T1087): O atacante enumera nomes de usuário de um sistema interno comprometido e constrói uma lista de preenchimento de credenciais (por exemplo,
-
Script de Teste de Regressão: Script Bash utilizando
curl(funciona em caixa atacante Linux). Ajustar variáveis para o ambiente real.#!/usr/bin/env bash # ------------------------------------------------------------------ # Simular força bruta/enchimento de credenciais em SSLVPN para acionar regra Sigma # ------------------------------------------------------------------ VPN_ENDPOINT="https://vpn.example.com/remote/auth" USERNAME="victim_user" PASSWORD_LIST="passwords.txt" # uma senha por linha SOURCE_IP="203.0.113.45" # deve ser roteável para o VPN # Função para realizar uma única tentativa de login attempt_login() { local pwd="$1" # Usando --silent para evitar desordem; --write-out para capturar código HTTP curl --silent --output /dev/null --write-out "%{http_code}" --user "$USERNAME:$pwd" "$VPN_ENDPOINT" } # 1. Gerar 55 tentativas falhadas (taxa ~1/segundo) echo "Iniciando tentativas falhadas..." count=0 while IFS= read -r pwd && [ $count -lt 55 ]; do http_code=$(attempt_login "$pwd") echo "Tentativa $((count+1)): HTTP $http_code (esperado 401)" ((count++)) sleep 1 # manter dentro da janela de 1 hora done < "$PASSWORD_LIST" # 2. Login bem-sucedido com senha correta (assume última linha no arquivo) echo "Realizando login bem-sucedido..." correct_pwd=$(tail -n1 "$PASSWORD_LIST") http_code=$(attempt_login "$correct_pwd") echo "Tentativa bem-sucedida: HTTP $http_code (esperado 200)" echo "Simulação concluída." -
Comandos de Limpeza: Remova quaisquer arquivos temporários e redefina o limite de taxa do firewall (se alterado).
#!/usr/bin/env bash # Limpeza após simulação de força bruta de SSLVPN # Excluir a lista de senhas temporária se foi criada em tempo real if [ -f passwords.txt ]; then shred -u passwords.txt echo "Deleted passwords.txt" fi # Opcionalmente, redefina quaisquer regras temporárias de iptables usadas para teste sudo iptables -D INPUT -s 203.0.113.45 -j DROP 2>/dev/null || true echo "Limpeza concluída."