실제 사례로 본 국내 게임사 대상 공급망 공격
AhnLab SEcurity intelligence Center(ASEC)은 최근 국내 기업 및 사용자들을 대상으로 한 위협을 모니터링하던 중 공격자가 국내 게임사들을 대상으로 공급망 공격을 수행한 정황을 확인했다. 공격자는 국내 게임 보안 업체인 A사를 공격하여 게임 보안 모듈에 악성 루틴을 삽입했다. A사 프로그램을 사용하는 게임들은 악성코드가 포함된 채로 배포되었고, 게임을 설치한 시스템에는 원격 제어 악성코드가 설치되어 공격자가 제어 권한을 갖게 되었다. 공격자는 변조된 A사 프로그램를 사용하는 게임의 사용자들 모두를 공격 대상으로 하지는 않았고, 주로 게임사로 확인된 업체들을 대상으로 원격 제어 악성코드를 설치했다. 즉 국내 게임사들을 대상으로 한 공급망 APT 공격으로 추정된다.
이번 글에서는 해당 공격에 대해 ASEC 분석한 내용을 공유한다.

이번 공격에서, 공격자가 악용한 유효 인증서의 국가는 대한민국 인증서 5개, 중국 인증서 5개 총 10개였다. 2024년 4월과 5월, 공격자는 유효한 인증서로 A사 프로그램 모듈을 서명해 악성코드를 유포했다. 유포는 공급망 공격 형태로 이루어졌으며, 2024년 9월까지도 국내 게임사 공식 웹사이트를 통해 게임을 설치하는 과정에서 악성코드가 함께 설치되고 있다. 공격자가 삽입한 코드는 파워쉘 명령을 실행해 특정 주소로부터 난독화된 스크립트를 다운로드 받아 실행한다. 결과적으로, 공격자가 지정한 특정 IP일 경우에는 원격 제어 악성코드인 Remcos RAT을 다운로드한다.
공격 사례에서 확인된 악성코드들의 특징은 국내 게임 보안 업체의 유효한 인증서로 서명되었다는 것이다. 공격에 사용된 인증서는 적어도 2017년부터 지속적으로 탈취되어 공격에 사용되고 있는데 ZxShell이나 Mimikatz, PrintSpoofer 악성코드 서명에 사용되어 왔다. ZxShell은 과거부터 주로 중국 기반 공격자들이 자주 사용하는 것으로 알려진 오픈소스 백도어 악성코드다.
ASEC은 연관 악성코드를 확인하던 중 중국을 기반으로 하는 것으로 알려진 위협 그룹 ‘APT 27’ (BRONZE UNION, EMISSARY PANDA, Iron Tiger, Lucky Mouse 등)이 중국 소프트웨어 개발 업체인 Hangzhou Bianfeng Networking Technology의 유효한 인증서로 ZxShell을 서명해 사용한 공격 사례 보고서들을 확인했다. 이는 국내 게임 보안 업체의 인증서로 서명된 ZxShell과 동일한 형태였다. 사용하는 악성코드들과 C&C 주소를 보면 공격은 주로 중국을 기반으로 한 공격자들에 의해 이루어진 것으로 보이지만, 본 문서에서 다루는 모든 공격 및 악성코드가 동일 공격자의 소행인지, 또 구체적인 APT 그룹과 연관되어 있는지는 확인되지 않았다.
다음은 ASEC에서 분석한 세 가지 공격 사례에 관한 내용이다.
사례 1: ZxShell 악성코드 공격
ZxShell은 다양한 원격 제어 기능을 제공하는 RAT(Remote Administration Tool) 악성코드로, 소스 코드가 공개되어 있다. 주로 중국 기반 공격자들이 해당 악성코드를 활용한다는 점에서 Gh0st RAT과 유사하다. 2017년과 2018년경 중국 기반 공격 그룹 ‘APT 27’이 Hangzhou Bianfeng Networking Technology의 인증서로 서명된 ZxShell을 이용해 공격한 사례가 공개된 적이 있다. Hangzhou Bianfeng Networking Technology 외에도 다양한 인증서로 서명된 동일한 유형의 ZxShell 악성코드들이 있고 이는 2024년까지도 확인되고 있다.
유효한 인증서로 서명된 수 많은 ZxShell들 중, 실제 국내 대상 공격에서 확인된 것은 소수인 것으로 보인다. 최근에는 최초 침투 과정이 확인되지 않았지만, 국내 게임사 A사의 인증서로 서명된 ZxShell이 국내 또 다른 게임사 대상 공격에 사용되기도 했다. 참고로, 악용된 인증서들을 추적하다 보면 ZxShell 외에도 Mimikatz, PrintSpoofer, NirSoft의 Dialupass 등 권한 상승 및 자격 증명 정보 탈취에 사용되는 도구들이 서명된 케이스도 확인된다.
1.1. ZxShell 악성코드
ZxShell은 RAT 악성코드로, LZX라는 이름의 제작자가 2004년 경 개발한 것으로 알려져 있다. 소스 코드가 공개되어 있기 때문에 수 많은 공격자들에 의해 사용되어 왔으며, 특히 중국 기반 공격자들이 활발하게 사용해오고 있다. [표 1]은 ZxShell이 지원하는 기능들로, 파일 및 프로세스 관리, 명령 실행, 원격 쉘 등의 기능 외에도 포트 포워딩, 포트 스캔, 키로깅, 원격 데스크톱, Socks 프록시 등 다양한 기능들을 지원한다.
|
명령 |
기능 |
|
SysInfo |
시스템 정보수집 |
|
winvnc |
원격 데스크톱 |
|
KeyLog |
키로깅 |
|
PortScan |
포트 스캔 |
|
SYNFlood |
SynFlooding (DDoS 공격) |
|
ZXNC |
NetCat |
|
ZXHttpProxy |
HTTPProxy |
|
ZXSockProxy |
SocksProxy |
|
ZXHttpServer |
HTTPServer |
|
ZXFtpServer |
FTPServer |
|
Ps |
프로세스관리 |
|
Shutdown |
시스템 종료 |
|
Execute |
명령 실행 |
|
GetCMD |
원격 쉘 |
|
FileMG |
파일 관리 |
|
rPortMap |
포트 포워딩 |
|
End |
중지 |
|
Exit/ Quit |
종료 |
[표 1] ZxShell의 주요 명령
공격에 사용된 ZxShell은 드로퍼에 의해 서비스 형태로 설치된다. 최종적으로 설치된 ZxShell들은 모두 동일하지는 않지만, 원본 ZxShell과 비교해 많은 기능들이 제거되어 있다. 그리고, 원격 쉘 및 파일 관리 등 기본적인 기능들만 제공한다. 비록 공격자는 키로깅이나 정보 수집, 원격 데스크톱과 같은 기능은 사용할 수 없지만 [표 2]의 기능들만으로 충분히 감염 시스템을 제어할 수 있다.

