SOC Prime Bias: 위급

11 Aug 2026 06:12 UTC

CrowdStrike, VMware ESXi에서 셸 명령어 난독화 탐지

Author Photo
SOC Prime Team linkedin icon 팔로우
CrowdStrike, VMware ESXi에서 셸 명령어 난독화 탐지
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

요약

공격자들은 점점 더 VMware ESX 하이퍼바이저를 대상으로 고급 셸 명령어 난독화를 사용하여 탐지를 회피하고 있습니다. 위협 행위자는 기본적인 16진 인코딩에서부터 고급 암호화 암호 및 BusyBox 셸에 주입된 보이지 않는 유니코드 문자까지 다양한 기술을 사용합니다. 이러한 방법은 공격자가 악성 명령어를 실행하여 syslog를 비활성화하거나 가상 머신을 암호화하는 등의 작업을 수행하면서 표준 셸 로그에 읽기 쉬운 흔적을 최소화하는 데 도움을 줍니다.

조사

CrowdStrike 연구자들은 제어된 ESX 7.0.3 환경에서 21가지 서로 다른 난독화 기술을 체계적으로 평가했습니다. 이들은 이러한 방법을 이스케이프 시퀀스, 문자 생성, 유니코드 주입, 암호화 인코딩, 인프라 키 페이로드 및 대체 인코딩 시스템의 6가지 범주로 분류했습니다. 연구 결과, 이러한 기술이 명령어가 파싱되고 궁극적으로 실행되는 방식의 차이를 악용하여 기존의 키워드 기반 탐지를 우회할 수 있다는 사실을 확인했습니다.

대응 방안

보안 팀은 기본 키워드 기반 탐지를 넘어 일반적으로 난독화와 관련된 구문 패턴을 식별하는 정규 표현식 기반 상관 규칙을 채택해야 합니다. CrowdStrike Falcon Next-Gen SIEM과 같은 고급 SIEM 플랫폼은 ESX 셸 원격 측정에서 이러한 행동을 감지하는 데 도움을 줄 수 있습니다. 정상적인 관리 활동의 신뢰할 수 있는 기준선을 유지하는 것도 비정상적인 셸 실행을 식별하는 데 필수적입니다.

대응

난독화된 명령어 실행이 감지되면, 사건 대응자는 측면 이동이나 VM 암호화를 제한하기 위해 영향을 받은 ESX 호스트를 즉시 격리해야 합니다. 셸 로그는 실제로 실행된 명령어를 재구성하기 위해 알려진 난독화 패턴에 대해 분석해야 합니다. 대응자는 또한 예약된 작업이나 수정된 시스템 구성에 의한 지속성을 조사하고 VMFS 파일시스템의 무결성을 확인해야 합니다.

공격 흐름

시뮬레이션 실행

전제 조건: 원격 측정 및 기준선 사전 점검이 통과해야 합니다.

이유: 이 섹션은 탐지 규칙을 트리거하도록 설계된 적법한 기법(TTP)의 정확한 실행을 상세하게 설명합니다. 명령어와 서술은 반드시 식별된 TTP를 직접 반영하고 탐지 논리에 의해 예상되는 정확한 원격 측정을 생성해야 합니다.

  • 공격 서술 및 명령어: 공격자는 VMware ESX 호스트에 셸 접근을 얻었습니다. 보안 도구가 검색하는 키워드를 통해 감지를 회피하기 위해 esxcli공격자는 ASCII 10진수를 사용하여 문자열을 생성하는 awk 명령어를 사용합니다 esxcli 그런 다음 이를 system()에 전달합니다. 이 기술은 단순한 패턴 매칭 필터에 보이지 않게 로그 호스트 재설정과 같은 구성을 변경하는 데 사용됩니다.

  • 회귀 테스트 스크립트: 이 스크립트는 탐지 논리에 정의된 특정 페이로드 중 하나를 실행하여 규칙 트리거를 검증합니다.

    #!/bin/bash
    # 'VMware ESX에서 난독화된 명령어 탐지' 규칙을 트리거하기 위한 시뮬레이션 스크립트.
    
    echo "[+] 시뮬레이션 시작: 난독화된 명령어 실행"
    
    # 페이로드 1: 'esxcli'를 숨기기 위해 서브셸 내에서 printf 사용
    echo "[+] 페이로드 1 실행 (printf 난독화)..."
    $(printf "x65x73x78x63x6cx69") system syslog config get
    
    # 페이로드 2: ASCII 10진 코드를 통해 'esxcli'를 재구성하기 위해 awk 사용
    echo "[+] 페이로드 2 실행 (awk ASCII 재구성)..."
    awk 'BEGIN{printf "%c%c%c%c%c%c",101,115,120,99,108,105} system " syslog config get"'
    
    echo "[+] 시뮬레이션 완료. SIEM에서 알림을 확인하세요."
  • 정리 명령어: 이 명령어들은 비파괴적 결과를 의도하고 설계된 것입니다 ( get or config get사용으로), 최소한의 정리가 필요합니다. 하지만, 명령어가 사용된 경우 지속적인 변경이 없도록 하려면: set # 이 시뮬레이션에서는 파괴적 행동이 없었습니다. # ‘set’ 명령어가 사용된 경우, 원래 구성으로 되돌리세요. echo “[+] 정리: 시스템 구성에 변경이 없었습니다.”

    # No destructive actions were taken in this simulation. 
    # If a 'set' command was used, revert to original configuration.
    echo "[+] Cleanup: No changes were made to the system configuration."