
만료된 UltraSurf 서명, 2년 지나도 유통되는 트로이목마
검열 우회 도구 UltraSurf를 자처한 실행 파일이 2024년 만료된 코드 서명을 달고도 2026년까지 VirusTotal 제출 트래픽에서 관측됐다. UPX 고엔트로피 패킹과 샌드박스 탐지·장시간 슬립으로 방어 회피를 시도하며, 샌드박스 판정은 4개 중 정확히 절반으로 갈렸다.
만료된 서명, 살아있는 유통 — UltraSurf 브랜드를 입은 트로이목마의 역설
검열 우회 도구로 알려진 UltraSurf(Ultrareach)를 자처하는 실행 파일 한 건이 VirusTotal에서 19/74의 탐지율을 기록하며 CTX Team의 추적선에 들어왔다. 눈에 띄는 것은 이 파일이 여전히 정상적인 코드 서명 체인을 달고 있다는 점이다 — 다만 그 서명이 2년 전에 죽은 서명이라는 점이 문제다. 해당 파일(SHA256 168e625c…)은 Ultrareach Internet Corp. 명의로 발급된 리프 인증서를 달고 있고, 상위 체인은 GlobalSign GCC R45 CodeSigning CA 2020 → GlobalSign Code Signing Root R45 → GlobalSign Root CA - R3로 이어진다. 그런데 리프 인증서의 체인 상태는 "이 인증서 또는 체인의 인증서 중 하나가 유효 기간이 아니다"로 명시돼 있다. 유효 기간은 2021년 6월 9일부터 2024년 6월 9일까지, 정확히 3년 — 일련번호 79 D4 76 65 56 DF DE 71 1F 5F AE B0로 특정되는 이 인증서는 2024년 중반에 이미 죽었다. 그럼에도 이 파일은 VirusTotal 기준 2026년 7월 7일까지 제출 트래픽에서 관측되며 3,485건의 제출, 2,507개의 고유 소스를 축적했다.
즉 이 샘플은 "서명이 없는 악성코드"가 아니라 "서명은 있지만 신뢰가 소멸된" 사례다. 상위 CA와 루트(GlobalSign Code Signing Root R45, GlobalSign Root CA - R3)는 각각 2029년과 2030년까지 여전히 유효하기 때문에, 얼핏 보면 정상적인 서명 체계처럼 보이지만 실제 서명 당사자의 신원 보증은 이미 만료된 상태로 유통되고 있는 셈이다. 파일명 자체도 이 정황을 뒷받침한다 — alt_names에는 usf.exe, ultrasurf.exe 외에 C:\Users\whiggs\Desktop\PortableApps\UltraSurf_22.11.exe, C:\Users\user\AppData\Local\Temp\qv0xvwcs.p4z\usf.exe 같은 경로가 함께 잡혀, 포터블 앱 번들 또는 임시 압축 해제 경로를 거쳐 실행된 흔적을 보인다. VirusTotal의 태그 목록에는 known-distributor와 signed가 나란히 붙어 있는데, 이는 정품 유통망을 통해 신뢰를 얻은 도구가 그 신뢰를 그대로 악용/재포장되고 있다는 해석과 맞아떨어진다 — 이용자 입장에서는 "서명된 유명 도구"로 인식하고 실행할 가능성이 높다는 뜻이다(T1204.002).
UPX 패킹과 지연 실행 — 방어 회피로 완성되는 실행 체인
서명 문제만으로 이 파일을 단순한 PUA로 단정하기는 어렵다. 정적 분석 저항성을 강화한 흔적이 뚜렷하기 때문이다. PE 섹션 구조를 보면 UPX0 섹션의 엔트로피는 0.0으로 비어 있는 반면 UPX1 섹션은 엔트로피 8.0 — 이론적 최댓값에 도달한 상태다. 3,233,792바이트 크기의 이 섹션이 실질적인 페이로드를 담고 있으며, 실행 시점에 압축을 해제한 뒤에야 실제 코드가 드러나는 구조다(T1027.002). 이는 kevoreilly가 작성한 CAPEv2 계열 YARA 룰 UPX(OEP dump 탐지용)가 두 차례 동시에 매치된 사실과도 정합적이다. 여기에 더해 ditekSHen이 작성한 PUA_Win_UltraSurf 룰까지 발화해, 이 바이너리가 UltraSurf/Ultrareach 계열의 알려진 패턴에도 걸린다는 점이 확인된다.
행위 프로파일에서 더 흥미로운 대목은 방어 회피 태그의 조합이다. detect-debug-environment, checks-user-input, long-sleeps 세 개의 태그가 동시에 붙어 있는데, 이는 분석 환경(디버거·자동화 샌드박스)을 감지해 실행을 지연시키거나 조건부로 동작을 바꾸는 전형적인 샌드박스 회피 전략과 일치한다(T1497). 실제로 이 파일에 대한 샌드박스 판정은 4개 중 정확히 절반으로 갈린다. C2AE는 신뢰도 70으로 이 파일을 트로이목마로 분류하며 Glupteba2라는 구체적 패밀리명을 붙였고 Dr.Web vxCube도 악성으로 판정한 반면, DAS-Security Orcas와 Zenbox는 각각 클린 판정을 내렸다. 이 절반의 분열은 우연이 아니라, 환경 인지형 스톨링(stalling) 전략이 실제로 일부 샌드박스에서는 작동하고 일부에서는 뚫혔다는 신호로 읽을 수 있다.
여기에 via-tor 태그가 얹히면 그림이 한층 뚜렷해진다. UltraSurf 자체가 원래 Tor와 유사한 익명 프록시 우회 기술을 표방하는 도구이므로, 정상 동작으로도 Tor 라우팅 태그가 붙을 수 있다. 그러나 IDS 시그니처 목록을 보면 단순한 정상 프록시 트래픽으로 설명하기 어려운 신호들이 함께 잡힌다. Snort 등록 사용자 룰셋에서 "Non-Standard IP protocol", "PROTOCOL-DNS SPOOF query response with TTL of 1 min. and no authority", "PROTOCOL-ICMP Unusual PING detected" 세 건이 매치됐고, Sigma 룰셋에서는 Joe Security 룰셋 기준 critical 심각도 1건이 별도로 발화했다. 비표준 IP 프로토콜 사용과 TTL이 1분에 불과한 스푸핑성 DNS 응답, 비정상 ICMP 핑까지 겹치는 조합은, 단순한 검열 우회용 트래픽이라기보다는 은닉·회피성 통신 채널을 시사하는 프로파일에 가깝다(T1090.003 다중 홉 프록시와 개념적으로 부합).
30일마다 갈아입는 신원 — Hurricane Electric AS6939의 인증서 회전 패턴
이 파일 인디케이터와 별개로, 같은 피드 항목에는 4개의 IP가 함께 잡혀 있다. 74.82.60.17, 64.62.219.46, 74.82.60.27, 74.82.60.32 — 네 IP 모두 Hurricane Electric LLC가 소유한 AS6939에 속하며, 두 개의 인접한 네트블록(74.82.60.0/23과 64.62.216.0/21)에 나뉘어 있다. VirusTotal은 이 네 IP 모두에 vpn, self-signed 태그를 부여했는데, 실제로 각 IP가 제시하는 TLS 인증서를 뜯어보면 흥미로운 패턴이 드러난다.
74.82.60.17은 2026년 6월 25일부터 7월 25일까지 정확히 30일짜리 자가서명 인증서를 제시하는데, 발급자 CN은 brexo.com(아칸소주 Yellville 소재 "Brexo Co."로 자칭)이다. 64.62.219.46은 6월 9일부터 7월 9일까지 30일짜리 인증서를 쓰며 발급자는 jouchou.com(뉴욕주 Albion의 "Jouchou Co."). 74.82.60.27은 7월 15일부터 8월 14일까지 wyong.com(웨스트버지니아주 Lost Creek의 "Wyong Inc."), 74.82.60.32는 7월 17일부터 8월 16일까지 waldeck.com(미시간주 Maple Rapids의 "Waldeck Inc.")을 각각 내세운다. 네 인증서 모두 유효 기간이 정확히 30일로 통일돼 있고, 발급 시점은 6월 9일→6월 25일→7월 15일→7월 17일 순으로 대략 2~5주 간격으로 배치돼 있다. 서로 다른 주(state), 서로 다른 도시, 서로 다른 회사명을 내세우지만 어느 하나도 다른 노드와 CN이나 시리얼을 공유하지 않는다.
이 패턴을 어떻게 읽어야 할까. 동일한 호스팅 사업자 안에서 노드마다 매번 새로운 자가서명 인증서와 그럴듯한 가짜 법인명을 자동 생성해 발급하는 방식은, 유기적으로 성장한 정상 호스팅 환경에서는 흔히 보이지 않는 운영 패턴이다. 오히려 프록시나 VPN 릴레이 인프라를 스크립트 기반으로 순환 교체하는 운영 방식과 맞아떨어진다는 것이 CTX Team의 해석이다. 다만 이 해석에는 중요한 단서가 붙는다 — 네 IP 모두 VirusTotal 기준 탐지율이 0/91이며, reputation 점수도 0, 커뮤니티 투표도 전혀 없다. 즉 이 인프라 클러스터에 대한 판단은 전적으로 ASN·인증서 회전이라는 구조적 유사성에 근거한 것이며, 실제 악성 트래픽이 확인된 사례는 이 기록 안에 없다. 파일 쪽의 via-tor 태그와 이 IP 코호트를 직접 연결하는 도메인 해석 기록이나 인증서 시리얼 중첩도 존재하지 않는다 — 두 신호는 같은 피드 항목 안에 나란히 놓여 있을 뿐, 기술적으로 서로를 증명하지는 못한다. 이 지점에서는 "의심스럽지만 미확인"이라는 표현이 정확하다.
Glupteba2와 'hive' 사이 — 툴 정체성의 모호함이 말해주는 것
이 사례가 흥미로운 또 다른 이유는 정체성 자체의 혼란이다. VirusTotal의 popular_names는 이 파일을 ultrasurf, ultrareach, abapplication으로 분류하고, threat_label은 trojan.ultrasurf/ultrareach로 붙는다. 그런데 샌드박스 판정 중 하나(C2AE)는 이를 Glupteba2라는 별개의 패밀리명으로 지목했다. Glupteba는 원래 봇넷/다운로더 계열로 알려진 패밀리이며 UltraSurf와는 계보상 무관하다. 이 불일치는 단순한 오탐일 수도 있고, 혹은 UltraSurf라는 정상 브랜드의 코드 베이스나 패커 서명 특징이 다른 트로이목마 계열의 행위 시그니처와 겹쳐 보이는 상황일 수도 있다 — 현재 확인 가능한 근거만으로는 어느 쪽인지 단정하기 어렵다.
여기에 피드 레벨에서 함께 태깅된 hive라는 패밀리명은 한층 더 이질적이다. Hive는 랜섬웨어 계열로 알려진 이름인데, 이 파일의 서명 체인·PE 구조·샌드박스 행위·YARA/IDS 매치 어디에도 랜섬웨어와 직접 연결되는 증거는 나타나지 않는다. 즉 hive 태그는 이 파일의 실제 관측된 행위와 정합되지 않는, 말하자면 라벨과 실증 사이의 간극으로 봐야 한다. 이런 간극을 단순히 무시하기보다는, PUA와 트로이목마 사이의 경계가 모호한 이중 용도(dual-use) 도구에서 흔히 나타나는 라벨링 잡음으로 이해하는 편이 합리적이다.
industry_view를 조금 더 들여다보면 이 모호함의 폭이 드러난다. 19/74라는 탐지율 자체는 ALYac, Arcabit, BitDefender, ESET-NOD32, Fortinet, Tencent 등 19개 엔진이 위협으로 분류했다는 뜻이지만, AhnLab-V3, Avast, CrowdStrike, F-Secure, Cylance, DrWeb 등 상당수의 주요 엔진은 여전히 미탐지 상태로 남아 있다. 커뮤니티 투표 역시 malicious 4표, harmless 1표로 완전한 합의에 이르지 못했고 전체 reputation 점수는 -3에 그친다. 정상 검열 우회 도구의 명성과, 트로이목마 판정 사이에서 탐지 엔진들의 판단이 갈리는 이 지점이야말로 이번 사례의 핵심 특징이다 — 명확한 "이것은 명백한 악성코드다"가 아니라 "정상 브랜드의 신뢰를 입은 채 유통되는 회색지대 도구"라는 프레임이 더 정확하다.
행위자 태그의 이질성, 그리고 낮은 신뢰도
이 피드 항목에는 서로 이질적인 세 개의 행위자 이름이 함께 태깅돼 있다 — 이란 연계로 알려진 MuddyWater(별칭 Seedworm, Mercury), 북한 연계로 알려진 Silent Chollima/Andariel(별칭 Stonefly, Onyx Sleet), 그리고 Dalbit. 여기에 첩보(espionage)와 금전적 이익(financial-gain)이라는 서로 다른 동기 태그, 그리고 앞서 언급한 랜섬웨어 계열 라벨 hive까지 겹쳐 있다. 그러나 이 세 행위자 사이에 공통되는 기법·인프라·서명 증거는 이번 기록 안에서 확인되지 않는다. 국가 배경도, 표적 성향도, 알려진 툴셋도 서로 다른 세 클러스터가 하나의 파일 인디케이터에 동시에 걸려 있다는 사실 자체는, 단일하고 일관된 행위자 귀속을 이 데이터만으로 내리기 어렵다는 것을 보여주는 신호로 봐야 한다. 즉 이 태그 조합을 "세 행위자가 공동 운영하는 캠페인"으로 해석하는 것은 근거가 빈약하며, 오히려 서로 경합하거나 느슨하게 결합된 다중 귀속 태깅에 가깝다고 보는 편이 안전하다. 현 단계 증거로는 특정 행위자에 대한 단정적 결론은 어렵다.
이중 용도 도구가 남기는 구조적 신호
이번 사례가 시사하는 가장 뚜렷한 지점은, 정상 브랜드의 신뢰 자산이 얼마나 오래도록 위협 유통에 재활용될 수 있는지에 있다. Ultrareach Internet Corp.의 서명 체인은 2024년에 이미 죽었지만, 그 서명이 붙은 파일은 2026년 중반까지도 여전히 제출 트래픽에서 관측된다. 이는 서명 검증 로직이 "서명 존재 여부"에만 의존할 경우, 유효 기간이 만료된 신뢰를 얼마든지 우회 신호로 활용할 수 있다는 점을 재확인시켜준다. 여기에 UPX를 이용한 고엔트로피 패킹, 디버거·자동화 환경 탐지, 장시간 슬립을 조합한 회피 전략이 더해지면서, 이 도구는 "잘 알려진 검열 우회 유틸리티"라는 외피와 "탐지 회피형 트로이목마"라는 실체 사이의 경계를 의도적으로 흐린다.
같은 피드 항목 안에 함께 놓인 Hurricane Electric AS6939의 IP 코호트는, 이 파일의 서사를 직접 증명하지는 못하지만 흥미로운 병렬 신호를 제공한다. 30일 주기로 자가서명 인증서를 교체하고, 매번 그럴듯한 가짜 법인명을 내세우는 방식은 스크립트 기반의 프록시/VPN 인프라 순환 운영에서 나타날 법한 패턴이며, 만약 이런 유형의 노드가 실제로 방어 회피형 트래픽 라우팅에 쓰인다면 도메인이나 정적 인증서 기반의 위협 헌팅 방식이 갖는 한계를 그대로 드러낸다. 다만 이 코호트가 0/91의 탐지율과 무투표 상태에 머물러 있다는 사실은, 이 관측을 "확인된 C2 발판"이 아니라 "구조적으로 의심스럽지만 아직 증거가 얇은 후보"로 남겨야 한다는 뜻이기도 하다.
종합하면 이번 기록은 하나의 잘 뒷받침된 파일 인디케이터 — 만료된 서명 체인, 이름 붙은 샌드박스 패밀리, 다수의 YARA·IDS·Sigma 매치로 뒷받침되는 — 와, 구조적으로만 묶이는 미확증 인프라 코호트, 그리고 서로 이질적인 행위자 태그 집합이 한 화면 안에 공존하는 사례다. 표적 산업 태그는 '도매(wholesale)' 하나뿐이고 지역 정보도 명시돼 있지 않아, 이를 특정 섹터를 겨냥한 표적 캠페인으로 단정하기는 어렵다. 오히려 이 사례가 시사하는 바는 조직 내부에서 포터블 VPN·검열 우회 유틸리티를 임의로 설치하는 행위 자체가, 서명 유효성 검증이 느슨한 환경에서는 여전히 상당한 노출 경로로 남아 있다는 점이다. 이 기록에 걸린 인증서 만료 시점, 샌드박스 판정의 분열, 그리고 인프라 코호트의 구조적 유사성은 각각 독립적으로 검증돼야 할 가설이며, 향후 추가 탐지나 도메인·URL 해석 증거가 축적될 때까지는 확정된 결론이 아니라 계속 추적할 단서로 다뤄야 할 것으로 보인다.