[그림 1] 공격에 사용된 ZxShell의 명령 분기문
|
명령 |
기능 |
|
GetCMD |
원격 쉘 |
|
FileMG |
파일 관리 |
|
rPortMap |
포트 포워딩 |
|
End |
중지 |
|
Exit / Quit |
종료 |
[표 2] 공격에 사용된 ZxShell이 지원하는 명령
1.2. 기타 악성코드
게임사 B사의 유효한 인증서로 서명된 악성코드들 중에는 ZxShell만 있는 것은 아니다. Mimikatz 및 Windows Credentials Editor(WCE)는 윈도우 환경에서 자격 증명 정보를 추출해 보여주는 도구다. 공격자는 이러한 도구들을 이용해 측면 이동 과정에서 필요한 자격 증명 정보를 획득할 수 있고, 최종적으로 조직 내부를 장악하기 위해 사용한다. PrintSpoofer는 권한 상승 악성코드로 주로 취약한 웹 서버나 MS-SQL 서버 대상 공격에 사용되어, 최초 침투 이후 의도한 작업을 수행할 수 있도록 도와주는 도구로 사용된다.
|
서명일 |
종류 |
기능 |
|
180402 |
Mimikatz |
자격 증명정보 추출 |
|
180408 |
WCE |
자격 증명 정보 추출 |
|
190316 |
WCE |
자격 증명 정보 추출 |
|
190513 |
Dialupass |
자격 증명 정보 추출 |
|
230825 |
PrintSpoofer |
권한 상승 |
[표 3] 기타 악성코드 및 도구
사례 2: 최신 공급망 공격 사례
2.1. 다운로더 (A사 프로그램 변조 모듈)
[그림 2]는 A사 프로그램 변조 모듈에 의해 원격 제어 악성코드인 Remcos RAT가 설치되는 과정이다. 게임 보안 프로그램 동작 구조상 게임 설치 이후 실행 과정에서 A사 프로그램 변조 모듈이 함께 실행된다. 이 때문에, 사용자는 악성코드 동작 여부를 알아차리기 어렵다.

