De Ameaça Emergente a Líder em Ransomware como Serviço: A Evolução do INC Ransomware
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumo
O ransomware INC transformou-se em uma grande operação de ransomware como serviço, reivindicando mais de 800 vítimas desde 2023. O grupo usa criptografadores baseados em Rust para sistemas Windows e Linux/ESXi, o que aumenta a dificuldade na análise de malware. Seus operadores dependem de táticas de dupla extorsão e focam em setores de alto valor, como saúde e serviços jurídicos.
Investigação
A Unidade de Pesquisa de Ameaças da Acronis analisou a cadeia de intrusão INC e observou uma mudança em direção à exploração de dispositivos de borda não corrigidos e ataque a servidores de backup Veeam. A análise técnica mostrou que a carga útil no Windows está protegida com VMProtect 3.X, enquanto a versão para Linux tem como alvo ambientes VMware por meio de comandos como vim-cmd. A investigação também encontrou semelhanças de código com famílias de ransomware relacionadas, incluindo Lynx e Sinobi.
Mitigação
As organizações devem adotar a estratégia de backup 3-2-1 e garantir que os backups incluam cópias imutáveis ou offline para suportar a recuperação. Implantar EDR ou XDR com proteções anti-sabotagem e aplicar autenticação multifatorial é essencial. Priorizar a correção de aplicativos voltados para a internet e segmentar redes críticas também pode reduzir o impacto de um comprometimento.
Resposta
Se uma atividade de ransomware INC for detectada, os respondedores devem isolar imediatamente os sistemas afetados para interromper o movimento lateral e parar a criptografia. A integridade do backup deve ser verificada antes de iniciar a restauração, e os procedimentos de resposta a incidentes devem se concentrar na identificação do vetor de acesso inicial. As equipes também devem monitorar tentativas de exfiltração de dados envolvendo ferramentas como rclone.
"graph TB %% Class Definitions Section classDef initial_access fill:#99ccff classDef discovery fill:#ccffcc classDef credential_access fill:#ffff99 classDef lateral_movement fill:#ffcc99 classDef defense_impairment fill:#ff9999 classDef command_control fill:#cc99ff classDef collection fill:#99ffff classDef exfiltration fill:#ff99cc classDef impact fill:#ff6666 %% Initial Access Nodes node_phishing["<b>Ação</b> – <b>T1566 Phishing</b><br/>Descrição: Spearphishing usado para entrada inicial.<br/><b>Alvo</b>: Usuários via email."] class node_phishing initial_access node_valid_accounts["<b>Ação</b> – <b>T1078 Contas Válidas</b><br/>Descrição: Uso de contas obtidas de Corretoras de Acesso Inicial.<br/><b>Alvo</b>: Credenciais legítimas."] class node_valid_accounts initial_access node_exploit_app["<b>Ação</b> – <b>T1190 Exploração de Aplicação Voltada para o Público</b><br/>Descrição: Explorando vulnerabilidades na Citrix e Fortinet.<br/><b>Alvo</b>: Serviços acessíveis publicamente."] class node_exploit_app initial_access %% Discovery Nodes node_discovery["<b>Ação</b> – <b>T1087/T1046 Descoberta</b><br/>Descrição: Descoberta de rede e sistema.<br/><b>Ferramentas</b>: ping, net, Advanced IP Scanner, netscan."] class node_discovery discovery %% Credential Access Nodes node_credential_dump["<b>Ação</b> – <b>T1003 Despejo de Credenciais do SO</b><br/>Descrição: Alvo em implantações de backup Veeam.<br/><b>Ferramenta</b>: Script PowerShell de despejo de credenciais Veeam modificado.<br/><b>Método</b>: Descriptografia Salted DPAPI."] class node_credential_dump credential_access %% Lateral Movement Nodes node_lateral_movement["<b>Ação</b> – <b>T1021/T1570 Movimento Lateral</b><br/>Descrição: Movendo-se pela rede.<br/><b>Ferramentas</b>: RDP, PsExec."] class node_lateral_movement lateral_movement %% Defense Impairment Nodes node_defense_impairment["<b>Ação</b> – <b>T1562 Prejuízo às Defesas</b><br/>Descrição: Desabilitando ou modificando ferramentas de segurança.<br/><b>Ferramenta</b>: PsKill ou terminadores de processos personalizados.<br/><b>Alvo</b>: EDR e processos de segurança."] class node_defense_impairment defense_impairment %% Command and Control Nodes node_c2["<b>Ação</b> – <b>T1219/T1071 Comando e Controle</b><br/>Descrição: Mantendo comunicação.<br/><b>Ferramentas</b>: Cobalt Strike, AnyDesk, TeamViewer.<br/><b>Nota</b>: Mistura-se com tráfego legítimo de TI."] class node_c2 command_control %% Collection and Exfiltration Nodes node_collection["<b>Ação</b> – <b>T1560 Arquivar Dados Coletados</b><br/>Descrição: Armazenando e compactando dados.<br/><b>Ferramenta</b>: 7-Zip.<br/><b>Método</b>: Arquivos protegidos por senha."] class node_collection collection node_exfiltration["<b>Ação</b> – <b>T1567 Exfiltração por Serviço Web</b><br/>Descrição: Carregando dados roubados para armazenamento em nuvem.<br/><b>Ferramenta</b>: rclone."] class node_exfiltration exfiltration %% Impact Nodes node_impact["<b>Ação</b> – <b>T1486 Dados Criptografados para Impacto</b><br/>Descrição: Criptografando arquivos com extensão .INC.<br/><b>Malware</b>: Criptografadores baseados em Rust para Windows e Linux/ESXi.<br/><b>Criptografia</b>: AES/Curve25519."] class node_impact impact %% Connection Flow node_phishing –>|conduz| node_discovery node_valid_accounts –>|conduz| node_discovery node_exploit_app –>|conduz| node_discovery node_discovery –>|desencadeia| node_credential_dump node_credential_dump –>|permite| node_lateral_movement node_lateral_movement –>|conduz| node_defense_impairment node_defense_impairment –>|permite| node_c2 node_c2 –>|facilita| node_collection node_collection –>|prepara para| node_exfiltration node_exfiltration –>|precede| node_impact "
Fluxo de Ataque
Detecções
Provável Uso de Ferramentas de Hack para Windows [Parte 1] (via linha de comando)
Proof of Value
Uso Possível de Ferramentas Sysinternals (via linha de comando)
Proof of Value
Strings Suspeitas do Powershell (via powershell)
Proof of Value
Detecção de Execução Oculta e Codificada do PowerShell [Windows Powershell]
Proof of Value
Uso Suspeito de Comandos de Infraestrutura VMware [Criação de Processo Linux]
Proof of Value
Detecção de Terminação de Processo e Criação de Thread Remoto [Windows Sysmon]
Proof of Value
Detecção de Script PowerShell Codificado em Base64 para Despejo de Credenciais Veeam [Criação de Processo Windows]
Proof of Value
Execução de Simulação
Pré-requisito: A Verificação Prévia de Telemetria e Linha de Base deve ter sido aprovada.
Racional: Esta seção detalha a execução precisa da técnica do adversário (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. Exemplos abstratos ou não relacionados levarão a diagnósticos incorretos.
-
Narrativa do Ataque & Comandos: O adversário pretende obter credenciais da Subsystem Service Local Security Authority (
lsass.exe). Para evitar a detecção por segurança de endpoint, eles primeiro tentam terminar um processo relacionado à segurança usandotaskkill.exepara interromper o monitoramento. Após isso, tentam usar uma técnica de injeção de thread remoto para executar código dentro dolsass.exeespaço de memória. Esta abordagem direta é destinada a acionar a lógica específica da regra referente àtaskkill.exeandlsass.execriação de threads. -
Script de Teste de Regressão:
# Script de Simulação para Validação de Detecção # Passo 1: Disparar selection_termination (EventID 4689) Write-Host "[*] Disparando Terminação de Processo via taskkill..." Start-Process calc.exe Start-Sleep -Seconds 1 taskkill /F /IM calc.exe # Passo 2: Disparar selection_remote_thread (Sysmon EventID 8) # Nota: Isso requer privilégios administrativos. # Usamos uma injeção baseada em PowerShell para simular a criação de um thread remoto em lsass.exe. Write-Host "[*] Tentando Injeção de Thread Remoto em lsass.exe..." $DllPath = "C:WindowsSystem32user32.dll" $DllFunction = "LoadLibraryA" $ProcessName = "lsass" $TargetProcess = Get-Process $ProcessName -ErrorAction SilentlyContinue if ($TargetProcess) { $Handle = [Runtime.InteropServices.Marshal]::GetComObject(New-Object -ComObject WScript.Shell).Exec("powershell -Command `"[DllImport('kernel32.dll')] public static extern IntPtr OpenProcess(int dwDesiredAccess, bool bInheritHandle, int dwProcessId); ...`"") # Pelo bem de um script limpo e reproduzível sem compilação complexa de C# em um único bloco, # usamos um método conhecido para disparar um Evento 8 do Sysmon via um padrão leve de injeção. $Code = @" using System; using System.Runtime.InteropServices; public class Injector { [DllImport("kernel32.dll")] public static extern IntPtr OpenProcess(int dwDesiredAccess, bool bInheritHandle, int dwProcessId); [DllImport("kernel32.dll")] public static extern IntPtr VirtualAllocEx(IntPtr hProcess, IntPtr lpAddress, uint dwSize, uint flAllocationType, uint flProtect); [DllImport("kernel32.dll")] public static extern bool WriteProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress, byte[] lpBuffer, uint nSize, out IntPtr lpNumberOfBytesWritten); [DllImport("kernel32.dll")] public static extern IntPtr CreateRemoteThread(IntPtr hProcess, IntPtr lpThreadAttributes, uint dwStackSize, IntPtr lpStartAddress, IntPtr lpParameter, uint dwCreationFlags, IntPtr lpThreadId); public static void Run() { IntPtr hProcess = OpenProcess(0x001F0FFF, false, 644); // O PID do lsass é geralmente 644 neste contexto ou encontrado via Get-Process // Esta é uma representação simplificada para disparar o Evento 8 do Sysmon } } "@ # Para garantir que o script seja executável e não destrutivo para uma ferramenta BAS, # chamamos um comando que o driver do Sysmon captará como uma tentativa de criação de thread. # Em um ambiente real, usaríamos uma ferramenta compilada ou injeção de DLL reflexiva. Write-Host "[!] Passo manual: Use uma ferramenta como 'Process Hacker' ou um injetor personalizado para direcionar o lsass.exe para garantir que o ID de Evento 8 seja gerado." } else { Write-Error "[-] Não foi possível encontrar lsass.exe" } -
Comandos de Limpeza:
# Limpeza: Certifique-se de que nenhum processo perdido esteja em execução. Stop-Process -Name "calc" -ErrorAction SilentlyContinue Write-Host "[+] Limpeza completa."