APT공개
APT

가짜 Skype 설치파일, 10년 지나 다시 포착되다

2014년 컴파일된 서명 없는 Skype 위장 실행파일이 스톨링·디버거 탐지·재부팅 지속성·WMI 정찰을 거쳐 flushupate.com이라는 도메인으로 연결을 시도한다. 이 도메인은 이미 사라졌지만 'ET MALWARE Arid Viper APT DNS Lookup' 룰을 직접 발화시켰고, 해당 해시는 2025년 3월까지도 산발적으로 재제출되고 있다.

2026년 9월 20일 22:41 (UTC+9)최근 관측2026년 9월 20일심각도37CTX Team행위자MoleratsGaza CybergangIOC3MITRE9지역CNHK

Skype 인스톨러의 탈을 쓴 서명 없는 실행파일

10년도 더 된 Win32 실행파일 한 점이 최근까지도 VirusTotal에 재제출되고 있다는 사실 자체가 이 사건의 첫 번째 이상 신호다. 문제의 바이너리(b6ca1211…f518a403)는 내부 이름·제품명·저작권 문자열 세 항목 모두가 "Skype"로 채워져 있고, 저작권 표기는 "© 2003-2012 Skype and/or Microsoft"라는 실제 Skype 배포판과 거의 구분되지 않는 문구를 그대로 베껴 넣었다. 파일명 자체도 Skype.exe로 떨어지며, 설치 경로 흔적에는 C:\Program Files (x86)\6GR7q6bgzH\SCJiMyTymf\vuw7yL9T\LZBJKnks.exe처럼 무작위 문자열로 뒤덮인 디렉터리가 함께 기록돼 있다. 겉모습은 정품 통신 소프트웨어의 설치 파일이지만, 정작 코드 서명 검증은 실패한다 — 서명 자체가 존재하지 않는 상태다.

이 지점에서 눈여겨봐야 할 것은 단순히 "가짜 파일명을 썼다"는 사실이 아니라, 브랜딩과 서명 상태 사이의 불일치 그 자체다. 정상적인 Skype 배포 바이너리라면 마이크로소프트의 코드 서명 인증서가 붙어 있어야 하는데, 이 샘플은 메타데이터 상의 제품 정보만 정교하게 위조한 채 서명 절차는 건너뛰었다. 이런 조합은 사용자가 파일 속성 창을 열어 "Skype"라는 이름과 저작권 문구를 확인하는 수준의 검증에서는 걸러지지 않지만, 서명 여부를 자동으로 확인하는 정책 기반 통제에는 곧바로 걸리는 구조다. MITRE ATT&CK 분류상 이는 위장(Masquerading, T1036) 범주에 해당하는 전형적인 사례로 읽힌다 — 다만 코드 서명 자체가 위조됐다는 근거는 없으므로, 서명 위조를 뜻하는 하위기법까지 단정하지는 않는다.

PE 헤더에 기록된 컴파일 시각은 2014년 5월 8일이고, 이 샘플이 VirusTotal에 처음 제출된 시점은 같은 해 10월 25일이다. 빌드와 최초 관측 사이에 다섯 달 남짓의 간격이 있다는 점은, 이 파일이 컴파일 직후 곧바로 광범위하게 유포되기보다는 일정한 지연을 두고 표적 환경에 전달됐을 가능성을 시사한다 — 다만 이 간격만으로 유포 경로를 단정하기는 어렵고, 정황상의 해석으로 남겨둘 필요가 있다. 이후 이 해시는 2025년 3월 13일까지 총 다섯 차례, 네 곳의 서로 다른 소스로부터 제출된 것으로 집계된다. 대규모 캠페인에서 흔히 보이는 폭발적 재확산 곡선과는 거리가 있는, 낮은 빈도로 산발적으로 재조우되는 패턴이다.

스톨링과 디버거 탐지, 그리고 재부팅 지속성 — 다섯 단계로 이어지는 회피·정찰 체인

