본문 바로가기
IT 보안소식

악성코드가 Remote Desktop Session를 이용하여 자동분석시스템 감지하는 방법

by 잡다한 처리 2012. 11. 30.
반응형


몇일 전 시큐리티 벤더인 미국 [Trusteer] 사에서 Sandbox나 Virtual Machine 같은 자동분석시스템에서 특정 API를 통해 
분석 중인지를 감지할 수 있는 악성코드가 발견되었다고 한다.

원문 : http://www.trusteer.com/blog/evading-malware-researchers-shylock%E2%80%99s-new-trick

위 원문의 내용을 살짝 번역해보자면 아래의 내용과 같다.

"Winscard.dll" 모듈의 "SCardForgetReaderGroupA" API 반환값이
0x80100011 (SCARD_E_INVALID_VALUE) 또는 0x2 (ERROR_FILE_NOT_FOUND) 반환값이라면 해당
악성파일이 동작 된 환경은 데스크탑,
0x80100004 (SCARD_E_INVALID_PARAMETER) 반환 값이면 원격 데스크톱 세션에서 실행 된 것으로 판단한다는 내용이다.

아래의 그림은 해당 악성코드의 어셈코드이다. 

 



그래서 실제 "Winscard.dll" 모듈의 "SCardForgetReaderGroupA" API를 테스트했다.
실제 로컬에서 실행 했을 때와 원격으로 실행 했을 때 다른 리턴 값을 반환 하는 것을 알 수 있다.


[로컬에서 실행 했을 경우]

  

[원격으로 실행 했을 경우]



이를 통해 악성코드는 자신이 실행 된 환경이 자동분석시스템인지 일반적인 PC인지 파악할 수 있어,
실행과 종료를 구분할 수 있을 것이다. 이는 ㅠ.ㅠ 보안회사로써 매우 짜증나는 일이 아닐 수 없다;;


(참고)
- SCardForgetReaderGroup function (Windows) MSDN

http://msdn.microsoft.com/en-us/library/windows/desktop/aa379486(v=vs.85).aspx


- Smart_card_return_values

http://msdn.microsoft.com/en-us/library/windows/desktop/aa374738(v=vs.85).aspx#smart_card_return_values


댓글