[그림 2] 다운로더 공격 흐름도
변조된 A사 프로그램 모듈의 인증서는 현재 해지된 상태다. 변조된 모듈은 [그림 3]과 같이 파워쉘 스크립트를 다운로드하는 코드가 추가되었으며, 공격자는 C&C 서버로부터 추가 파워쉘 스크립트를 다운로드 받아 실행한다.

[그림 3] 정상 모듈과 변조 모듈 비교

[그림 4] 공격자가 삽입한 파워쉘 스크립트 실행 코드
2.2. 파워쉘 다운로더
파워쉘 다운로더는 공격자 서버로부터 난독화 스크립트를 다운로드 받아 메모리 상에서 실행하는 역할을 한다. [그림 5]는 변조 모듈에서 공격자가 실행하는 파워쉘 스크립트 코드이다.

[그림 5] 공급망 공격을 통해 실행된 파워쉘 명령
스크립트 내용을 보면 BASE64로 인코딩된 공격자 서버 주소에 접속해 인코딩된 데이터를 받아온다. 그리고, 하드코딩된 XOR 키(,cn.wqlioue035y;xlkkwpodjqwfidvbkjflgm5-0oi40uyeoguwsylnm3-4i324tgodliuh18693t3y9p8r)로 해당 데이터를 복호화 한 뒤 메모리 상에서 스크립트를 실행한다.

[그림 6] 공격 대상을 특정하는 과정에서 사용되는 파워쉘 명령
복호화된 스크립트는 현재 감염 PC의 IP가 특정 IP 대역일 경우 추가로 인코딩된 데이터를 공격자 서버 주소로부터 다운로드 받아 동일한 XOR 키로 복호화하여 메모리 상에서 실행한다. 최종적으로 실행되는 스크립트는 Remcos RAT을 다운로드 받아 실행하는 다운로더 기능의 스크립트였다.

