SOC Prime Bias: Médio

01 Dez 2025 20:34

Detector do AWS GuardDuty Desativado/Suspenso – Detecção de Ameaças Semanal #11-2025

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Follow
Detector do AWS GuardDuty Desativado/Suspenso – Detecção de Ameaças Semanal #11-2025
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Resumo

O artigo do blog descreve uma regra de detecção no AWS GuardDuty Detector projetada para alertar quando um GuardDuty Detector é deletado, desativado ou suspenso. Ele aborda cenários administrativos, de teste e de ataque esperados, inclui um exemplo de regra Sigma e detalha como investigar alertas. A regra se concentra em registros do AWS CloudTrail que capturam a atividade da API DeleteDetector e UpdateDetector, ajudando as equipes de segurança a identificar tentativas de desativar a visibilidade do GuardDuty Detector.

Análise

Esta seção aconselha os analistas a inspecionar entradas do CloudTrail para DeleteDetector and UpdateDetector chamadas ****API do GuardDuty, verificar se as ações tiveram sucesso, identificar o usuário ou função IAM que as emitiu e correlacionar seu tempo com outros eventos suspeitos. Recomenda ainda revisar as descobertas recentes do GuardDuty geradas antes da mudança do detector e avaliar as permissões IAM atribuídas à conta que executou a operação.

Mitigação

As orientações de mitigação incluem restaurar prontamente o GuardDuty Detector para um estado habilitado, fortalecer as políticas de IAM, permitindo apenas que funções estritamente controladas usem DeleteDetector and UpdateDetector chamadas de API, utilizando o AWS Config para alertar sobre alterações na configuração do GuardDuty e aplicando gerenciamento formal de mudanças para qualquer remoção legítima do detector. As equipes também devem revisar a automação e scripts para evitar a exclusão acidental do GuardDuty Detector.

Resposta

Quando tal atividade maliciosa é detectada, as equipes de segurança devem confirmar se a solicitação foi autorizada, reativar imediatamente o GuardDuty Detector, isolar quaisquer recursos potencialmente comprometidos, informar as partes interessadas relevantes e fortalecer o monitoramento e controles de acesso para reduzir o risco de futuras alterações não autorizadas no detector.

mermaid graph TB %% Class definitions classDef technique fill:#ffcc99 classDef action fill:#99ccff classDef builtin fill:#cccccc %% Technique nodes tech_valid_accounts[“<b>Técnica</b> – <b>T1078 Contas Válidas</b><br/><b>Descrição</b>: O adversário obtém e usa credenciais comprometidas para acessar contas.”] class tech_valid_accounts technique tech_impair_defenses[“<b>Técnica</b> – <b>T1562 Impair Defenses</b><br/><b>Descrição</b>: O adversário tenta desativar ferramentas ou mecanismos de segurança.”] class tech_impair_defenses technique tech_clear_persistence[“<b>Técnica</b> – <b>T1070.009 Clear Persistence</b><br/><b>Descrição</b>: O adversário remove artefatos que poderiam indicar persistência ou atividade anterior.”] class tech_clear_persistence technique %% Action nodes action_obtain_credentials[“<b>Ação</b> – Obter credenciais IAM comprometidas com permissões de guardduty:DeleteDetector/UpdateDetector”] class action_obtain_credentials action action_disable_gd[“<b>Ação</b> – Deletar ou Atualizar detector GuardDuty via chamadas de API”] class action_disable_gd action action_remove_alerts[“<b>Ação</b> – Remover alertas e logs do GuardDuty, eliminando evidências de detecção”] class action_remove_alerts action %% Connections showing attack flow tech_valid_accounts u002du002d>|habilita| action_obtain_credentials action_obtain_credentials u002du002d>|usado para executar| tech_impair_defenses tech_impair_defenses u002du002d>|usa| action_disable_gd action_disable_gd u002du002d>|leva a| tech_clear_persistence tech_clear_persistence u002du002d>|facilita| action_remove_alerts

Fluxo de Ataque

Execução da Simulação

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

  • Narrativa de Ataque & Comandos:

    Um adversário que tenha obtido credenciais privilegiadas da AWS (por exemplo, AdministratorAccess) visa ocultar atividade maliciosa ao remover o monitoramento do GuardDuty. O atacante primeiro descobre o ID do detector GuardDuty existente, depois ou deleta o detector completamente ou o atualiza para desativá-lo. Ambas as ações geram eventos CloudTrail que correspondem à regra sigma.

  • Script de Teste de Regressão:

    #!/usr/bin/env bash
    # =============================================================================
    # Script de simulação – T1562.008: Desativar/Deletar GuardDuty Detector
    # Pré-requisitos:
    #   - AWS CLI v2 instalado e configurado com credenciais que tenham direitos administrativos do GuardDuty
    #   - jq instalado para análise de JSON
    # =============================================================================
    
    set -euo pipefail
    
    REGION="us-east-1"
    
    echo "[*] Descobrindo ID do detector GuardDuty..."
    DETECTOR_ID=$(aws guardduty list-detectors --region "$REGION" --output json | jq -r '.DetectorIds[0]')
    
    if [[ -z "$DETECTOR_ID" || "$DETECTOR_ID" == "null" ]]; then
        echo "[!] Nenhum detector GuardDuty encontrado na região $REGION. Saindo."
        exit 1
    fi
    echo "[+] ID do Detector: $DETECTOR_ID"
    
    # -------------------------------------------------------------------------
    # Opção 1: Deletar o detector (produz evento DeleteDetector)
    # -------------------------------------------------------------------------
    echo "[*] Deletando detector GuardDuty para simular T1562.008..."
    aws guardduty delete-detector 
        --detector-id "$DETECTOR_ID" 
        --region "$REGION"
    echo "[+] Chamada DeleteDetector emitida."
    
    # -------------------------------------------------------------------------
    # Opção 2: Desativar o detector (produz UpdateDetector com enable=false)
    # -------------------------------------------------------------------------
    # Descomente o bloco abaixo para testar o caminho UpdateDetector ao invés de Delete.
    #: <<'DISABLE_BLOCK'
    #echo "[*] Desativando detector GuardDuty (caminho alternativo)..."
    #aws guardduty update-detector 
    #    --detector-id "$DETECTOR_ID" 
    #    --region "$REGION" 
    #    --enable false
    #echo "[+] Chamada UpdateDetector (enable=false) emitida."
    #: DISABLE_BLOCK
    
    echo "[*] Simulação completa. Verifique alertas SIEM para eventos DeleteDetector ou UpdateDetector."
  • Comandos de Limpeza:

    #!/usr/bin/env bash
    # Recriar detector GuardDuty (se foi deletado) ou reativá-lo (se desativado)
    
    REGION="us-east-1"
    
    # Verifique se existem detectores
    EXISTING=$(aws guardduty list-detectors --region "$REGION" --output json | jq -r '.DetectorIds | length')
    
    if [[ "$EXISTING" -eq 0 ]]; then
        echo "[*] Nenhum detector GuardDuty encontrado – criando um novo..."
        aws guardduty create-detector --region "$REGION" --enable true
        echo "[+] Novo detector GuardDuty criado e habilitado."
    else
        DETECTOR_ID=$(aws guardduty list-detectors --region "$REGION" --output json | jq -r '.DetectorIds[0]')
        echo "[*] Reativando detector existente $DETECTOR_ID..."
        aws guardduty update-detector 
            --detector-id "$DETECTOR_ID" 
            --region "$REGION" 
            --enable true
        echo "[+] Detector $DETECTOR_ID reativado."
    fi