이 샘플에 대해서는 별도의 동적 샌드박스 판정(verdict)이 기록돼 있지 않다. 따라서 아래에서 서술하는 행위 체인은 정적 분석과 커뮤니티 태깅을 바탕으로 재구성된 것이며, 실시간 탐지 환경에서 확인된 동적 실행 트레이스로 단정할 수는 없다는 점을 먼저 짚어둘 필요가 있다. 그럼에도 태그로 남은 행위 기술이 서로 자연스럽게 이어지는 순서를 갖추고 있다는 점은, 이 바이너리가 우연히 여러 특성을 나열한 결과물이 아니라 실제로 하나의 실행 흐름을 구현한 결과물일 가능성을 높인다.

실행이 시작되면 이 바이너리는 곧바로 목적을 드러내지 않는다. 오랜 시간 동안 실행을 지연시키고(stalls for long periods before executing), 디버거가 붙어 있는지를 점검하며(checks whether a debugger is attached), 사용자의 상호작용이 있을 때까지 대기한다(waits for user interaction before running)는 세 가지 행위 태그가 함께 붙어 있다는 점이 중요하다. 이 세 가지를 개별 특성으로 보면 평범한 분석 회피 기법의 나열처럼 보이지만, 함께 놓고 보면 자동화된 분석 파이프라인이 흔히 걸려드는 "짧은 시간 내 실행 완료" 조건과 "사용자 상호작용 부재" 조건을 동시에 우회하도록 설계된 하나의 방어 회피 계층으로 읽힌다. 이는 MITRE ATT&CK의 시간 기반 가상환경 탐지(T1497.003)와 디버거 회피(T1622) 두 기법이 겹쳐 구현된 사례에 해당하며, MITRE의 기법 설명이 밝히듯 공격자가 "가상 환경의 흔적을 발견하면 악성코드를 표적에서 스스로 분리시키거나 핵심 기능을 숨기는" 방식으로 동작하도록 설계된 것과 정확히 부합한다.

이 회피 계층을 통과한 뒤에는 재부팅 후에도 살아남도록 스스로를 설치하는 행위(installs itself to survive reboot)가 관측된다. 구체적인 레지스트리 경로나 서비스 이름까지는 이번 기록에 담겨 있지 않지만, 이런 형태의 지속성은 통상 HKCU\Software\Microsoft\Windows\CurrentVersion\Run 계열의 런키나 시작프로그램 폴더에 자기 자신을 등록하는 방식으로 구현되며, MITRE ATT&CK T1547.001(레지스트리 런키/시작폴더)로 분류되는 지속성 범주에 해당한다. 여기서 공격자가 감수하는 트레이드오프가 드러난다 — 런키 기반 지속성은 구현이 단순하고 안정적이지만, 동시에 방어 도구가 가장 먼저 들여다보는 위치이기도 하다. 결국 이 바이너리는 정교한 커널 수준 은신보다는 단순하고 검증된 지속성 메커니즘을 택했고, 그 대가로 실행 지연과 디버거 탐지라는 앞단의 회피 계층에 더 많은 공을 들인 것으로 해석할 수 있다.

지속성을 확보한 이후에는 호스트에 대한 정찰이 이어진다. WMI를 호출하고(calls WMI) 사용 가능한 디스크 공간을 조사하는(inspects available disk space) 두 행위가 함께 태깅돼 있는데, 이는 MITRE ATT&CK T1012(레지스트리/시스템 정보 질의) 범주의 자동화된 탐색 행위로 분류된다. 방어자의 시점에서 이 단계를 상상해 보면, 이 시점의 트래픽은 정상적인 시스템 관리 작업과 구분하기가 쉽지 않다 — WMI 호출과 디스크 용량 조회는 정상적인 관리 스크립트에서도 흔히 발생하는 행위이기 때문에, 이 정찰 단계 자체가 단독으로 탐지 트리거가 되기는 어렵다. 오히려 이 단계는 이전 단계(위장된 설치, 회피, 지속성)와 다음 단계(명령제어 통신)를 잇는 조용한 다리 역할을 하며, 탐지 관점에서는 앞뒤 단계의 신호와 결합해야만 의미를 갖는 구간이다.

