북한 해킹 단체인 김수키가 만든 악성코드의 위장 수법과 동작 흐름을 정리하면 다음과 같다. 파일명 api_reference.chm 은 카지노 솔루션 통합을 위한 백엔드 명세서로 포장되지만 실제 실행 시 악성코드가 작동한다. CHM 파일 자체의 문서 부분을 악용해 악성 스크립트가 함께 실행되며, 해당 스크립트는 사용자의 프로필 경로 아래 Link.ini 를 생성하고 실행하는 기능을 수행한다. 7-zip 로 열기 어렵지 않게 하기 위해 chm 를 7z 로 바꿔 풀면 된다.
악성코드의 동작 방식은 ActiveX 객체를 악용해 PowerShell 을 실행하고, Base64 디코드를 거쳐 VBScript 를 실행한 뒤 원격 서버에서 추가 코드를 다운로드해 실행하는 형태이다. PowerShell 실행은 숨김 창으로 이루어져 콘솔 창이 보이지 않도록 하며 실행 흔적을 최소화한다. Base64 문자열은 Link.dat 파일로 저장되며 certutil 로 디코딩한 뒤 wscript.exe 로 VBScript 를 실행한다. HTML 내에 포함된 PowerShell 코드 실행 옵션은 b:배치 모드, e:팝업/에러 최소화, vbscript 엔진 지정 등을 포함한다. 핵심은 Base64 부분으로, 그 부분의 코드를 통해 초기 다운로드와 지속 실행이 이루어진다.
랜덤 숫자 생성 로직도 특징적이다. VBScript 에서 1 부터 10 000 사이의 임의 숫자를 생성해 문자열로 변환하는 방식이 사용되며 Rnd 함수의 특성상 소수점을 버리고 정수로 변환하는 Int(10000 * Rnd + 1) 구문이 쓰인다. 생성된 숫자는 문자열로 변환되어 파일명이나 텍스트 박스 등에 포함되거나 고유 식별자를 부여하는 데 이용된다. 이와 함께 캐시를 우회해 간단한 트래킹 서버로 감염 세션을 분류하는 기능도 작동한다.
C2 의 확인된 연결 지점은 hxxp://check(.)nid-log(.)com/api/bootservice(.)php?tag=9890&query=1 이며, C2 통신과 명령 수신은 Base64 디코딩 후 PowerShell 실행의 경로를 통해 이루어진다. 보안 솔루션 측 탐지로 Fortinet 의 JS/Kimsuky.F 트로이목마를 비롯해 여러 공급업체에서 악성코드로 식별된다. 프로그램의 구성은 인증 방식으로 Bearer 토큰과 IP 화이트리스트를 도입한 보안 설정을 가장하고, 회원 관리, 잔액 조회, 지갑 관리, 게임 실행, 내역 조회, 프로모션 등 카지노 관련 API 를 위장한 기능을 포함한다.
마지막으로 본 악성코드는 위장 파일 형태를 통해 실행되며, CHM 내부의 악성 스크립트가 연결된 여러 구성 요소를 통해 원격 코드 다운로드 및 로드가 지속적으로 수행된다. 항상 조심이 필요하다.