본문 바로가기

악성코드 정보

GandCrab v5.2 랜섬웨어에서 사용된 동적분석 우회기법 (2)

안랩 ASEC은 최근 Gandcrab v5.2에서 새로운 방식의 동적 분석 우회 기법이 사용되는 것을 확인하였다. Gandcrab에서 사용되는 동적 분석 우회 기법은 이전 블로그에서도 다룬 바 있다.

 

- GandCrab v5.2 랜섬웨어에서 사용된 동적분석 우회기법 [ https://asec.ahnlab.com/1202 ]

 

이전 글에서 다룬 시간 지연 방식은 SetTimer() API 함수 즉 타이머를 이용한 방식이었다. 동적 분석 환경에서는 샘플에서 이러한 API가 사용될 때 충분히 의심스러운 행위로 파악할 수 있으며, 또한 이렇게 지정한 시간에 대한 우회도 가능하다.

 

하지만 최근 유포되는 Gandcrab v5.2에서는 다수의 쓰레기 루틴을 반복하는 방식을 통해 시간을 지연시킨다.

 

Gandcrab v5.2의 쓰레기 루틴 반복문

 

위의 루틴은 API 함수 GetSystemTimeAdjustment(), GetCaretPos() 를 호출하는 형태로서 0x3FED3D 10진수로는 400만 번 이상 위의 반복문이 수행되게 된다.

 

실제 암호화를 담당하는 Gandcrab 의 외형 Packer에는 위와 같은 루틴 외에도 다수의 반복 루틴이 존재한다. 동적 분석 환경에서는 악성코드가 수행하는 행위를 기록하는데 이러한 쓰레기 루틴이 대량으로 반복된다면 그 행위를 분석하고 기록하는 루틴에 의한 오버헤드 때문에 더 많은 시간이 지연되고 또한 그 로그를 분석하는 데에도 문제가 발생할 수 있다.

 

Gandcrab 패커에 포함된 다수의 쓰레기 루틴 반복문들

 

Sleep()이나 Timer 같은 일반적인 시간 지연 기법들이 아닌 쓰레기 루틴을 반복하는 방식의 시간 지연 기법은 동적 분석 장비의 모니터링 탐지를 어렵게 한다자사에서는 지속적 확인 및 분석을 통해 최신 파일들이 우회되지 않고 탐지될 수 있도록 신속히 적용 및 대응 중이다.

 

GandCrab은 현재 V3에서 다음과 같이 진단하고 있다.

 

파일진단 : Trojan/Win32.Gandcrab

행위진단 : Malware/MDP.Ransom.M1711