
KMS 정품 인증 도구로 위장한 Gamaredon 스파이웨어 캠페인 포착
KMSpico·AAct 등 윈도우 불법 인증 도구 7개 파일로 구성된 클러스터에서 Konni 스파이웨어 DNA와 WinDivert 패킷 캡처 드라이버가 확인됐다. Gamaredon Group에 귀속된 이 캠페인은 사용자가 직접 파일을 내려받아 실행하는 행위 자체를 초기 접근 벡터로 삼아 방위 산업을 표적으로 한다.
KMS 인증서의 이중 얼굴 — 자가서명 루트로 위장한 스파이웨어 배달 체계
정품 인증 도구를 찾는 사용자가 직접 실행 파일을 내려받아 클릭하는 순간, 공격은 이미 완료된다. 스피어피싱 이메일도, 취약점 익스플로잇도 필요 없다. CTX Team이 추적한 이번 캠페인은 KMSpico, KMSAuto, AAct, DriverPack이라는 이름의 윈도우 정품 인증 도구와 드라이버 설치 프로그램 7개 파일로 구성된 클러스터로, 파일 전체에 걸쳐 자가서명 신뢰 불가 루트 인증서, WinDivert 패킷 캡처 드라이버, Dotfuscator 난독화, Windows Defender 레지스트리 비활성화 코드가 중첩 적용돼 있다. 그 가운데 AAct_x64.exe(SHA256: db3aa782e297b2b5d9e2a1281ebb9afd416c82722c2d2a285ef94070e4cdd5d2)에서는 Malpedia/Fraunhofer FKIE 출처의 YARA 룰 win_konni_auto가 발화했다 — 겉으로는 평범한 KMS 활성화 도구처럼 보이는 파일이 Konni 스파이웨어 계열의 DNA를 내장하고 있다는 가장 날카로운 단일 지표다. 이 캠페인은 방위 산업 분야를 표적으로 하는 스파이 활동 동기가 귀속된 Gamaredon Group과 연계된 것으로 분류됐다.
두 개의 빌더, 하나의 작전 설계
이 클러스터를 분석할 때 가장 먼저 눈에 들어오는 것은 파일 7개가 단일 빌더에서 나온 것이 아니라는 점이다. CTX Team의 분석은 두 개의 독립적인 빌드 파이프라인을 식별했다.
첫 번째 파이프라인은 KMSpico 컴포넌트 세트인 KMSELDI.exe, AutoPico.exe, Service_KMS.exe 세 파일로 구성된다. 이 세 파일은 imphash f34d5f2d4577ed6d9ceec516c1f5a744를 공유하고, 동일한 PEiD 패커 시그니처를 가지며, PE 타임스탬프가 모두 2016-01-11로 일치한다. 동일한 빌드 환경 또는 공통 템플릿에서 컴파일됐음을 강하게 시사하는 지문이다. 세 파일 모두 @ByELDI; @ByELDI Certificate Authority라는 자가서명 인증서(일련번호 CB C9 53 5C 7A 4B 70 DE 52 6C 01 39 FE AF 2C 9C, 유효 기간 2016~2046년)로 서명돼 있으며, 코드 서명 검증 결과는 "신뢰 공급자가 신뢰하지 않는 루트 인증서에서 체인이 종료됐다"는 판정이다. 서명된 것처럼 보이지만 체인 유효성 검사는 실패하는 구조 — T1553.002(코드 서명 신뢰 통제 우회)의 전형적 적용이다.
두 번째 파이프라인은 AAct_x64.exe와 KMSAuto x64.exe 두 파일로 구성된 x64 UPX 패킹 쌍이다. 이 둘은 imphash 7d6d1e9e2408e732d49428767abf2778를 공유하며, WZTeam이라는 별도의 자가서명 인증서(일련번호 8A C1 A3 10 13 49 C2 8A 4D 33 94 7C FC D0 76 62, 유효 기간 2016~2039년)로 묶인다. UPX1 섹션 엔트로피가 각각 7.88과 7.80에 달해 강한 패킹이 확인된다.
두 파이프라인이 서로 다른 서명자, 다른 imphash, 다른 패킹 방식을 사용한다는 사실은 분리된 빌더 환경을 의미한다. 그런데 이 두 파이프라인의 산출물 5개 전부에서 YARA 룰 WinDivert_Driver가 발화한다. 빌더가 달라도 WinDivert 패킷 캡처 드라이버 임베딩이라는 공통 요구사항이 관철됐다는 뜻이다 — 이것이 캠페인 수준의 설계 의도가 두 빌드 파이프라인을 가로질러 일관되게 적용됐음을 보여주는 핵심 응집 증거다.
합법처럼 보이는 서명의 네 가지 얼굴
이 클러스터에서 가장 주목할 만한 특징 중 하나는 서명 포스처의 다양성이다. 7개 파일이 네 가지 서로 다른 서명 전략을 구사한다.
자가서명 신뢰 불가 루트 — 5개 파일. @ByELDI CA 서명 3개와 WZTeam 서명 2개가 여기에 해당한다. 모두 "signed" 태그가 붙어 있어 표면적으로는 서명된 파일처럼 보이지만, 실제 체인 검증 결과는 신뢰 불가 루트에서 종료된다. 사용자나 일부 보안 도구가 서명 여부만 확인하고 체인 유효성을 검증하지 않을 경우 정상 파일로 오인할 수 있는 구조다.
만료된 합법 CA 체인 — 1개 파일. DriverPack-17-Online.exe(3821895d6df56147856b21ad6f50711f074bc4d46ecb5a759ad00fbbe9856337)는 실제 Sectigo RSA Code Signing CA 체인을 통해 서명됐다. 리프 인증서 명의는 "Kuzyakov Artur Vyacheslavovich IP"이며 유효 기간은 2019-08-09부터 2020-08-08까지였다 — 즉 실행 시점에 이미 유효 기간이 만료된 상태다. 합법적 CA 체인을 유효 기간 이후에도 재활용하는 패턴으로, 이전에 취득한 인증서를 기회주의적으로 사용하는 것으로 해석할 수 있다. Zenbox 샌드박스는 이 파일에 MALWARE/STEALER/RANSOM/PHISHING/TROJAN/EVADER를 100% 신뢰도로 판정했다 — 이 클러스터에서 가장 심각한 샌드박스 판정이다.
발급자가 명시적으로 폐기한 인증서 — 1개 파일. AutoItRun.exe(77c2372364b6dd56bc787fda46e6f4240aaa0353ead1e3071224d454038a545e)는 COMODO RSA Code Signing CA가 발급한 인증서(명의: Alfredo Anibal Santos Silva, 일련번호 00 D0 28 A3 6B BE 4E C1 B7 FB F8 0D 51 7A 1B 56 C6)를 달고 있으나, 검증 결과는 "발급자에 의해 인증서가 명시적으로 폐기됐다"는 판정이다. 이 파일은 AutoItRun.exe라는 이름으로 'Ultra Virus Killer'(제조사: Carifred)를 사칭하며, YARA 룰 AutoIT_Compiled와 SUSP_Imphash_Mar23_3이 발화한다. 다른 6개 파일과 imphash, 서명자, 위협 레이블을 전혀 공유하지 않아 별도로 수급된 루어로 분류된다.
이처럼 자가서명 신뢰 불가 루트, 만료된 합법 CA, 폐기된 합법 CA라는 세 가지 서명 전략이 단일 7파일 클러스터 안에 혼재한다는 사실은, 운영자가 단일한 통제된 서명 인프라를 유지하기보다 기회주의적으로 인증서를 수급하고 있음을 시사한다.
다층 회피 스택 — 빌더를 가로지르는 공통 설계
두 빌드 파이프라인이 공유하는 것은 WinDivert 드라이버만이 아니다. 각 파이프라인은 자신만의 추가 회피 레이어를 갖추고 있으며, 이 레이어들이 합쳐져 탐지를 어렵게 만드는 중첩 구조를 형성한다.
@ByELDI .NET 트리오(KMSELDI.exe, AutoPico.exe, Service_KMS.exe)에는 Dotfuscator 난독화(INDICATOR_EXE_Packed_Dotfuscator 발화)와 Formbook 스타일의 안티후킹 바이패스(FormhookB 발화)가 적용돼 있다. Dotfuscator는 .NET 어셈블리의 제어 흐름, 문자열, 심볼을 변형해 역공학을 방해하는 상용 난독화 도구다. 여기에 Formbook RAT 계열에서 사용되는 안티후킹 코드가 함께 탑재됐다는 점은 단순한 정품 인증 도구가 아님을 명확히 보여준다. YARA 룰 Multifamily_RAT_Detection 역시 이 세 파일 전체에서 발화한다.
WZTeam UPX 쌍(AAct_x64.exe, KMSAuto x64.exe)은 UPX 패킹(UPX1 섹션 엔트로피 7.88/7.80) 위에 Windows Defender 비활성화 레지스트리 키 조합을 임베딩하고 있다. YARA 룰 INDICATOR_SUSPICIOUS_EXE_RegKeyComb_DisableWinDefender가 두 파일 모두에서 발화하며, 이는 UPX 언패킹 이후 실행 환경에서 Defender를 무력화하려는 의도적 방어 회피 단계다(T1553).
탐지율 분포도 주목할 만하다. VirusTotal 기준으로 KMSAuto x64.exe(b839e6f4a6d6facd4194c8ca856a9876d31c355c176daa2a7b3917c4b7aa9f4a)는 53/76, AAct_x64.exe는 58/76을 기록해 상대적으로 높은 탐지율을 보이는 반면, Service_KMS.exe는 25/76에 그친다. 커뮤니티 투표에서 Service_KMS.exe는 mal/harm = 4/23으로 무해하다는 판정이 압도적이다 — 이는 이 파일이 오랫동안 정품 KMSpico 컴포넌트로 인식돼 왔음을 반영하는 동시에, 탐지 공백이 실제로 존재함을 의미한다.
WinDivert와 Konni — 활성화 도구 안에 숨겨진 스파이 역량
이 캠페인의 작전적 의도를 가장 선명하게 드러내는 두 가지 기술적 신호가 있다.
첫 번째는 WinDivert 사용자 모드 패킷 캡처 드라이버다. YARA 룰 WinDivert_Driver는 KMS 계열 5개 파일 전체 — db3aa782, b839e6f4, 50ebfa1d, 4a714d98, 2b533757 — 에서 발화한다. WinDivert는 사용자 모드에서 네트워크 패킷을 가로채고 수정할 수 있는 합법적 드라이버이지만, KMS 정품 인증 도구가 이 기능을 필요로 할 이유는 없다. 패킷 인터셉션 역량은 자격증명, 세션 토큰, 또는 네트워크 트래픽 내 민감 데이터 수집에 활용될 수 있다. 이 역량이 두 개의 독립된 빌드 파이프라인 산출물 전체에 일관되게 탑재됐다는 사실은 캠페인 수준의 공통 설계 요구사항임을 강하게 시사한다.
두 번째는 win_konni_auto YARA 룰의 발화다. 이 룰은 Malpedia/Fraunhofer FKIE가 관리하는 Konni 스파이웨어 탐지 룰셋으로, AAct_x64.exe(db3aa782) 단 하나에서만 발화했다. Konni는 .NET 기반 원격 접근 트로이 목마(RAT)로, 스파이 활동 목적의 작전에서 관측돼 온 임플란트 계열이다. 겉으로는 평범한 KMS 활성화 유틸리티처럼 보이는 파일에서 이 룰이 발화했다는 것은 — 이 파일이 Konni 계열 페이로드를 내장하거나 드롭할 가능성을 직접적으로 시사하는 가장 강력한 단일 지표다.
C2 통신 측면에서는 KMSELDI.exe, AutoPico.exe, KMSAuto x64.exe 세 파일에 via-tor 행동 태그가 붙어 있어 Tor를 경유한 명령제어 통신 가능성을 시사한다. AutoPico.exe의 샌드박스 실행에서는 Snort IDS 룰 PROTOCOL-ICMP Unusual PING detected와 PROTOCOL-ICMP Echo Reply가 발화해 능동적 네트워크 정찰 행위가 관측됐다. 다만 현재까지 식별 가능한 네트워크 IOC — IP 주소, 도메인, URL — 는 확인되지 않았다. C2 인프라가 Tor를 통해 라우팅되고 있어 해석 가능한 네트워크 지표가 남지 않는다면, 탐지는 엔드포인트 행동 지표에 의존할 수밖에 없다는 분석적 공백이 존재한다.
초기 접근에서 지속성까지 — 공격 사슬의 전개
이 캠페인의 진입 벡터는 소프트웨어 불법 복제 수요다. 사용자가 KMSpico, KMSAuto, AAct, DriverPack 같은 무료 윈도우 정품 인증 도구나 드라이버 설치 프로그램을 찾아 직접 실행하는 행위(T1204.002) 자체가 공격의 시작점이다. KMSELDI.exe는 VirusTotal에 3,631건이 제출됐고 고유 출처는 2,816개에 달한다 — 특정 표적을 겨냥한 스피어피싱이 아니라 광범위한 사용자 주도 배포가 이뤄지고 있음을 보여주는 수치다.
실행 시점에 코드 서명 인증서는 사용자 의심을 낮추는 역할을 한다(T1553.002). 앞서 설명한 네 가지 서명 포스처가 모두 이 단계에서 작동한다. 특히 DriverPack-17-Online.exe는 실제 Sectigo 체인을 달고 있어 보안 의식이 있는 사용자도 속을 가능성이 있다 — 단, 리프 인증서 유효 기간이 2020-08-08에 만료됐으므로 실행 시점에는 이미 유효하지 않은 상태다.
실행 이후 방어 회피 단계에서는 앞서 설명한 다층 스택이 순차적으로 작동한다. UPX 언패킹 후 Windows Defender 레지스트리 비활성화, Dotfuscator 난독화로 인한 분석 방해, FormhookB 안티후킹 바이패스가 중첩된다.
지속성 확보는 AutoPico.exe와 Service_KMS.exe를 통해 이뤄진다. AutoPico.exe(4a714d98)는 persistence와 executes-dropped-file 태그를 가지며, Zenbox 샌드박스는 이 파일을 MALWARE/EVADER로 72% 신뢰도 판정했다. Service_KMS.exe(2b533757)는 C:\Program Files\KMSpico\Service_KMS.exe 경로에 설치되는 서비스 기반 지속성 메커니즘으로 기능한다. 이 경로는 정품 KMSpico 설치 경로와 동일하게 설계돼 있어 파일 시스템 수준의 이상 탐지를 회피하는 데 유리하다.
수집 단계에서는 5개 파일 전체에 임베딩된 WinDivert 드라이버가 네트워크 트래픽 인터셉션 역량을 제공한다. 현 단계 증거로는 수집 대상 데이터의 구체적 내용을 직접 확인하기 어렵지만, 자격증명이나 세션 데이터 수집과 일치하는 역량이다. 명령제어 통신은 Tor 경유 가능성이 시사되며, 식별 가능한 네트워크 IOC가 없다는 점에서 인프라는 현재 운영 가능 상태를 유지하고 있을 가능성이 높다.
행위자와 귀속 — 스파이 동기의 맥락
이 클러스터는 Gamaredon Group에 귀속됐다. Gamaredon Group은 Shuckworm, Aqua Blizzard, UAC-0010, Actinium, Primitive Bear, Armageddon 등 약 15개의 별칭으로 추적되는 행위자로, 방위 산업 분야를 표적으로 하는 스파이 활동 동기가 귀속 정보에 명시돼 있다. 러시아 국가 연계 행위자라는 정렬은 행위자 이름과 별칭 세트 — 특히 Aqua Blizzard라는 마이크로소프트 명칭 — 에서 추론된 것이며, 현 단계에서 이를 독립적으로 확인하는 공개 벤더 보고서는 확인되지 않았다. 따라서 러시아 국가 연계라는 정렬에 대한 신뢰도는 중간 수준으로 평가한다.
귀속의 기술적 근거로는 win_konni_auto YARA 룰 발화가 가장 강력하다. Konni 계열 임플란트가 스파이 활동 목적 작전에서 관측돼 왔다는 점은 공개 보고에서 알려진 사실이며, 이 룰의 발화는 방위 산업 표적 스파이 활동이라는 귀속 정보와 일관된다. via-tor 행동 태그와 ICMP 정찰 IDS 룰 발화도 단순한 PUA 배포가 아닌 정보 수집 목적의 작전임을 시사하는 행동 신호다.
피라이시 루어의 전략적 함의
이 캠페인이 시사하는 가장 중요한 변화는 초기 접근 벡터의 선택에 있다. 스피어피싱 이메일을 보내거나 취약점을 익스플로잇하는 대신, 운영자는 사용자가 스스로 찾아와 실행하는 소프트웨어를 무기화했다. 이 접근 방식은 스피어피싱 인프라 — 도메인, 이메일 계정, 첨부 파일 배달 메커니즘 — 를 전혀 필요로 하지 않는다. 식별 가능한 네트워크 IOC가 부재한 이유가 여기에 있을 수 있다: C2가 Tor를 통해 라우팅되고 배달 인프라가 사용자 주도 다운로드에 의존한다면, 전통적인 인프라 기반 탐지 신호가 남지 않는다.
WinDivert 드라이버가 두 개의 독립된 빌드 파이프라인 산출물 전체에 균일하게 탑재됐다는 사실은 이 역량이 특정 빌더의 부산물이 아니라 캠페인 수준에서 명시적으로 요구된 기능임을 의미한다. 빌더가 교체되거나 서명자가 바뀌어도 이 역량은 유지된다 — 이는 네트워크 인터셉션이 이 캠페인의 핵심 수집 메커니즘으로 설계됐음을 시사한다.
서명 포스처의 다양성 — 자가서명 신뢰 불가 루트 두 종류, 만료된 합법 CA, 폐기된 합법 CA — 은 운영자가 단일 서명 인프라를 유지하지 않고 가용한 인증서를 기회주의적으로 조합하고 있음을 보여준다. 이 전략은 특정 인증서 일련번호나 서명자 이름을 기반으로 한 탐지 규칙을 우회하는 데 효과적이다. 방위 산업 관련 조직 — 특히 소프트웨어 라이선스 컴플라이언스가 일관되게 시행되지 않는 중소 협력업체나 계약업체 — 에서 KMS 계열 실행 파일이 엔드포인트에 나타날 경우, 서명 상태와 무관하게 높은 우선순위의 조사 대상으로 취급해야 하는 이유가 여기에 있다. KMSELDI.exe의 3,631건 제출 수치가 보여주듯, 이 루어는 특정 표적 환경을 넘어 광범위하게 유통되고 있다.