체인의 마지막에서 관측되는 것은 flushupate.com에 대한 DNS 조회다. 이 조회 행위 하나에 대해 Proofpoint Emerging Threats Open이 배포하는 명명된 IDS 룰 "ET MALWARE Arid Viper APT DNS Lookup (flushupate.com)"이 직접 발화했다는 점은, 이 체인의 마지막 단계가 단순한 추정이 아니라 명시적인 룰 매칭으로 뒷받침된다는 것을 의미한다. 여기에 Sigma 룰 세트에서도 상(high) 1건, 중(medium) 1건이 함께 매치됐다는 사실이 더해지면서, 정적 태그·명명 IDS 룰·Sigma 매칭이라는 세 갈래의 서로 다른 탐지 계층이 같은 결론 — 이 샘플이 flushupate.com을 향한 통신 시도를 내장하고 있다는 것 — 으로 수렴한다. 위장으로 시작해 회피·지속성·정찰을 거쳐 명명된 C2 룰로 마무리되는 이 다섯 단계는, 하나의 저작권 문구 위조와 하나의 도메인 조회 태그만 놓고 보면 흩어진 파편처럼 보이지만, 순서대로 이어놓으면 하나의 완결된 초기 침투 시나리오를 구성한다.

flushupate.com, 이름만 남은 C2

이 체인의 종착지인 flushupate.com은 등록기관 ProtonDomains.com LLC를 통해 2017년 7월 23일 등록됐고, WHOIS 갱신 기록은 2018년 9월 5일로 남아 있다. 네임서버는 SK.S5.ANS1.NS148.ZTOMY.COMSK.S5.ANS2.NS148.ZTOMY.COM — 즉 ZTOMY.COM이라는 리셀러 풀 아래 위탁 운영되는 구조다. 이 도메인은 인증서 발급이나 IP 해석 절차를 거치지 않고 이름과 DNS 조회만으로 존재를 유지하는 방식으로 운영됐다. VirusTotal 기준 탐지율은 13/89로, 파일 쪽의 61/78과 비교하면 확연히 낮은 편이다.

여기서 짚어야 할 흥미로운 시간적 불일치가 하나 있다. 이 도메인이 등록된 시점(2017년 7월)은, 이 바이너리가 처음 VirusTotal에 제출된 시점(2014년 10월)보다 3년 가까이 늦다. 동일한 해시가 2014년부터 2025년 3월까지 다섯 차례에 걸쳐 재제출됐다는 사실과 겹쳐 보면, 이 명명된 IDS 룰과 도메인 연동은 원본 바이너리가 최초로 유포된 시점의 통신 대상이 아니라 이후 시점에 추가되거나 갱신된 인프라일 가능성을 배제할 수 없다 — 다만 이 기록만으로 정확한 시점을 재구성하기는 어렵고, 단정보다는 가능성으로 남겨두는 것이 타당하다. 확실한 것은 이 도메인이 태그상 "명령제어 트래픽의 흔적을 보인다(shows signs of command-and-control traffic)"는 행위와 "더 이상 존재하지 않는 도메인으로 해석된다(resolves to a domain that no longer exists)"는 상태를 동시에 갖고 있다는 점이다. 즉 이 C2 노드는 현재로서는 이름만 남은 폐기된 발판이며, 실시간 통신을 재현할 방법이 없다.

인프라 측면의 응집도는 이 사건에서 가장 얇은 축이다. 이 도메인은 등록기관 ProtonDomains.com LLC를 포함해 인증서 일련번호·A레코드·NS레코드·YARA 룰 등 어떤 교차 지표로도 다른 인프라와 묶이지 않는 고립된 형태로 존재한다. 이는 이 캠페인이 애초에 인프라를 넓게 분산 운용했다기보다, 지금 확보된 것이 더 큰 운영 인프라 가운데 우연히 회수된 단일 조각일 가능성을 시사한다 — 즉 인프라가 없다는 것이 아니라, 지금 시점에서 그 전체 그림을 볼 창이 하나뿐이라는 뜻으로 읽는 것이 더 타당하다. TLS 인증서나 해석 IP 없이 순수하게 도메인명과 DNS 룩업만으로 존재를 확인할 수 있는 이런 구성은, 결과적으로 인증서 발급 기록이나 호스팅 IP 이력을 남기지 않아 사후 추적을 구조적으로 어렵게 만드는 효과를 낳는다.

