SOC Prime Bias: 중간

01 12월 2025 20:34

AWS GuardDuty 감지기 비활성화/중지됨 – 위협 탐지 규칙 주간 보고서 #11-2025

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Follow
AWS GuardDuty 감지기 비활성화/중지됨 – 위협 탐지 규칙 주간 보고서 #11-2025
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

요약

이 블로그 기사는 GuardDuty 탐지기가 삭제되거나 비활성화되거나 중지될 때 경고를 발송하도록 설계된 AWS GuardDuty 탐지기에서 감지 규칙을 설명합니다. 예상되는 관리, 테스트, 공격자 시나리오를 설명하고, Sigma 규칙 샘플을 포함하며, 경고를 조사하는 방법을 자세히 설명합니다. 이 규칙은 DeleteDetector 및 UpdateDetector API 활동을 캡처하는 AWS CloudTrail 기록을 중심으로 하며, 보안 팀이 GuardDuty 탐지기 가시성을 비활성화하려는 시도를 발견하도록 돕습니다.

분석

이 섹션은 분석가에게 CloudTrail 항목을 검사할 것을 권장합니다 DeleteDetector and UpdateDetector GuardDuty ****API 호출, 해당 작업이 성공했는지 확인, 이를 발행한 IAM 사용자 또는 역할 식별 및 다른 의심스러운 이벤트와의 시간적 상관성을 생성합니다. 또한 탐지기 변경 전에 생성된 최신 GuardDuty 발견 내용을 검토하고 작업을 수행한 계정에 할당된 IAM 권한을 평가할 것을 추가로 권장합니다.

완화

완화 지침에는 GuardDuty 탐지기를 신속하게 활성 상태로 복구하고, IAM 정책을 강화하고, 엄격하게 통제된 역할만 DeleteDetector and UpdateDetector API 호출을 사용할 수 있도록 권한을 부여하는 것, GuardDuty 구성 변경에 대한 알림을 받기 위해 AWS Config를 활용하는 것 및 공식적인 변경 관리를 시행하여 합법적인 탐지기 제거를 위한 것입니다. 팀은 또한 GuardDuty 탐지기의 실수를 방지하기 위해 자동화 및 스크립트를 검토해야 합니다.

응답

이러한 악성 활동이 감지되면 보안 팀은 요청이 승인되었는지 확인하고, 즉시 GuardDuty 탐지기를 다시 활성화하고, 잠재적으로 손상된 리소스를 격리하고, 주요 이해 관계자에게 알리고, 향후 비인가 탐지기 변경의 위험을 줄이기 위해 모니터링 및 접근 통제를 강화해야 합니다.

mermaid graph TB %% 클래스 정의 classDef technique fill:#ffcc99 classDef action fill:#99ccff classDef builtin fill:#cccccc %% 기술 노드 tech_valid_accounts[“<b>기술</b> – <b>T1078 유효한 계정</b><br /><b>설명</b>: 적이 손상된 자격 증명을 획득하고 사용하여 계정에 액세스합니다.”] class tech_valid_accounts technique tech_impair_defenses[“<b>기술</b> – <b>T1562 방어 손상</b><br /><b>설명</b>: 적이 보안 도구 또는 메커니즘을 비활성화하려고 시도합니다.”] class tech_impair_defenses technique tech_clear_persistence[“ÅÅ<b>기술</b> – <b>T1070.009 지속성 제거</b><br /><b>설명</b>: 적이 지속성 관련 현물을 제거하여 이전 활동을 표시합니다.”] class tech_clear_persistence technique %% 액션 노드 action_obtain_credentials[“<b>행동</b> – guardduty:DeleteDetector/UpdateDetector 권한으로 손상된 IAM 자격 증명 획득”] class action_obtain_credentials action action_disable_gd[“<b>행동</b> – API 호출을 통해 GuardDuty 탐지기 삭제 또는 업데이트”] class action_disable_gd action action_remove_alerts[“<b>행동</b> – GuardDuty 경고 및 로그 제거, 감지 증거 제거”] class action_remove_alerts action %% 공격 과정 연결 tech_valid_accounts u002du002d>|사용 가능합니다| action_obtain_credentials action_obtain_credentials u002du002d>|실행에 사용됨| tech_impair_defenses tech_impair_defenses u002du002d>|사용합니다| action_disable_gd action_disable_gd u002du002d>|로 이끕니다| tech_clear_persistence tech_clear_persistence u002du002d>|촉진합니다| action_remove_alerts