[그림 7] Remcos RAT을 설치하는 명령
공격자의 목표는 공급망 공격을 통해서 공격 대상 IP 대역에 Remcos RAT 악성코드를 설치하는 것으로 확인되었다. 공격자 서버로 추정되는 cdn.xt[.]to 도메인에 바이러스토탈(VirusTotal)을 통해 추가 연관 분석을 진행한 결과, Remcos RAT뿐만 아니라 다운로더 악성코드도 함께 유포한 정황을 확인했다.
2.3. Backdoor (Remcos RAT)
원격 제어 도구인 Remcos RAT는 PC에 설치될 경우 원격 제어, 키로깅, 도청 및 원격 명령 실행 등의 악의적인 행위를 수행할 수 있다. 공격자는 윈도우 정상 프로세스인 svchost.exe에 Remcos RAT을 인젝션해 실행했으며, 공격자 C&C 서버와 지속 통신 및 키로깅 기능을 수행하도록 설정했다. 현재 스크린샷 기능은 비활성화되어 있지만 오디오 기능은 활성화 되어있다. 공격자가 설치한 Remcos RAT의 악성코드 전체 설정 정보는 [표 4]와 같다.
|
항목 |
값 |
|
위장 프로세스 |
svchost.exe |
|
C&C 주소 |
ns1-2587.msftdns[.]net:2404 ns1-2587.msftdns[.]net:34789 185.158.113[.]101:54333 92.223.106[.]203:34789 |
|
Install_flag |
True |
|
Install_HKCU\Run |
True |
|
Install_HKLM\Explorer\Run |
True |
|
Install_HKLM\Winlogon\Shell |
True |
|
Install_HKLM\Winlogon\Userinit |
True |
|
Setup_path |
System32 |
|
Copy_file |
EdgeLogger.exe |
|
Startup_value |
True |
|
Hide_file |
True |
|
Mutex_name |
MrxE-TGRJ3Y |
|
Keylog_flag |
1 |
|
Keylog_path |
%TEMP% |
|
Keylog_file |
logs.dat |
|
Keylog_crypt |
True |
|
Hide_keylog |
True |
|
Screenshot_flag |
False |
|
Screenshot_time |
5 |
|
Take_Screenshot |
False |
|
Screenshot_path |
%APPDATA% |
|
Screenshot_file |
Screenshots |
|
Screenshot_crypt |
False |
|
Mouse_option |
False |
|
Delete_file |
True |
|
Audio_record_time |
5 |
|
Audio_path |
%ProgramFiles% |
|
Audio_dir |
MicRecords |
|
Connect_delay |
0 |
|
Copy_dir |
MediaLogs |
|
Keylog_dir |
DefenderLog |
[표 4] Remcos RAT 설정 데이터
사례 3: FakeClient 공격 사례
3.1. FakeClient
위에서 다룬 게임사들의 유효한 인증서는 악성코드 서명 목적만으로 사용된 것이 아니라 게임 런처를 서명하는데에도 사용되었다. 하나의 사례를 들면, C라는 게임의 홈페이지에서는 회원가입 및 게임 클라이언트 다운로드가 가능한데, 이 게임 런처들을 조사한 결과, 국내 게임사들의 유효한 인증서를 이용해 서명되어 유포되었던 것을 확인하였다.
해당 게임 런처는 일반적인 악성코드는 아니지만 단순한 게임 클라이언트라고 하기에는 의심스러운 부분이 있다. 예를 들어, 로그인 시 시스템에서 정보를 수집해 zenomia.xt[.]to에 전송하는데 여기에는 사용자 이름, 컴퓨터 이름, MAC 주소, IP 주소, CPU, GPU, RAM, 메인보드 등 하드웨어 정보와 윈도우 버전 정보가 포함된다.

[그림 8] 시스템에서 수집한 정보들
참고로 바이너리에는 다운로드 주소나 위의 명령들을 포함한 다양한 문자열들이 암호화되어 있다. 문자열들은 실행 중 복호화 되는데, 그 중에는 욕설이 포함된 문자열들이 있다는 특징이 있다.
결론
참고로 바이너리에는 다운로드 주소나 위의 명령들을 포함한 다양한 문자열들이 암호화되어 있다. 문자열들은 실행 중 복호화 되는데, 그 중에는 욕설이 포함된 문자열들이 있다는 특징이 있다.
이번 문서에서 살펴본 바와 같이 국내 게임사들을 대상으로 한 소프트웨어 공급망 공격이 지속적으로 확인되고 있다. 그리고, 최근 들어 소프트웨어 공급망 공격 사례가 눈에 띄게 증가하고 있다. 소프트웨어 공급망 공격은 국가의 지원을 받는 APT 공격 그룹 뿐만 아니라 금전적 수익을 목표로 하는 단일 공격자들이 감행하기도 한다. 공급망 공격은 성공 시, 프로그램을 사용하는 모든 조직과 개인에 영향을 미칠 수 있어 파급력이 굉장히 크다.
공급망 공격은 모든 소프트웨어 인프라가 공격 대상이 된다. 따라서, 개발부터 배포까지 모든 단계에 걸쳐 보안이 이뤄지지 않으면 방어하기가 어려워진다. 실제 취약점이 공개된 이후에도 또는 관리자나 개발 업체가 공급망 공격을 인지한 이후에도 오랜 기간 동안 적절한 조치가 진행되지 못한 사례들도 많다. 최근 공급망 보안을 위한 SBOM(Software Bill of Materials)의 중요성이 높아지는 가운데, 정부와 기업들이 협력해 공급망 보안 태세를 견고히 한다면, 보다 안전한 디지털 환경 조성에 한 걸음 더 나아갈 수 있을 것으로 보인다.
이번 문서에서 다룬 사례들의 침해지표(IOC) 등 보다 자세한 내용을 담은 보고서 원문은 AhnLab TIP 구독 서비스를 통해 확인할 수 있다.
- AhnLab분석팀 한명욱 선임