이 도메인의 구성 방식을 공격자의 선택으로 놓고 보면, 얻은 것과 포기한 것이 뚜렷하게 갈린다. TLS 인증서를 발급받지 않고 ZTOMY.COM 리셀러 풀의 네임서버에 얹어 운영하는 방식은 인증서 발급 절차에서 남는 로그(CT 로그, 발급기관 기록)를 원천적으로 차단해 사후 추적의 한 축을 없애는 대신, C2 통신을 암호화 채널로 감싸지 못한다는 대가를 치른다. 평문에 가까운 DNS 조회만으로 존재를 드러내는 이런 구조는 정확히 Proofpoint Emerging Threats Open이 명명 룰 하나로 즉시 낚아낼 수 있는 표면을 스스로 만든 셈이다. 즉 이 캠페인은 인증서 투명성 로그에 흔적을 남기지 않는 대신 DNS 계층에서의 발각 가능성을 높이는 쪽으로 트레이드오프를 택했고, 실제로 그 대가는 이번 사건에서 명명된 IDS 룰의 직접적인 발화로 나타났다.

10년을 넘나든 동일 지문 — arvid/desertfalcon의 재출현

이 바이너리에는 VirusTotal 커뮤니티가 부여한 위협 라벨 trojan.arvid/desertfalcon이 붙어 있고, 대중적으로 통용되는 이름으로는 arvid, desertfalcon, killfiles 세 가지가 함께 기록돼 있다. 분류 범주는 트로이목마와 스파이웨어 양쪽에 걸쳐 있다. 탐지율은 61/78로 상당히 높은 합의 수준을 보이며, ALYac·APEX·AVG·AhnLab-V3·Alibaba·Antiy-AVL·CrowdStrike·ESET-NOD32 등 30개 엔진이 이름을 올린 반면, Acronis·Baidu·Webroot·SUPERAntiSpyware·TACHYON 등 16개 엔진은 여전히 탐지에서 빠져 있다. 커뮤니티 투표는 악성 2표·정상 0표로, 소수지만 일관된 방향성을 보인다.

이 탐지율 분포를 단독으로 보면 "널리 알려진 악성코드"라는 인상을 주지만, 같은 파일이 2014년 10월부터 2025년 3월까지 단 다섯 차례, 네 곳의 소스로부터만 제출됐다는 사실과 겹쳐 놓으면 해석이 달라진다. 61/78이라는 높은 탐지율은 이 파일의 정적 시그니처가 오랜 기간 다수 벤더의 데이터베이스에 안정적으로 등재돼 있었다는 뜻이지, 이 파일이 최근 대규모로 유포되고 있다는 뜻은 아니다. 즉 이 지표는 "널리 퍼진 위협"이 아니라 "오래전부터 알려져 있고 잘 지문화된 위협"이라는 성격을 보여주는 쪽에 더 가깝다. 이런 낮은 빈도·높은 합의 조합은, 이 도구가 대규모 스팸 캠페인용 범용 로더가 아니라 특정 표적을 향해 산발적으로 재사용되는 정찰·침투용 도구였을 가능성을 시사한다.

빌드 프로비넌스 측면에서도 눈에 띄는 특징이 있다. .text 섹션의 엔트로피는 6.63으로, 강한 패킹이 걸린 샘플들에서 보이는 7.5 이상의 값과는 다소 거리가 있어 이 파일이 별도의 상용 패커보다는 자체 컴파일 결과물에 가까운 형태로 유통됐을 가능성을 보여준다. imphash는 7647cdf4939f4d60f508bb04f3966435, vhash는 055046655d1550c1z1011b00977z7095z104005e1zebz로 기록돼 있으며, 이 값들은 imphash·서명자·위협 라벨 등 어느 축으로도 다른 파일과 연결되지 않는 고립된 지문으로 남아 있다. 이는 이 캠페인의 전체 도구 세트 가운데 지금 회수 가능한 파편이 이 한 점뿐이라는 사실을 드러낸다.

