
중국의 VPN 서비스인 QuickFox 프로그램의 윈도우 버전을 대상으로 하는 공급망 공격이 발견됐다. QuickFox는 웹 기술 기반 데스크톱 앱 개발 프레임워크인 Electron으로 구동되며 실행에 필요한 소스가 app.asar 파일에 압축된 형태로 저장된다. 이번 공급망 공격에서 공격자는 app.asar 파일 내 악성 스크립트를 심어 유포했으며 해당 스크립트는 FDMTP 백도어를 다운로드하고 DLL 사이드 로딩 방식으로 실행한다. FDMTP 백도어는 공격자의 C&C 서버로부터 명령어를 수신하고 프로세스 실행, 파일 다운로드 및 정보 수집 등의 악성 동작을 수행한다.
공급망 공격으로 손상된 QuickFox 프로그램의 구성 파일 중 app.asar 파일 내 포함된 index.html에 기존에는 없던 두 줄의 스크립트가 삽입된 것을 확인할 수 있다. 해당 스크립트는 하드코딩된 URL에서 각각의 다른 자바 스크립트를 다운로드 및 실행하며 그 중 firebase-analytics-compat.js는 정상적인 Firebase 코드이고 firebase-app-compat.js는 Firebase SDK로 위장한 악성코드이다.

[그림 1] 악성 스크립트가 삽입된 index.html
firebase-app-compat.js가 실행되면 현재 시스템에서 아래 세 가지의 조건을 확인해 모두 만족하면 다음 동작을 진행하고 하나라도 만족하지 않으면 즉시 종료된다. 조건 2의 경우 해당 악성코드가 개인보다는 오피스 환경을 겨냥한 것이며 조건 3은 중복 감염을 방지하는 장치로 활용된다.
- 조건 1: 현재 시스템의 OS가 윈도우인 경우.
- 조건 2: 실행 중인 프로세스 목록에 steam.exe가 없고 telegram.exe 또는 SafeW.exe가 존재하는 경우.
- 조건 3: %temp%\quickfox\data.dat 파일이 존재하지 않는 경우.
페이로드 복호화
세 가지 조건을 모두 만족하면 동일한 URL에서 update.zip 파일을 다운로드한다. 해당 압축 파일은 정상 실행 파일 csmonitor.exe와 악성 DLL Microsoft.ServiceHosting.Tools.dll 및 암호화된 FDMTP 백도어 페이로드 update.bin 파일을 포함한다. 악성 DLL은 사이드로딩 방식으로 실행되며 AES-128-ECB 알고리즘을 이용해 FDMTP 백도어 페이로드를 복호화 후 실행한다. 복호화는 ILGenerator 클래스를 이용해 IL 코드를 직접 작성하는 방식으로 구현됐다.

[그림 2] ILGenerator로 구현된 페이로드 복호화 및 실행 코드
FDMTP 백도어
FDMTP 백도어는 코드 원본을 자체 VM 바이트 코드로 변환해 리소스에 저장하고 런타임에 인터프리터가 해당 바이트코드의 opcode를 해석해 실행하는 VM 난독화 방식을 적용했다. [표 1]은 일부 바이트코드를 해석한 예시로 operand의 m[0] ~ m[2]는 사전에 MethodBase 클래스로 미리 해석한 테이블을 참조한다. 또한 C&C 서버 통신과 명령어 수행 등의 동작에 사용되는 주요 메서드는 리소스에 내장된 .NET 모듈로 구현돼 있으며 바이트코드와 같은 방식으로 MethodBase 테이블에 동적으로 로드 후 참조하게 된다.

[표 1] 바이트코드 해석 예시

[그림 3] MethodBase 테이블 생성 코드
C&C 서버 통신에는 DMTP(Duplex Message Transport Protocol)를 사용한다. DMTP는 오픈소스 .NET 네트워크 프레임워크 TouchSocket에서 구현한 자체 응용 계층 프로토콜로 하나의 연결 위에 RPC, 파일 전송 및 자동 재접속 등의 기능을 다중화하는 구조를 가진다. 백도어는 C&C 서버에 검증 토큰과 메타데이터를 전송해 DMTP 핸드셰이크를 진행하고 현재 시스템을 봇으로 등록한다.

[그림 4] 검증 토큰 및 메타데이터 설정 코드
현재 시스템의 봇 등록이 완료되면 C&C 서버는 RPC를 이용해 백도어 모듈에 구현된 14개의 메서드를 호출하거나 DMTP 자체 기능으로 파일을 주고받을 수 있다. 프로세스 검색/실행 및 파일 다운로드 명령어는 JSON 형식의 데이터를 처리하는 별도의 메서드가 구현돼 있으며 플러그인 명령어는 백도어에 내장된 모듈 외의 기능을 실시간으로 추가할 수 있도록 한다.

[표 2] C&C 서버 RPC 명령어 목록
FDMTP 백도어는 상용 서비스를 대상으로 하는 공급망 공격으로 공식 사이트에서 유포됐으며 악성 스크립트를 압축 파일인 app.asar에 삽입헤 탐지를 어렵게 한다. 또한 주요 기능을 모두 모듈의 형태로 구현해 동작하며 C&C 서버로부터 실시간으로 새로운 모듈을 다운받아 기능을 확장할 수 있어 주의가 필요하다. 따라서 주기적으로 정보보안과 관련된 소식에 관심을 갖고 보안 프로그램과 OS를 항상 최신 버전으로 유지할 것을 권고한다.
상기 악성코드는 잉카인터넷 안티바이러스 제품 TACHYON Internet Security 6.0에서 진단 및 치료가 가능하다.

[그림 5] TACHYON Internet Security 6.0 진단 및 치료 화면
