
TigerRAT, 5년간 탐지 환경 맞춰 경화…다섯 겹 분석 무력화 장치 확인
Silent Chollima(Andariel)의 TigerRAT 변종이 커스텀 고엔트로피 패커, CPU 클록 기반 샌드박스 우회, 위조된 PE 타임스탬프, 역방향 HTTP C2 프레이밍을 단일 샘플에 중첩 구현했다. 샌드박스 판정이 갈리고 VMware 프로세스명으로 위장한 이 임플란트는 2020년부터 교체 없이 탐지 회피 역량만 선택적으로 강화돼 왔다.
'UPS' 섹션이 숨긴 것 — TigerRAT의 다층 분석 무력화 전략
2025년 11월, VirusTotal에 마지막으로 관측된 한 PE32+ 바이너리는 겉보기에 평범한 윈도우 실행 파일이었다. 파일 이름은 vmware-vmx-gui.exe — 기업 환경에서 흔히 볼 수 있는 VMware GUI 프로세스를 흉내 낸 이름이다. 그러나 CTX Team이 이 샘플을 분석한 결과, 단순한 이름 위장 너머에 다섯 겹의 분석 무력화 장치가 정밀하게 설계돼 있었다. 커스텀 고엔트로피 패커 섹션, 타이밍 기반 샌드박스 우회, 사용자 활동 감지, 의도적으로 위조된 PE 타임스탬프, 그리고 HTTP 프로토콜 규칙을 의도적으로 위반하는 C2 체크인 방식이 하나의 샘플 안에 중첩돼 있었다. 이 샘플은 Silent Chollima(Andariel)가 최소 2020년부터 운용해 온 TigerRAT 백도어의 변종으로, 5년이 지난 지금도 탐지 환경에 맞춰 꾸준히 경화(hardening)되고 있다는 사실이 이번 분석의 핵심이다.
'UPS'라는 이름의 함정 — 커스텀 패커가 정적 분석을 차단하는 방식
이 샘플의 PE 구조를 열면 가장 먼저 눈에 띄는 것은 UPS라는 이름의 섹션이다. 이름만 보면 오픈소스 실행 파일 압축 도구 UPX를 연상시키지만, 실제 내용은 전혀 다르다. 해당 섹션의 엔트로피는 7.37로, 전체 파일(304 KB) 가운데 가장 큰 단일 블록인 186,880바이트를 차지한다. UPX 패킹 섹션의 전형적인 엔트로피 범위(6.8~7.0)를 넘어서는 수치이며, 임포트 카운트가 0이라는 사실은 이 섹션이 런타임에 Windows API를 동적으로 해석하는 커스텀 스텁임을 명확히 시사한다.
비교를 위해 나머지 섹션을 살펴보면, .text 섹션(64,000바이트, 엔트로피 6.43)과 .rdata 섹션(45,568바이트, 엔트로피 4.27)은 언패킹 이후 실제 코드와 읽기 전용 데이터가 위치하는 영역으로 보인다. 반면 UPS 섹션은 그 자체가 암호화되거나 압축된 페이로드를 담고 있으며, 실행 시점에 메모리 내에서 언패킹 루틴이 작동해 실제 TigerRAT 기능을 복원하는 구조다. 이 방식은 정적 분석 도구가 임포트 테이블이나 문자열을 기반으로 악성 기능을 식별하는 것을 원천 차단한다(T1106, Native API).
YARA 룰 win_tiger_rat_auto(Malpedia / Felix Bilstein 작성)가 이 샘플에서 발화한 것은 이 패킹 방식이 TigerRAT 계열에서 반복적으로 관찰되는 빌드 특성임을 보여준다. 그러나 동일한 imphash(7a9844c5dcf364365fc67da601e8b69c)를 공유하는 형제 샘플은 아직 확인되지 않아, 빌더 재사용이나 캠페인 규모를 추가로 입증하기에는 근거가 부족한 상태다.
섹션 이름을 'UPS'로 설정한 것 자체도 의도적 혼란 유발로 해석할 수 있다. 자동화 분석 파이프라인이나 1차 트리아지 단계에서 'UPX 패킹된 파일'로 분류하고 넘어갈 가능성을 노린 것이다. 실제로 UPX 패킹 여부를 확인하는 일부 도구는 섹션 이름을 기준으로 판단하기 때문에, 이 명명 선택은 단순한 우연이 아닐 가능성이 높다.
샌드박스를 갈라놓은 타이밍 — 환경 감지 기법의 실전 효과
이 샘플이 분석 환경에서 보인 가장 주목할 만한 특성은 샌드박스 판정이 갈린 것이다. 세 개의 샌드박스 가운데 Zenbox는 harmless(신뢰도 3)를 반환했고, C2AE는 malicious(신뢰도 50, 패밀리명 AndarielLoader)를, DAS-Security Orcas는 malicious를 각각 반환했다. 2/3가 악성으로 판정했지만, 상용 환경에서 실제로 사용되는 샌드박스 중 하나가 클린 판정을 내렸다는 사실은 이 회피 기법이 적어도 일부 자동화 분석 환경에서 실전 효과를 발휘한다는 것을 입증한다.
이 분열된 판정의 원인은 VT 행동 태그에서 직접 확인된다. detect-debug-environment, long-sleeps, direct-cpu-clock-access, idle — 이 네 개의 태그는 각각 MITRE T1497.002(사용자 활동 기반 검사)와 T1497.003(시간 기반 검사)에 대응한다. 구체적으로는 디버거 존재 여부를 확인하는 환경 핑거프린팅, 샌드박스의 시간 가속을 감지하기 위한 GetTickCount/GetSystemTimeAsFileTime 계열 타이밍 델타 측정, 그리고 자동화 분석 창을 넘기기 위한 장시간 슬립 구간 삽입이 복합적으로 작동하는 것으로 보인다.
direct-cpu-clock-access 태그는 특히 주목할 만하다. CPU 클록에 직접 접근하는 방식은 하이퍼바이저 기반 샌드박스가 시스템 클록을 가속할 때 발생하는 불일치를 감지하는 데 사용된다. 일반적인 Sleep() API 호출은 샌드박스가 가로채 시간을 건너뛸 수 있지만, CPU 타임스탬프 카운터(TSC)를 직접 읽으면 이 우회를 탐지할 수 있다. Zenbox가 클린 판정을 낸 것은 이 타이밍 검사가 해당 환경의 특성을 정확히 식별했거나, 슬립 구간이 분석 타임아웃을 초과했기 때문일 가능성이 높다.
C2AE 샌드박스가 이 샘플에 붙인 패밀리명 AndarielLoader는 또 다른 시사점을 제공한다. 이 명칭은 이 샘플이 완전한 기능의 RAT이 아니라 2단계 페이로드를 내려받는 로더 역할을 할 수 있음을 암시한다. 다만 2단계 페이로드의 정체는 아직 확인되지 않았으며, 이 해석은 샌드박스 패밀리 레이블에 기반한 추론 수준에 머문다.
1998년에 컴파일된 64비트 바이너리 — PE 타임스탬프 위조의 의미
이 샘플의 PE 헤더에 기록된 컴파일 타임스탬프는 1998-10-24다. 이 날짜는 x86-64 아키텍처가 세상에 존재하기도 전이다 — x86-64는 2003년 AMD가 처음 상용화했다. 그런데 이 파일은 명백히 PE32+ executable (GUI) x86-64다. 즉, 이 타임스탬프는 물리적으로 불가능한 날짜이며, 의도적인 위조임이 자명하다(T1562.001).
PE 타임스탬프 위조는 포렌식 타임라인 재구성을 방해하는 데 사용된다. 사고 대응 과정에서 분석가가 "언제 이 파일이 시스템에 들어왔는가"를 추적할 때, 파일 시스템 메타데이터와 PE 타임스탬프를 교차 검증하는 것이 일반적인 절차다. 타임스탬프가 1998년으로 설정돼 있으면 이 교차 검증 자체가 무의미해지고, 타임라인 재구성에 혼란이 생긴다.
공개 보고에 따르면 PE 타임스탬프 위조는 북한 연계 위협 행위자들이 빌드 과정에서 반복적으로 사용하는 기법으로 알려져 있다. 이 샘플에서 1998년이라는 날짜를 선택한 것은 단순히 "0"이나 임의의 과거 날짜를 넣은 것이 아니라, x86-64 아키텍처 이전 시대를 명시적으로 가리키는 날짜를 선택했다는 점에서 — 분석가의 눈에 띄지 않으면서도 타임라인을 교란하려는 의도가 읽힌다.
이 타임스탬프 위조는 앞서 설명한 UPS 섹션 명명 전략, VMware 프로세스 이름 위장과 함께 하나의 일관된 신원 은폐 전략을 구성한다. 파일의 정체(이름), 빌드 이력(타임스탬프), 내부 구조(임포트 테이블)를 모두 분석 도구가 기대하는 정상 패턴에서 벗어나게 만드는 것이다.
HTTP를 역방향으로 — C2 체크인 프로토콜의 의도적 변형
TigerRAT의 C2 통신은 193.56.28.251(AS200373, 3xK Tech GmbH)을 대상으로 하며, 이 통신에서 발화한 IDS 룰들이 이 채널의 특성을 명확히 드러낸다. Proofpoint Emerging Threats Open의 고위험도 룰 ET MALWARE Andariel Backdoor Activity (Checkin)이 발화한 것은 이 IP가 TigerRAT C2 엔드포인트임을 직접 확인해 준다. 그런데 함께 발화한 세 개의 프로토콜 이상 탐지 룰이 더 흥미롭다.
(http_inspect) server response before client request — 서버가 클라이언트 요청보다 먼저 응답을 보냈다는 뜻이다. 표준 HTTP에서는 클라이언트가 요청을 보내야 서버가 응답한다. 이 순서가 역전됐다는 것은 TigerRAT의 C2 채널이 HTTP처럼 보이지만 HTTP의 요청/응답 순서를 의도적으로 위반하도록 설계됐음을 의미한다(T1071.001). SURICATA HTTP Request line incomplete와 SURICATA Applayer Detect protocol only one direction은 이를 보강한다 — HTTP 요청 라인 자체가 불완전하고, 프로토콜 트래픽이 단방향으로만 감지된다는 것이다.
이 패턴은 단순한 HTTP 터널링과 구별된다. 단순 HTTP 터널링은 HTTP 구조를 유지하면서 페이로드만 숨기는 방식인 반면, TigerRAT의 방식은 HTTP 파서가 정상적으로 처리할 수 없는 프레이밍을 의도적으로 생성한다. 프로토콜 인식 기반 네트워크 검사 장비가 이 트래픽을 HTTP로 분류하고 디코딩하려 할 때 파싱에 실패하거나 불완전한 세션으로 처리할 가능성이 있다. 이는 딥 패킷 검사(DPI) 장비를 우회하기 위한 의도적 설계로 해석할 수 있다.
C2 호스트 193.56.28.251의 탐지율은 91개 엔진 중 11개(11/91)로, 페이로드 파일(53/76)에 비해 현저히 낮다. 평판 점수는 -1이며 커뮤니티 악성 투표는 1건이다. 이 낮은 탐지율은 이 IP가 대규모 공격 인프라의 일부가 아니라 특정 작전을 위해 조용히 운용되는 전용 C2 호스트임을 시사한다.
AS200373(3xK Tech GmbH)은 RIPE 할당 193.56.28.0/24 대역에 속하는 소규모 독일 등록 자율 시스템이다. 이 ASN은 현재 이 단일 IP에서만 관측되며, 도메인 계층 없이 bare IP를 직접 C2로 사용하는 구성은 인증서·등록 기록을 남기지 않아 인프라 추적을 어렵게 한다. 추가적인 인프라 피벗은 현 단계에서 제한적이다.
북한 귀속 행위자가 소규모 독일 등록 ASN을 C2 인프라로 선택한 것은 분석적으로 주목할 만한 지점이다. 이전에 공개된 Silent Chollima 인프라 클러스터들이 특정 ASN 패턴을 반복적으로 사용했다면, 이번 선택은 ASN 수준 차단 목록을 의식한 의도적 다변화일 가능성을 배제할 수 없다 — 다만 현 단계 증거로는 이 추론을 단정하기 어렵다.
5년간 살아남은 임플란트 — TigerRAT의 탐지 지형과 운용 패턴
이 샘플은 2020년 12월 21일 공개 리포지토리에 처음 제출됐고, 2025년 11월 15일에 마지막으로 관측됐다. 약 5년의 제출 이력 동안 총 12건의 제출, 9개의 고유 출처가 기록됐다. 이 수치는 이 샘플이 광범위하게 유포된 것이 아니라 극히 제한된 표적에게만 사용됐음을 시사한다 — 대규모 금전 탈취 캠페인이 수백, 수천 건의 제출 기록을 남기는 것과 대조적이다.
탐지율 53/76은 이 샘플이 보안 커뮤니티에 이미 알려진 위협임을 보여준다. ALYac, AhnLab-V3, CrowdStrike, ESET-NOD32, Kaspersky, Fortinet 등 주요 엔진들이 탐지에 성공했다. 그러나 SentinelOne, Acronis, NANO-Antivirus, Webroot, ZoneAlarm 등 17개 엔진은 여전히 미탐지 상태다. 특히 SentinelOne이 탐지하지 못한다는 점은 EDR 환경에서의 탐지 격차를 시사한다.
커뮤니티 투표는 악성 1, 무해 0으로, 이 샘플에 대한 보안 커뮤니티의 평가가 일치한다는 것을 보여준다. 위협 피드 신뢰도는 85로 설정돼 있으며, CTX Team은 이 위협 클러스터를 심각도 62, 신뢰도 85로 등록했다.
TigerRAT은 trojan.nukesped/tigerrat이라는 위협 레이블로 분류되며, 샌드박스에서는 AndarielLoader, nukesped, zyji 등의 이름으로도 식별된다. 이 다중 레이블 상황은 이 악성코드 패밀리가 여러 연구 기관에서 독립적으로 분석되고 명명됐음을 반영한다. 공개 보고에 따르면 TigerRAT은 Silent Chollima(Andariel) 그룹이 운용하는 주요 백도어 도구 중 하나로 알려져 있으며, 원격 명령 실행, 파일 전송, 자격증명 수집 등의 기능을 갖춘 것으로 알려져 있다.
이 샘플이 VMware 프로세스 이름(vmware-vmx-gui.exe)을 사용한다는 점은 표적 환경에 대한 사전 정찰이 이루어졌거나, 적어도 기업 환경에서의 VMware 인프라 운용을 전제로 페이로드가 준비됐음을 시사한다(T1036 마스커레이딩). 이 파일명은 VMware 가상화 환경을 운용하는 기업 네트워크에서 프로세스 목록 기반 탐지를 우회하기 위한 선택으로 보인다.
경화된 임플란트가 시사하는 것 — 탐지 환경에 적응하는 운영팀
이번 분석에서 가장 중요한 신호는 TigerRAT이라는 악성코드 패밀리 자체가 아니다. 이 패밀리는 이미 2020년부터 공개 문서화돼 있고, 주요 보안 엔진들이 탐지한다. 진짜 신호는 단일 샘플 안에 다섯 겹의 분석 무력화 장치가 정밀하게 중첩돼 있다는 사실이다.
커스텀 패커(UPS 섹션, 엔트로피 7.37, 186KB, 임포트 0), 타이밍 기반 샌드박스 우회(CPU 클록 직접 접근, 장시간 슬립), 사용자 활동 감지, 위조된 PE 타임스탬프(1998-10-24), HTTP 프로토콜 역방향 C2 프레이밍 — 이 다섯 가지 기법이 하나의 샘플에 집약돼 있다. 이 조합은 운영팀이 자신들이 맞닥뜨릴 탐지 메커니즘을 구체적으로 인식하고, 각 레이어를 그에 맞춰 설계했음을 시사한다.
특히 샌드박스 판정 분열 — Zenbox 클린, C2AE·DAS-Security Orcas 악성 — 은 이 설계가 실전에서 작동한다는 증거다. 자동화 분석 파이프라인이 Zenbox의 클린 판정을 기준으로 삼는 환경이라면, 이 샘플은 초기 트리아지를 통과할 수 있다. 이는 운영팀이 특정 상용 샌드박스 환경의 특성을 파악하고 그에 맞춘 회피 로직을 구현했을 가능성을 열어둔다.
C2 인프라 선택도 같은 맥락에서 읽힌다. AS200373(3xK Tech GmbH)은 소규모 RIPE 할당 ASN으로, 현재 관측 범위에서 단일 IP에만 연결돼 있다. 이전 Silent Chollima 캠페인에서 반복적으로 등장한 ASN 패턴이 있다면, 이번 선택은 그 패턴에서 의도적으로 벗어난 것일 수 있다. 알려진 인프라 클러스터에 기반한 AS 수준 차단 목록이 확산되는 환경에서, 소규모 유럽 ASN을 통한 단일 호스트 C2 운용은 그 차단 목록을 우회하는 전략으로 기능한다. 물론 현 단계 증거로는 이 해석을 확정하기 어렵다 — 관측된 IOC가 제한적이어서 더 넓은 인프라 클러스터와의 연결을 입증하기에는 근거가 부족하다.
5년의 운용 기간 동안 12건의 제출이라는 극히 낮은 노출 빈도는 이 임플란트가 대규모 캠페인이 아닌 정밀 표적 작전에 사용됐음을 시사한다. 탐지 환경에 맞춰 지속적으로 경화되면서도 새로운 도구로 교체하지 않는 이 운영 방식은, 기존 임플란트의 기능적 충분성을 유지하면서 탐지 회피 역량만을 선택적으로 강화하는 전략적 선택으로 해석된다. 이는 새로운 도구 개발에 드는 비용과 위험을 최소화하면서 운용 지속성을 극대화하려는 운영팀의 성숙한 판단을 반영한다.
VMware 프로세스 위장이 암시하는 표적 프로파일 — 기업 가상화 인프라를 운용하는 조직 — 과 스파이 활동이라는 귀속 동기를 결합하면, 방위·정부·핵심 기반시설·기술 분야의 기업 환경이 가장 개연성 있는 표적 범주로 좁혀진다. 그러나 현 단계에서 특정 산업 수직이나 지역을 단정하기는 어려우며, 이 표적 프로파일은 추론으로 다뤄야 한다.
결국 이 샘플이 보여주는 것은 TigerRAT의 존재가 아니라, 그것이 어떻게 진화하고 있는가다. 알려진 패밀리를 교체하는 대신 탐지 환경에 맞춰 경화하는 전략 — 그것이 이 운영팀이 5년 동안 같은 도구를 계속 사용할 수 있었던 이유일 것이다.