PE 타임스탬프(2014-05-08)와 최근 재제출 시점(2025-03-13) 사이의 격차를 탐지 스택의 구조와 겹쳐 보면 한 가지 시사점이 드러난다. 이 정도로 오래된 해시가 여전히 61/78의 높은 탐지 합의를 유지할 수 있었던 것은, 정적 시그니처 기반 탐지가 파일의 나이와 무관하게 계속 유효했기 때문이다. 하지만 방어자 입장에서 이는 안심할 근거가 아니라 역설적인 경고에 가깝다 — 만약 공격자가 동일한 위장·회피 체인을 재사용하되 컴파일 시각이나 임포트 해시 몇 개만 바꿔 재빌드한다면, 정적 시그니처 매칭에 의존하는 탐지 계층은 순식간에 무력화된다. 이번 사건에서 실질적으로 재사용 여부를 판별해 낸 것은 해시 매칭이 아니라 '스톨링-디버거 점검-재부팅 지속성-WMI 정찰-명명된 DNS 룰'로 이어지는 행위 체인이었다는 점은, 이런 유형의 도구에 대해서는 해시 기반 방어보다 행위 기반 탐지 규칙에 우선순위를 둬야 한다는 실무적 함의를 제공한다.

Molerats와 Arid Viper 사이, 귀속의 경계

이 지표는 Molerats라는 행위자에 귀속돼 있으며, 이 이름 아래에는 Gaza Cybergang, Gaza Hackers, Extreme Jackal, Aluminum Saratoga, Moonlight, TA402 등 다수의 별칭이 함께 기록돼 있다. 동기는 금전이 아닌 첩보(espionage)로 분류돼 있는데, 이는 이 샘플이 보여주는 위장·회피·정찰·지속성 중심의 행위 조합과 결이 맞는다 — 즉각적인 금전화보다는 은밀한 체류와 정보 수집을 우선시하는 도구 설계다. 다만 이 귀속의 확신도는 낮은 수준으로 평가돼 있으며, 이 기록 하나만으로 행위자 정체성을 단정하기는 어렵다는 점을 분명히 해둘 필요가 있다.

한 가지 더 짚어야 할 지점은, 이 파일에 매칭된 명명 IDS 룰과 대중적 위협 라벨이 모두 "Arid Viper"라는 별도의 명명 계보를 함께 가리키고 있다는 사실이다. Molerats와 Arid Viper(DesertFalcon으로도 불림)는 공개 보고에서 종종 같은 가자 지역 연계 첩보 생태계 안에서 함께 언급되는 이름들이지만, 이번 기록은 두 이름을 동일 운영 조직으로 확정하기보다 시그니처 수준의 연결로만 취급하는 것이 타당하다. 다시 말해 이 사건은 "두 행위자가 같다"는 결론을 향해 가는 근거가 아니라, 같은 도구 하나가 서로 다른 명명 체계에서 각각 관측돼 온 흔적으로 읽는 것이 안전하다.

이 지표가 방어자의 관점에서 제기하는 실무적인 문제는, 알림 하나에 두 개의 서로 다른 명명 체계가 동시에 걸려 있다는 점이다. SOC나 위협 인텔리전스 플랫폼이 행위자 이름을 기준으로 지표를 색인하고 룰을 매칭하는 경우, 이 파일에서 발화하는 IDS 룰은 'Arid Viper'라는 이름표를 달고 있지만 조직 내부의 행위자 프로파일은 'Molerats'로 등록돼 있을 가능성이 크다. 두 이름 사이의 교차 참조가 누락된 환경에서는, 이 룰이 발화해도 상관관계 엔진이 이를 별개의 저신뢰 이벤트로 취급하거나 기존 Molerats 관련 케이스와 자동으로 묶어주지 못하는 상황이 발생할 수 있다. 결국 이런 이름 계보의 분기는 공격자가 의도적으로 설계한 은폐 수단이 아니라 위협 인텔리전스 커뮤니티 내부의 명명 역사가 남긴 부산물이지만, 그 결과로 방어 측이 감수하는 탐지 지연이라는 비용은 동일하게 실재한다.

