SOC Prime Bias: Alta

31 Mar 2026 17:23

Dentro do Pay2Key: Análise Técnica de uma Variante de Ransomware para Linux

Author Photo
Ruslan Mikhalov Chefe de Pesquisa de Ameaças na SOC Prime linkedin icon Seguir
Dentro do Pay2Key: Análise Técnica de uma Variante de Ransomware para Linux
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Resumo

Pay2Key é uma operação de ransomware atribuída ao Irã que introduziu uma variante do Linux no final de agosto de 2025. O malware opera com privilégios de root, desativa proteções de segurança e criptografa arquivos com ChaCha20. Seu comportamento é guiado por um arquivo de configuração e suporta modos de criptografia de arquivo completo e parcial. A análise enfatiza as técnicas do operador e a crescente necessidade de defesas específicas para ransomware em Linux.

Investigação

O Morphisec Threat Labs conduziu uma revisão de engenharia reversa da amostra do Pay2Key para Linux. Os pesquisadores documentaram a validação de privilégios, a análise da configuração JSON, a descoberta de sistema de arquivos através de /proc/mounts, encerramento de serviços, desativação do SELinux e AppArmor, persistência baseada em cron e criptografia ChaCha20 com chaves por arquivo armazenadas dentro de um bloco de metadados ofuscado. A amostra não mostrou evidências de tráfego de rede C2 ou exfiltração de dados.

Mitigação

O relatório aconselha a implantação de ferramentas de antivírus para Linux que possam interromper a execução antes que a criptografia comece, suporte a defesa de alvo móvel e mantenha proteções de integridade em tempo de execução. Reduzir a superfície de ataque desativando serviços desnecessários e fortalecendo as políticas de SELinux/AppArmor também é recomendado. A proteção de endpoint que rastreia atividades de processos privilegiados anormais pode melhorar ainda mais a resiliência.

Resposta

Se o Pay2Key for detectado, isole o sistema, pare o processo malicioso e exclua a entrada de persistência do cron. Confirme se as permissões de arquivos estão intactas e recupere os dados criptografados a partir de backups. Uma investigação forense deve então capturar IOCs relevantes e verificar o ambiente mais amplo para atividades relacionadas.

"graph TB %% Class definitions classDef technique fill:#ffcc99 classDef operator fill:#ff9900 %% Nodes representing each ATT&CK technique persistence_cron["<b>Technique</b> – <b>T1053.003 Scheduled Task/Job: Cron</b><br/>Creates or modifies a cron job to ensure execution after system reboot"] class persistence_cron technique defense_impair["<b>Technique</b> – <b>T1562 Impair Defenses</b><br/>Disables SELinux and AppArmor to weaken host protection mechanisms"] class defense_impair technique indicator_removal["<b>Technique</b> – <b>T1027.005 Indicator Removal from Tools</b><br/>Removes securityu2011tool indicators to evade detection"] class indicator_removal technique discovery_mounts["<b>Technique</b> – <b>T1083 File and Directory Discovery</b><br/>Reads /proc/mounts, filters pseudou2011filesystems and classifies mounts for target selection"] class discovery_mounts technique obfuscation_storage["<b>Technique</b> – <b>T1027 Obfuscated Files or Information</b><br/>Stores encryption metadata using a hardu2011coded string and obfuscates the payload"] class obfuscation_storage technique deobfuscate["<b>Technique</b> – <b>T1140 Deobfuscate/Decode Files or Information</b><br/>Decodes the obfuscated payload during processing"] class deobfuscate technique impact_encryption["<b>Technique</b> – <b>T1486 Data Encrypted for Impact</b><br/>Generates peru2011file ChaCha20 keys and encrypts data, producing ransomu2011demanding files"] class impact_encryption technique %% Flow connections persistence_cron –>|leads_to| defense_impair defense_impair –>|leads_to| indicator_removal indicator_removal –>|leads_to| discovery_mounts discovery_mounts –>|leads_to| obfuscation_storage obfuscation_storage –>|leads_to| deobfuscate deobfuscate –>|leads_to| impact_encryption "

Fluxo de Ataque

Execução da Simulação

Pré-requisito: A Verificação Prévia de Telemetria & Linha de Base deve ter sido aprovada.

Justificativa: 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 visa gerar exatamente a telemetria esperada pela lógica de detecção.

  • Narrativa do Ataque & Comandos:

    O atacante simulado já obteve uma posição no host Linux e deseja preparar o ambiente para a implantação do ransomware. Primeiro, eles verificam se estão operando com privilégios de root, depois desativam deliberadamente os controles de segurança e interrompem serviços críticos para evitar interrupções durante a criptografia. O atacante evita criar uma entrada de cron durante esta fase para satisfazer a cláusula de negação da regra.

    1. Verificação de Privilégios – O atacante executa id -u e verifica o UID 0, que aparece na linha de comando como “root”.
    2. Interrupção de Serviço – Utilizando systemctl stop o atacante interrompe o ssh serviço para prevenir interferência remota.
    3. Disrupção de Processo – O atacante mata um processo de segundo plano de baixa prioridade (sleep 300 &) para ilustrar o padrão kill .
    4. Desativação de Defesas – SELinux é configurado para permissivo (setenforce 0) e AppArmor é desativado (aa-disable).

    Estes passos produzem eventos execve que satisfazem seleção1 (contêm “root”) e seleção2/seleção3 (contêm comandos de stop/kill ou disable) enquanto omitem crontab, disparando assim a regra Sigma.

  • Script de Teste de Regressão:

    #!/usr/bin/env bash
    set -e
    
    echo "[*] Etapa 1 – Verificar privilégios de root (contém 'root')"
    id -u | grep ^0 && echo "privilégio de root confirmado"
    
    echo "[*] Etapa 2 – Parar um serviço (systemctl stop sshd)"
    sudo systemctl stop sshd || true
    
    echo "[*] Etapa 3 – Gerar e matar um processo dummy"
    sleep 300 &
    DUMMY_PID=$!
    sudo kill -9 $DUMMY_PID || true
    
    echo "[*] Etapa 4 – Desativar SELinux e AppArmor"
    sudo setenforce 0 || true
    sudo aa-disable || true
    
    echo "[+] Simulação concluída – a detecção deve ter sido acionada."
  • Comandos de Limpeza:

    #!/usr/bin/env bash
    set -e
    
    echo "[*] Restaurando serviços"
    sudo systemctl start sshd || true
    
    echo "[*] Reativando SELinux (enforcement) e AppArmor"
    sudo setenforce 1 || true
    sudo aa-enable || true
    
    echo "[*] Assegurando que nenhum processo estranho reste"
    pkill -f "sleep 300" || true
    
    echo "[+] Limpeza concluída."