* 출처는 안랩입니다.

AhnLab SEcurity intelligence Center(ASEC)은 인포스틸러인 Rhadamanthys 악성코드가 RenPy로 만들어진 게임으로 위장하여 유포되고 있는 것을 확인하였다. RenPy는 Python 기반의 게임 제작 도구로, 사용자가 간단한 스크립트만으로 스토리, 대사, 이미지 및 사운드 등을 손쉽게 구성할 수 있도록 지원한다. 오픈소스 형태로 배포되며 다양한 운영체제에서 실행이 가능해 인디 개발자들 사이에서 폭넓게 활용되고 있으며, Steam과 같은 주요 게임 플랫폼에서도 사용될 정도로 인기가 많다.
해당 공격은 정상적인 게임 파일로 위장하여 실행 시 내부에 포함된 악성 로더를 통해 최종적으로 Rhadamanthys 인포스틸러가 실행된다. 본 보고서에서는 해당 악성코드의 유포 방식, 내부 동작 구조, 그리고 탐지 회피 기법에 대해 상세히 기술하고자 한다.

[그림 1] RenPy 공식홈페이지
RenPy로 게임을 개발할 때 필수적으로 사용되는 스크립트 파일은 “script.rpy”, “options.rpy”, “gui.rpy”, “screens.rpy”로 총 4개이며, 모두 RenPy 전용 확장자인 “.rpy”를 사용하는 Python 기반 스크립트 파일이다.

[그림 2] 정상 “script.rpy” 템플릿 코드
게임을 최종 빌드 시 위 4개의 파일을 그대로 게임 경로에 생성하는 것이 일반적인 기능이고, 이를 하나의 파일로 압축 및 컴파일하여 생성할 수 있는데, 이때 생성되는 파일의 이름은 “archive.rpa”이다. 4개의 파일을 1개로 압축 및 컴파일하기 때문에 파일 용량을 줄일 수 있으며, 게임 소스 코드도 보호할 수 있어 대부분의 개발자들이 컴파일하여 배포한다. 게임 빌드 완료 이후 게임 런처 프로그램이 실행될 때 “archive.rpa” 파일을 압축 및 디컴파일 해제를 통해 스크립트 파일들을 추출하고 읽어와 실행하게 된다.
이 가운데 핵심은 “script.rpy” 파일로, 게임 실행 흐름의 진입점이자 시나리오와 레이블 등 본문 로직이 정의된다. 공격자는 이 파일에 악성 스크립트를 삽입하여 악성 코드를 실행하도록 조작할 수 있다. 본문의 사례에서도 공격자는 이러한 실행 메커니즘을 이용하여 “script.rpy” 파일에 악성 스크립트를 작성하고, 이를 통해 같은 경로에 존재하는 추가 악성코드를 실행한다.
* 전체내용은 아래에서 확인하세요.











