개요
maya_secure_system 바이러스는 자기 자신을 Scene 파일을 통해 복제하는 Maya 바이러스로 userSetup.py를 변조, 악성코드를 설치한 뒤 C2 서버에 하드웨어 정보를 전송하고 RCE를 수행하는 난독화된 악성코드이다.
난독화된 악성코드의 원본 샘플과 복화화된 코드를 보고 싶다면 Github 저장소에 업로드해놓았다.
파일 목록은 다음과 같다.
| File | Description |
|---|---|
| maya_secure_system.py | Original obfuscated malware sample (DANGEROUS — DO NOT RUN) |
| maya_secure_system.deob.py | Deobfuscated malware code for analysis |
침투 방식
출처가 불분명한 Maya scene 파일 열람을 통한 악성코드 감염
침해 지표
%userprofile%/Documents/maya/[마야버전]/경로의userSetup.py변조 및maya_secure_system.py파일 생성.- 이후 열람한 Maya scene 파일의 script node에 복제 스크립트인
maya_secure_system_scriptNode를 삽입
maya_secure_system.py 분석
난독화
-
심볼 난독화
난독화된 import, 함수, 변수 심볼을 VSCode의Rename Symbol(F2) 기능을 이용하여 복원하였다.
-
실행 순서 난독화
if g_iStatus == 1:실행 이후g_iStatus를2로 설정하여 다음 loop에서는if g_iStatus == 2:에 해당하는 코드가 실행되고 그다음에는if g_iStatus == 3:… 1842번 반복한다.
while루프 내 모든if블럭을 실행 순서에 맞게 정렬한 후if구문을 제거하는 방법으로 복원하였다.

-
더미코드
실제로 사용되지 않은 변수들을 제거하였다.
-
암호화된 String과 주석
악성코드를 Maya로 실행한 후 암호화에 사용되는 2개의key값을 메모리에서 읽는 방법으로 동적 분석하였다.

기능
-
userSetup.py변조 및maya_secure_system.py설치
maya_secure_system.py를 설치하고userSetup.py에서 이를 불러오는 코드를 삽입하여 매번 마야 실행과 함께 악성코드가 작동하도록 변조
-
Heartbeat
5분에 한 번씩 C2 서버에 생존신고
-
RCE
Heartbeat 응답으로부터 Custom script를 받아 실행하는 모습

Custom script 실행 결과를 서버에 보고하는 모습

-
Scene 파일 감염
현재 열려있는 scene 파일의 script node에 복제 스크립트인maya_secure_system_scriptNode를 삽입
이후 다른 PC에서 해당 scene 파일을 열람하면 똑같은 방법으로 감염된다.
대응 및 복구 방안
-
%userprofile%/Documents/maya/[마야버전]/경로 내userSetup.py,maya_secure_system.py파일 제거 -
감염된 scene 파일 내 script node를 점검하고
maya_secure_system_scriptNode를 제거