본문 바로가기
Information Technology/Spear phishing

스피어 피싱 대응을 위한 행위기반 판별에 대한 연구 - 가상환경 구성 -

by JUNE LAB 2017. 11. 20.
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

스피어 피싱 대응을 위한 행위기반 판별에 대한 연구


2.2 가상환경 구성

   가상머신을 이용한 유해 행위 탐지 기술은 사용자의 독립적인 가상머신 내에서 대상 파일을 실행함으로 사용자 시스템에는 악영향을 끼치지 않으며 코드를 실행해 볼 수 있다는 장점이 있다. 또한, 대상 파일 별도의 가상머신 상에서 실행함으로써 악성코드가 실행되며 시스템에 악영향을 끼쳐도 다시 가상머신을 초기화시킴으로써 이른 시간에 새로운 시스템에서 각각의 대상파일에 대한 실행 및 판단을 할 수 있다. [그림 3] 분석 흐름도는 가상머신을 이용한 유해 행위 탐지시스템의 가상머신 클러스터를 세분화하여 알기 쉽게 표현하였다. 


[그림 3] 악성코드 분석 흐름도


   가상머신 클러스터를 구성하기 위해 인터넷의 모든 애플리케이션과 현존하는 운영체제를 모두 검사하는 것은 매우 비효율적이며 방어할 확률도 매우 떨어질 것이다. 그리고 시스템의 성능에 따라 동시에 분석 가능한 가상머신의 개수도 한계가 있다. 아래 [그림 4]는 가상머신 클러스터를 구성하기 위한 세부 개념도다. 가상머신 구성은 크게 Application, Send mail, Operating System으로 나뉘며 Host 운영체제는 행위 분석을 담당하는 가상머신의 행위 정보 수집과 가상머신의 모니터링을 진행하게 된다. 또한, 분석을 마친 첨부파일은 리포트 작성과 사용자에게 알리는 기능을 담당하며 스냅샷 기능을 통해 분석 전 가상머신 환경으로 되돌리는 역할을 담당하게 된다.


[그림 4] 가상머신 클러스터 구성도


   가상머신 클러스터를 구성하기 위해서는 각 조직의 부서별 특징과 환경을 조사하여 사용하고자 하는 애플리케이션과 운영체제를 제한하여야 한다. 보통 회사의 회계업무를 담당하는 부서의 경우 계약서를 검토하기 위한 MS오피스와 아래아한글(HWP) 자금 및 세금 신고를 관리하기 위한 ERP 및 회계관리 애플리케이션을 공통으로 사용한다. 그리고 조직에서 보편적으로 정보 검색을 하기 위해 웹브라우저 구글 크롬(Chrome)을 사용하고 은행 이체, 증빙서, 확인서 등의 업무는 인터넷 익스플로러(버전 별)를 사용한다. 이처럼 조직의 특성을 확인하여 공통으로 사용하는 애플리케이션을 분류해 가상머신 클러스터를 효과적으로 구성하였다. [그림 5]는 조직 구성에 맞춘 가상머신 클러스터의 예를 표현한 것이다.


[그림 5] 조직 구성에 맞춘 가상머신 클러스터 (예)


   이는 시스템을 구축하여 첨부파일을 실행하며 유해 행위 여부를 판단하는 시스템보다 시스템 복원 등에 걸리는 시간이 대폭 감소하므로 대량의 대상 파일에 대한 유해 행위 탐지가 쉬워진다. 특히 가상머신을 이용하면 하나의 시스템에 여러 개의 가상머신을 동작시킬 수 있다. 일반적으로 가상머신을 이용한 악성코드 행위 분석 방법은 아래와 같다.

  • 악성코드 실행 전의 초기 시스템 상태의 이미지와 실행 이후의 이미지 비교를 통한 유해 행위 탐지

  • 디버거 등의 특별한 도구를 이용하여 악성코드가 실행되는 동안의 행위 모니터링

  • 가상머신 상에 코드를 실행하여 기존에 수집한 악성코드 패턴을 이용한 오용탐지

   또 다른 접근 방법으로는 Sandbox와 유사한 TTAnalyze가 있다. TTAnalyz는 PC의 에뮬레이터 QEMU2를 사용한다. 가상머신이 그 위에서 동작하는 프로그램의 코드를 인터프린터 방식처럼 실시간으로 하나씩 번역해 실행하며, 실제 CPU에서 실행되는 것처럼 하는 방식에 반해, QEMU는 변환기가 대상 CPU 명령어를 실제 호스트의 CPU 명령어로 동적으로 바꾸어 실행하게 된다. TTAnalyze는 악성코드를 분석하여 일반 정보, 파일 정보, 레지스트리 정보, 서비스 정보, 프로세스 정보 및 네트워크 정보를 제공한다. 가상머신은 실제 조직원 구성에 맞게 구성해야 효율을 높일 수 있다. 아래 [표 7]은 행위기반 탐지로 얻을 수 있는 주요 행위이다.


[표 7] 행위기반 탐지로 얻을 수 있는 주요 행위

구 분

세 부 구 분

설 명

DLL 로드

DLL 로드

어떤 DLL을 로드하는가?

파일

새로운 파일 생성

어떤 파일을 생성하는가?

파일 내용 읽기

어떤 파일의 내용을 읽는가?

파일 접근 순서

파일에 대한 접근을 시간순서대로 나열

파일 복사

어떤 파일을 어디로 복사하는가?

레지스트리

읽기

어떤 Key 값을 읽는가?

쓰기

어떤 위치에 어떤 값을 쓰는가?

프로세스

프로세스 생성

어떤 프로세스를 생성하는가?

프로세스 읽기

어떤 프로세스 영역의 정보를 읽는가?

프로세스 쓰기

어떤 프로세스 영역 내에 어떤 정보를 쓰는가?

쓰레드 실행

어떤 프로세스 영역 내에 어떤 쓰레드를 실행하는가?

서비스

서비스 등록

어떤 서비스를 등록하는가?

서비스 실행

어떤 서비스를 실행하는가?

서비스 중지

어떤 서비스를 중지하는가?

서비스 제거

어떤 서비스를 제거하는가?

서비스 

객체

시스템 객체 생성

어떤 시스템 객체를 생성하는가?

시스템 객체 읽기

어떤 시스템 객체로부터 정보를 읽는가?

시스템 객체 쓰기

어떤 시스템 객체로 정보를 쓰는가?

네트워크

연결 유형

외부 시스템으로 접근 하는지?

부로 부터 접근을 기다리는지?

외부 시스템 주소

연결된 외부시스템의 IP주소 및 도메인은?

프로토콜

어떤 프로토콜을 사용하는지? (TCP, UDP)

연결 포트

사용한 포트번호는 몇 번인가?


댓글