
이중 확장자 루어로 이탈리아 식음료 기업 겨냥한 PandaBanker 스파이 캠페인
PEiD 패킹된 191KB 드로퍼가 이탈리아어 첨부파일 위장 파일명으로 식음료 업계를 표적 삼았다. 금융 사기용 ZBot/PandaBanker 도구가 비금융 수직 시장의 정보 수집에 전용됐다는 점이 이 캠페인의 핵심 분석 과제다.
이중 확장자 루어와 3중 샌드박스 심문 — PandaBanker 드로퍼가 이탈리아 식음료 기업을 겨냥한 방식
PEiD로 패킹된 191KB짜리 Win32 실행 파일 하나가 이탈리아 식음료 업계를 향한 스파이 활동 캠페인의 핵심 증거로 부상했다. 파일명은 Allegato_02,Allegato_01.Tif.exe — 이탈리아어로 '첨부파일'을 뜻하는 단어와 .Tif 가짜 확장자를 조합해 수신자가 TIFF 이미지 파일로 착각하도록 설계된 이중 확장자 루어다. 이 샘플(SHA256: b368428fd71a354d9e6a707b573c4b4a8131034efc0c4669b683ac7c486920b0)은 실행 후 CPUProx1.exe라는 이름으로 디스크에 안착하며, 분석 환경 탐지 → 런타임 API 해석 → 프로세스 인젝션으로 이어지는 3단계 방어 우회 구조를 순차적으로 작동시킨다. CTX Team이 이 샘플을 주목하는 이유는 기술적 정교함 때문만이 아니다. 이 캠페인의 동기가 '스파이 활동'으로 분류되고 표적 산업이 식음료 분야로 명시된 점 — 즉, 금융 사기용으로 설계된 ZBot/PandaBanker 계열 도구가 비금융 수직 시장의 정보 수집에 투입되고 있다는 점 — 이 이 캠페인의 핵심 분석 과제다.
'첨부파일'이라는 이름의 함정 — 이중 확장자 루어의 구조
이 캠페인의 초기 접근 벡터(T1566)는 파일명 설계에서 명확하게 드러난다. Allegato_02,Allegato_01.Tif.exe라는 이름은 두 가지 심리적 조작을 동시에 수행한다. 첫째, 이탈리아어 수신자에게 익숙한 단어인 'Allegato(첨부파일)'를 파일명 앞에 배치해 업무 맥락에서 자연스럽게 열어볼 파일처럼 보이게 한다. 둘째, .Tif를 중간 확장자로 삽입해 Windows 기본 설정에서 알려진 확장자를 숨기는 방식으로 수신자가 실행 파일임을 인식하지 못하도록 유도한다. 표적 지역이 이탈리아(IT), 표적 산업이 식음료 분야로 명시된 점은 이 루어가 특정 업계 종사자를 겨냥해 언어적·맥락적으로 맞춤 제작됐음을 시사한다.
실행 후 디스크에 남는 이름 CPUProx1.exe는 CPU 관련 시스템 유틸리티를 연상시키는 위장명으로, 프로세스 목록에서 눈에 띄지 않으려는 의도로 해석할 수 있다. 파일 내부 메타데이터 역시 이 위장을 뒷받침한다. 서명 정보의 product 필드와 copyright 필드에는 "please do not hesitate to contact us! More information about Rapport"라는 문자열이 기재돼 있어, 정상 소프트웨어 제품처럼 보이도록 PE 헤더를 조작한 흔적이 남아 있다. 그러나 이 파일은 코드 서명 인증서가 전혀 없는 미서명 바이너리다. 서명 없이도 이중 확장자와 내부 메타데이터 위장만으로 사용자 단에서의 신뢰를 확보하려 했다는 점은, 이 캠페인이 기술적 우회보다 사회공학적 접근에 상당 부분 의존하고 있음을 보여준다.
VirusTotal 기준으로 이 샘플은 76개 엔진 중 64개가 악성으로 분류해 탐지율 64/76을 기록했다. ALYac, APEX, AVG, CrowdStrike, ESET-NOD32, FireEye, Fortinet 등 주요 엔진이 탐지 목록에 이름을 올린 반면, AhnLab-V3, Acronis, Baidu, Gridinsoft 등 12개 엔진은 여전히 미탐지 상태다. 커뮤니티 투표는 악성 4표, 무해 0표로 집계됐으며, 평판 점수는 -185를 기록했다. 이 샘플은 2016년 10월 19일 처음 제출된 이후 2022년 1월 20일까지 총 22회 제출, 9개 고유 출처에서 관측됐다.
3중 환경 심문 — 샌드박스를 통과하기 위한 조건 검사
루어 파일이 실행되면 ZBot/VBInject 로더는 즉각적인 페이로드 투하 대신 분석 환경 여부를 판별하는 3중 심문 절차를 먼저 수행한다. 이 절차는 행동 태그 long-sleeps, direct-cpu-clock-access, checks-user-input으로 직접 관측되며, 각각 MITRE T1497.001(시스템 검사 기반 가상화/샌드박스 회피), T1497.002(사용자 활동 기반 검사), T1622(디버거 회피)에 대응한다.
첫 번째 심문은 장시간 슬립이다. 자동화된 샌드박스 환경은 대부분 수 분 이내의 실행 시간 창을 갖는다. 로더는 이 창을 초과하는 지연을 삽입해 샌드박스가 타임아웃으로 분석을 종료하도록 유도한다. 두 번째 심문은 CPU 클록 직접 접근이다. direct-cpu-clock-access 태그는 RDTSC(Read Time-Stamp Counter) 명령어 계열의 사용을 시사한다. 가상 머신이나 에뮬레이션 환경에서는 RDTSC가 반환하는 타임스탬프 값이 물리 하드웨어와 다르게 나타나는 경우가 있어, 이를 통해 분석 환경을 식별할 수 있다. 세 번째 심문은 사용자 입력 확인이다. checks-user-input 태그는 마우스 이동, 키보드 입력 등 실제 사용자 상호작용 흔적을 검사하는 행위를 나타낸다. 자동화된 분석 환경은 일반적으로 사용자 입력을 시뮬레이션하지 않거나 패턴이 일정해 탐지될 수 있다.
이 세 가지 조건 검사를 모두 통과해야만 로더는 다음 단계로 진입한다. SecneurX 샌드박스는 이 샘플을 악성으로 판정했으나, 이는 샌드박스가 회피 조건을 충족시켰거나 회피 로직을 우회했기 때문으로 볼 수 있다. 실제 운영 환경에서 이 3중 심문 구조는 자동화된 탐지 파이프라인의 상당 부분을 무력화하도록 설계돼 있다.
제로 임포트 PE와 오버레이 페이로드 — 런타임 재구성 인젝션 체인
3중 심문을 통과한 이후 로더가 수행하는 기술적 핵심은 빌드 구조에서 직접 확인된다. 이 PE 파일의 선언된 임포트 수는 0이다(import_count=0). 일반적인 Windows 실행 파일은 사용하는 API 함수를 PE 헤더의 임포트 테이블에 명시하지만, 이 샘플은 해당 테이블이 비어 있다. 이는 로더가 필요한 Windows Native API 함수를 런타임에 동적으로 해석한다는 의미다(T1106, T1027). runtime-modules 태그가 이 동작을 직접 뒷받침한다.
실제 페이로드는 표준 PE 섹션 외부, 즉 오버레이 영역에 저장돼 있다. overlay 태그가 이를 확인해 준다. 빌드 구조를 살펴보면 .text 섹션(65,536바이트, 엔트로피 5.32)이 로더 스텁 코드를 담고 있고, .data 섹션은 크기가 null로 사실상 비어 있으며, .rsrc 섹션(4,096바이트, 엔트로피 2.66)은 리소스 데이터를 최소한으로 보유한다. 실질적인 ZBot/PandaBanker 코어는 이 섹션들 이후의 오버레이 공간에 위치해, 정적 분석 도구가 PE 구조만 파싱할 경우 페이로드의 존재를 놓칠 수 있다. PEiD 패킹(T1027)은 이 전체 구조를 한 겹 더 감싸 정적 분석의 난도를 높인다.
런타임 API 해석이 완료되면 VBInject 스텁은 ZBot/PandaBanker 코어를 정상 호스트 프로세스에 인젝션한다(T1055). 이 캠페인에 명시된 인젝션 서브 기법은 네 가지다: T1055.002(PE 인젝션), T1055.003(스레드 실행 하이재킹), T1055.011(Extra Window Memory 인젝션), T1055.012(Process Hollowing). 이 중 어떤 서브 기법이 실제로 사용됐는지는 현 단계 증거로는 확정할 수 없으나, 네 가지 모두가 열거돼 있다는 점은 로더가 환경에 따라 인젝션 방식을 전환하는 다중 경로 설계를 채택했을 가능성을 시사한다.
빌드 지문 측면에서 이 샘플의 imphash는 7f635cfdbb94ea5e4bf1775d58a8e682, vhash는 0150365d051)z243z로 기록됐다. CTX Team의 분석에 따르면 이 두 값은 현재 관측 범위 내 어떤 다른 파일과도 공유되지 않는다. 즉, 이 샘플은 동일한 빌더나 서명자로 연결되는 피어 파일이 없는 고립된 상태다. 동일한 빌더 출력물이나 서명자를 공유하는 연관 샘플로의 피벗이 현재 불가능해, 캠페인 전체 규모를 파악하기에는 증거가 부족한 상태다.
실행 후 흔적 지우기 — T1070 클러스터의 의미
페이로드 인젝션이 완료된 이후 캠페인의 행동 프로파일은 포렌식 아티팩트 제거에 집중된다. 분석 결과 T1070.004(파일 삭제), T1070.006(타임스톰핑), T1070.010이 명시적으로 열거돼 있다. 이 세 기법의 조합은 단순한 흔적 은폐를 넘어 사고 대응 팀의 타임라인 재구성 능력 자체를 약화시키려는 의도로 읽힌다.
주목할 점은 PE 컴파일 타임스탬프다. 이 샘플의 PE 타임스탬프는 2016-10-19로, VirusTotal 최초 제출일과 일치한다. 이는 빌드 시점에 타임스탬프를 소급 조작하지 않았음을 의미하지만, T1070.006이 포함돼 있다는 점은 런타임 실행 이후 생성되는 파일들의 타임스탬프를 사후 조작하는 행위가 예상된다는 분석가의 판단을 반영한다. 즉, 드로퍼 자체의 타임스탬프는 실제 빌드 시점을 그대로 반영하지만, 인젝션된 페이로드가 생성하는 파생 파일들은 타임스탬프가 변조될 가능성이 높다.
T1070.010은 기타 지표 제거 기법으로, 이벤트 로그 삭제나 레지스트리 흔적 정리 등을 포함할 수 있다. 이 기법들이 T1547.001(레지스트리 실행 키를 통한 지속성 확보) 및 T1222.001(Windows 파일/디렉터리 권한 수정)과 함께 등재돼 있다는 점은, 페이로드가 지속성을 확보한 뒤 그 흔적을 즉시 정리하는 패턴을 따를 가능성을 시사한다. 다만 이 지속성 및 흔적 제거 단계는 현 단계 증거로는 직접 관측된 것이 아니라 MITRE 기법 열거와 PandaBanker 계열의 알려진 행동 패턴에 기반한 추론임을 명확히 해야 한다.
뱅킹 트로이목마가 식음료 기업을 노리는 이유 — 도구와 동기의 불일치
이 캠페인에서 가장 분석적으로 주목해야 할 지점은 기술적 정교함이 아니라 표적 선택과 동기의 조합이다. ZBot과 PandaBanker는 금융 기관 고객의 자격증명을 탈취하고 온라인 뱅킹 세션을 가로채기 위해 설계된 도구 계열이다. 그런데 이 캠페인은 동기를 '스파이 활동'으로, 표적 산업을 식음료 분야로 명시하고 있다. 이 조합은 두 가지 해석 경로를 열어 놓는다.
첫 번째 해석은 도구의 재활용이다. Bamboo Spider가 기존에 보유하고 있던 금융 사기용 도구를 정보 수집 목적으로 전용했을 가능성이다. ZBot/PandaBanker의 기능 목록 — 브라우저 자격증명 수집(T1552.001), 레지스트리 쿼리(T1012), 파일 및 디렉터리 열거(T1083), 실행 중인 프로세스 탐색(T1057), 시스템 정보 수집(T1082), 브라우저 정보 탐색(T1217) — 은 금융 사기뿐 아니라 기업 환경에서의 정보 수집에도 그대로 활용될 수 있다. 식음료 기업의 조달 정보, 공급망 데이터, 거래처 자격증명은 산업 스파이 활동의 전형적인 수집 대상이다.
두 번째 해석은 Bamboo Spider의 운영 범위가 금융 사기를 넘어선다는 것이다. 이 경우 PandaBanker는 단순히 금융 사기 도구가 아니라 다목적 정보 수집 임플란트로 운용되고 있는 것이다. CTX Team은 이 두 해석 중 어느 쪽도 현 단계 증거만으로 확정할 수 없다고 판단한다. Bamboo Spider의 행위자 귀속 신뢰도는 중간 수준으로 평가되며, 이 행위자의 전체 운영 범위를 설명하는 공개 보고서가 현재 확인되지 않는다.
그럼에도 이 조합이 시사하는 위협 지형의 변화는 분명하다. 금융 사기용으로 개발된 성숙한 도구 계열이 스파이 활동 캠페인에 투입된다면, 이는 정보 수집 작전의 진입 장벽을 낮추는 효과를 낳는다. 전용 임플란트를 개발할 역량이 없는 행위자도 기존 사이버 범죄 생태계의 도구를 재활용해 정보 수집 목적의 작전을 수행할 수 있게 된다. 이탈리아 식음료 업계가 이 캠페인의 표적이 됐다는 사실은, 전통적으로 금융 기관이나 방위산업체에 집중됐던 스파이 활동의 표적 범위가 확장되고 있을 가능성을 시사한다.
네트워크 IOC 부재와 데이터 공백이 말해주는 것
이 캠페인의 분석에서 네트워크 지표의 부재는 그 자체로 분석 대상이다. IP 주소, 도메인, URL이 단 하나도 확인되지 않는다. C2 인프라에 대한 정보가 전혀 없다는 뜻이다. 관측 창이 2025년 11월부터 2026년 6월까지 이어지는 캠페인에서 네트워크 계층 지표가 완전히 부재하다는 것은 두 가지 가능성을 시사한다.
첫째, C2 인프라가 성공적으로 교체됐거나 수집 시점에 이미 오프라인 상태였을 가능성이다. PandaBanker 계열은 HKCU 레지스트리 키에 암호화된 설정을 저장하고(T1112) HTTP/S 기반 C2 비커닝을 수행하는 것으로 알려져 있으나(T1071, T1071.002), 이는 계열 특성에 기반한 추론이며 이 특정 캠페인에서 직접 관측된 사실이 아니다. 둘째, 캠페인의 초기 수집 창에 해당해 네트워크 계층 지표가 아직 식별되지 않았을 가능성이다.
파일 계층에서도 유사한 공백이 존재한다. 두 개의 파일 해시가 확인된다. 첫 번째(b368428fd71a354d9e6a707b573c4b4a8131034efc0c4669b683ac7c486920b0)는 탐지율, 샌드박스 판정, 빌드 구조, 행동 태그 등 풍부한 메타데이터를 보유한 강력한 증거 앵커다. 그러나 두 번째 해시(e8b945c0eb37085f31b4e512762579abe469831f3f0aa467c9a4bf93c556a541)는 파일 유형·크기·탐지율·행동 태그 등 어떤 분석 단서도 현재 확인되지 않는다. 이 두 번째 파일은 분석적으로 불투명해, 이 캠페인의 전체 그림이 아직 완성되지 않았음을 보여준다.
또한 첫 번째 샘플은 imphash 7f635cfdbb94ea5e4bf1775d58a8e682와 vhash 0150365d051)z243z가 관측 범위 내 어떤 피어 파일과도 공유되지 않는 고립 상태다. 이는 동일한 빌더 출력물이나 서명자를 공유하는 연관 샘플로의 피벗이 현재 불가능하다는 의미다. 캠페인의 규모와 범위를 파악하기 위해서는 추가적인 파일 계층 및 네트워크 계층 지표의 확보가 필요하다.
범죄형 도구와 정보 수집 목적의 경계 — 이 캠페인이 시사하는 것
Allegato_02,Allegato_01.Tif.exe라는 파일명이 함축하는 것은 단순한 기술적 트릭 이상이다. 이 캠페인은 성숙한 사이버 범죄 도구 생태계와 정보 수집 목적 사이의 경계가 점차 흐려지고 있다는 신호를 보낸다. ZBot/PandaBanker는 수년에 걸쳐 금융 사기 생태계에서 검증된 도구다. 이 도구가 이탈리아 식음료 기업을 겨냥한 스파이 활동 캠페인에 투입됐다는 사실은, 전용 APT 임플란트를 개발할 역량이 없거나 그럴 필요를 느끼지 않는 행위자가 기존 사이버 범죄 인프라를 정보 수집 목적으로 전용하는 패턴의 가능성을 제기한다.
이 패턴이 실제로 확산된다면, 방어자 입장에서는 금융 섹터 중심으로 설계된 ZBot/PandaBanker 탐지 및 대응 체계를 비금융 수직 시장에도 적용해야 한다는 함의가 생긴다. 특히 브라우저 자격증명 탈취(T1552.001), 파일 시스템 열거(T1083), 레지스트리 쿼리(T1012)는 금융 사기와 산업 스파이 활동 모두에서 동일하게 유용한 기능이다. 식음료 기업의 조달 담당자나 공급망 관리자가 보유한 자격증명과 파일 접근 권한은 금융 계좌 정보 못지않게 가치 있는 정보 수집 대상이 될 수 있다.
3중 샌드박스 심문 구조와 제로 임포트 런타임 재구성 인젝션 체인은 이 캠페인의 운영팀이 탐지 우회에 상당한 공을 들이고 있음을 보여준다. 그러나 코드 서명 인증서 없이 이중 확장자 루어에 의존하는 초기 접근 방식은 기술적 정교함과 사회공학적 단순함이 공존하는 혼합 전략을 드러낸다. 이 조합은 EDR 기반 탐지를 우회하면서도 사용자 단의 경계심을 낮추는 데 초점을 맞춘 설계 철학을 반영한다. 네트워크 IOC가 전혀 확인되지 않은 현 상황에서, 이 캠페인의 전체 규모와 C2 인프라의 실체는 여전히 열린 질문으로 남아 있다.