공격 과정

시뮬레이션 실행

전제 조건: ‘Telemetry & Baseline Pre‑flight Check’가 통과해야 합니다.

  • 공격 내러티브 및 명령:

    권한 있는 AWS 자격 증명을 획득한 적(예: AdministratorAccess)는 GuardDuty의 모니터링을 제거하여 악의적인 활동을 숨기려고 합니다. 공격자는 먼저 기존 GuardDuty 탐지기 ID를 찾아서 탐지기를 완전히 삭제하거나 비활성화하도록 업데이트합니다. 두 작업 모두 Sigma 규칙과 일치하는 CloudTrail 이벤트를 생성합니다.

  • 회귀 테스트 스크립트:

    #!/usr/bin/env bash
    # =============================================================================
    # 시뮬레이션 스크립트 – T1562.008: GuardDuty 탐지기 비활성화/삭제
    # 전제 조건:
    #   - GuardDuty 관리자 권한이 있는 자격 증명으로 구성된 AWS CLI v2가 설치되어 있어야 합니다
    #   - JSON 구문 분석을 위한 jq가 설치되어 있어야 합니다
    # =============================================================================
    
    set -euo pipefail
    
    REGION="us-east-1"
    
    echo "[*] GuardDuty 탐지기 ID를 검색 중..."
    DETECTOR_ID=$(aws guardduty list-detectors --region "$REGION" --output json | jq -r '.DetectorIds[0]')
    
    if [[ -z "$DETECTOR_ID" || "$DETECTOR_ID" == "null" ]]; then
        echo "[!] 지역 $REGION에서 GuardDuty 탐지기를 찾을 수 없습니다. 종료합니다."
        exit 1
    fi
    echo "[+] 탐지기 ID: $DETECTOR_ID"
    
    # -------------------------------------------------------------------------
    # 옵션 1: 탐지기 삭제 (DeleteDetector 이벤트 생성)
    # -------------------------------------------------------------------------
    echo "[*] T1562.008을 시뮬레이션하기 위해 GuardDuty 탐지기 삭제 중..."
    aws guardduty delete-detector 
        --detector-id "$DETECTOR_ID" 
        --region "$REGION"
    echo "[+] DeleteDetector 호출이 발행되었습니다."
    
    # -------------------------------------------------------------------------
    # 옵션 2: 탐지기 비활성화 (enable=false의 UpdateDetector 이벤트 생성)
    # -------------------------------------------------------------------------
    # Delete 대신 UpdateDetector 경로를 테스트하려면 아래 블록의 주석을 해제하십시오.
    #: <<'DISABLE_BLOCK'
    #echo "[*] GuardDuty 탐지기 비활성화 (대체 경로)..."
    #aws guardduty update-detector 
    #    --detector-id "$DETECTOR_ID" 
    #    --region "$REGION" 
    #    --enable false
    #echo "[+] UpdateDetector (enable=false) 호출이 발행되었습니다."
    #: DISABLE_BLOCK
    
    echo "[*] 시뮬레이션 완료. DeleteDetector 또는 UpdateDetector 이벤트에 대한 SIEM 경고를 확인하십시오."
  • 정리 명령:

    #!/usr/bin/env bash
    # GuardDuty 탐지기를 삭제한 경우 다시 생성하거나 비활성화된 경우 다시 활성화합니다.
    
    REGION="us-east-1"
    
    # 탐지기가 있는지 확인
    EXISTING=$(aws guardduty list-detectors --region "$REGION" --output json | jq -r '.DetectorIds | length')
    
    if [[ "$EXISTING" -eq 0 ]]; then
        echo "[*] GuardDuty 탐지기를 찾을 수 없습니다 – 새로 생성합니다..."
        aws guardduty create-detector --region "$REGION" --enable true
        echo "[+] 새 GuardDuty 탐지기가 생성되고 활성화되었습니다."
    else
        DETECTOR_ID=$(aws guardduty list-detectors --region "$REGION" --output json | jq -r '.DetectorIds[0]')
        echo "[*] 기존 탐지기 $DETECTOR_ID를 다시 활성화합니다..."
        aws guardduty update-detector 
            --detector-id "$DETECTOR_ID" 
            --region "$REGION" 
            --enable true
        echo "[+] 탐지기 $DETECTOR_ID가 다시 활성화되었습니다."
    fi