응집도 없는 단일 아티팩트가 말해주는 것

이번 기록에 포함된 지역·산업 메타데이터는 중국과 홍콩, 그리고 유통(소매) 산업을 가리키고 있다. Molerats가 공개 보고에서 주로 언급돼 온 활동 무대는 중동 지역인 경우가 많아, 이 지역·산업 조합은 그 일반적인 표적 패턴과는 다소 어긋나는 조합으로 보인다. 이 불일치를 두고 "행위자가 표적 범위를 확장했다"고 단정하기보다는, 이번에 회수된 지표 하나가 보여주는 관측치로 좁혀서 이해하는 것이 현재로서는 더 안전한 해석이다. 표적 산업과 행위자의 알려진 성향 사이의 이런 어긋남 자체가, 이 기록이 전체 캠페인의 아주 작은 단면만을 비추고 있다는 사실을 다시 한번 확인시켜 준다.

이 사건을 종합하면, 확보된 두 지표 — 위장 설치파일 하나와 폐기된 도메인 하나 — 는 각각 독립적으로도 상당히 신뢰할 만한 신호를 담고 있다. 파일 쪽은 61/78의 강한 탐지 합의와 명명 IDS 룰이라는 구체적 근거를 갖췄지만 판단이 정적 탐지 결과에 머물러 동적 행위 검증까지는 이르지 못했다는 한계가 있고, 도메인 쪽은 명명 룰과 직접 연동되는 신뢰도를 갖췄지만 13/89라는 낮은 탐지율에 인증서·AS 정보 같은 인프라 근거도 얕아 확장 해석이 막혀 있다. 이 둘을 하나로 묶는 교차 지표 — 공유 인증서, 같은 A레코드, 동일 등록기관을 쓰는 자매 도메인 — 가 이번 수집 범위에는 나타나지 않았다는 점은, 이 캠페인의 진짜 규모와 인프라 배치를 지금 시점에서 판단하기 어렵게 만드는 핵심 제약이다.

결국 이 사건이 보여주는 것은 완결된 캠페인의 전체상이 아니라, 오래된 위장·회피 조합 하나가 시간이 흘러도 여전히 유효한 형태로 재발견되고 있다는 사실이다. 2014년에 컴파일된 도구가 2025년 3월까지도 산발적으로 재제출되고 있다는 점은, 이런 저비용·저정교도 위장 기법이 방어 체계의 세대교체를 거치는 동안에도 완전히 폐기되지 않았다는 것을 시사한다. 정교한 인프라 확장보다는 단순하고 검증된 위장·회피·지속성 조합을 오랜 기간 재사용하는 이런 운영 방식은, 규모보다 은밀함과 지속성을 우선하는 첩보형 도구 운용의 특징에 가깝다고 볼 수 있다 — 다만 이 판단 역시 단일 아티팩트에 근거한 해석이라는 한계를 함께 안고 있다.

이 사건이 보안 분석 커뮤니티에 시사하는 바는, 오래된 지표라도 명명된 룰과 강한 탐지 합의를 갖춘 경우 여전히 의미 있는 신호로 취급해야 한다는 점이다. 10년 전 만들어진 도구가 오늘의 탐지 파이프라인에서 다시 걸려 나온다는 사실은, 위협 인텔리전스의 유효기간이 파일의 나이가 아니라 그 행위 체인이 여전히 작동하는지에 달려 있다는 것을 다시 한번 확인시켜 준다. 인프라 응집도가 낮다는 이유로 이런 지표를 가볍게 넘기기보다, 지금 확보된 파편이 더 큰 운영 체계의 일부일 가능성을 열어두고 후속 관측을 이어가는 것이 이 시점에서 취할 수 있는 가장 합리적인 태도일 것이다.

IOC3

파일

(1)

도메인

(1)

URL

(1)
Source: CTX Threat Intelligence