VBA Form을 활용한 매크로 바이러스

1. 개요


최근 트렌드 마이크로에서 블로그를 통해 "새로운 형태의 매크로 악성코드 분석 정보"를 공개했다. 블로그에 따르면 해당 악성코드는 엑셀 개발자 도구의 Visual Basic을 이용해 Form Object에 매크로 코드를 작성했으며 코드 또한 난독화를 적용한 형태라고 밝혔다. 


해당 악성코드의 기본 구조는 "우크라이나 정전사태 관련 악성코드" 분석시 확인했던 매크로 구조이지만 엑셀 매크로를 Visual Basic 개발자 도구를 이용해 작성했으며 난독화를 적용했다는 점에서 주의깊게 살펴봐야 할 것이다. 




2. 전체 동작


< Figure 1. 매크로를 이용한 악성코드 실행 과정 >


해커/악성코드 제작자에 의해 작성된 악성 문서파일이 첨부된 이메일을 특정 타겟에게 전달된다. 악성 이메일을 받은 사용자는 첨부된 파일을 실행하게 되고 악성 문서 파일 내부의 매크로에 의해 외부 서버로 부터 악성파일을 다운로드 후 실행하게 된다. 분석 대상 샘플의 경우 외부 서버로부터 Locky 랜섬웨어를 다운로드 후 실행하게 된다. 


3. 분석


(1) 개발자 도구 실행하기  

엑셀은 기본적으로 Visual Basic을 이용한 개발이 가능하도록 "개발자 도구"를 지원하고 있다. 해당 악성코드 또한 이러한 개발자 도구를 통해 개발되었으므로 엑셀의 개발자 도구를 통해 코드를 확인할 수 있다. 


< Figure 2. 엑셀 "개발자 도구" 탭 활성화하기 >


  • 테스트 환경 : 엑셀 2007

엑셀에서 "개발자 도구"를 활용하기 위해선 다음의 순서대로 "개발자 도구" 탭을 활성화해야 한다. 

  • 과정
    • "빠른 실행 도구 모음 사용자 지정"을 선택한다. 
    • "기타 명령" 메뉴를 선택한다. 
    • "기본 설정" 메뉴를 선택한다. 
    • "리본 메뉴에 개발 도구 탭 표시" 옆의 체크 박스를 클릭해 활성화한다. 
    • "확인" 버튼을 누른다. 
설정이 완료되면 "개발자 도구" 탭에서 "Visual Basic"을 선택하면 된다. 

(2) 매크로 코드 분석하기

Visual Basic에서 "프로젝트"에서 엑셀 파일내에 생성된 시트나 모듈을 선택하면 내부 코드를 볼 수 있다. 이 중 "Module1"을 선택하면 분석 대상 소스를 확인할 수 있다. 


< Figure 3. 매크로 코드 확인하기 (1) >


내부 코드 중 CheckBin( ) 함수를 확인해 보면 10진수로 보이는 문자열을 확인할 수 있고 해당 변수 (somehernya_7)을 코드내에서 검색하면 다음과 같은 처리 구문을 확인할 수 있다. 


< Figure 4. 매크로 코드 확인하기 (2) >


해당 구문을 처리하면 다음과 같다. 


< Figure 5. 매크로 코드 확인하기  (3) >


해당 경로는 엑셀 파일을 실행했을 때 접속하는 URL로 악성코드 다운로드를 시도하지만 현재 다운로드는 지원하지 않는다.  


  • 외부 서버 : sekiedge.co.uk ( 119.81.19.188 )

< Figure 6. 외부 서버 접속 (1) >


< Figure 7. 외부 서버 접속 (2) (malwares.com) >



4. 샘플 목록

malwares.com 에서 해당 도메인을 통해 배포된 악성코드에 대한 정보를 확인할 수 있다. 


5. 연관 정보 

최초 접근한 외부 서버에서 과거 배포된 이력이 있는 악성코드 정보를 확인하거나 배포된 악성코드의 추가 정보를 통해 유포된 추가 도메인 정보를 확인할 수 있고 행위 분석을 통해 생성/실행된 악성코드가 접속하는 C2서버 또한 확인할 수 있다. 
이러한 프로파일링 정보를 통해 이러한 형태의 악성코드는 2016년 2월부터 배포되기 시작했으며 Locky 랜섬웨어를 배포하거나 또는 Sality 파일 바이러스를 배포하고 있음을 확인할 수 있으므로 과거 배포 이력을 바탕으로 연관 악성코드 분석 및 사전 차단이 가능하다. 



이 글을 공유하기

댓글

Designed by JB FACTORY