1. 제목 : 악성코드 유형에 따른 자동화 분석 방법론 연구
2. 연구개발의 목적 및 중요성
1) 연구개발의 목적
매일 새로이 발견되는 악성코드의 수와 종류는 지속적으로 증가하고 있는데, 그 이유는 금전적인 이득을 목적으로 공격자가 취약점을 계속해서 찾아내고, 기존의 악성코드와 자동 제작 도구를 이용하여 신·변종을 만들어내기 때문이다. 또한 악성코드의 감염에 의한 사용자 피해 역시 급속도로 증가하고 있어서 악성코드에 대한 더욱 신속한 대응이 절실히 요구되고 있다.
기존의 대응 기술들은 악성코드를 수집하고 분석하는 과정에 수동적인 작업을 필요로 하는 부분이 많기 때문에 신속한 대응을 어렵게 하고 있다. 또한 안티바이러스 및 안티스파이웨어 등의 제품 공급자들마다 진단을 다르게 하여 사용자들이 혼란을 겪기도 한다.
본 연구 과제에서는 좀 더 신속하게 대응할 수 있도록 넷봇(Netbot)의 악성행위 및 특징을 분석하여 자동화 분석 방법을 제시하고, 웜, 바이러스, 트로이목마, 애드웨어 등 각각의 악성코드별 특징 분석을 확장 적용하여 악성코드 유형에 따른 효과적인 자동화 분석 방법에 대한 연구를 목표로 한다.
2) 연구개발의 중요성
최근 컴퓨터 및 인터넷의 보급이 크게 확산됨에 따라 광범위한 정보 통신망 구축이 가능해졌으며, 각종 정보 공유, 전자상거래 등이 가능하게 되었다. 그러나 이와 더불어 정보 위조 및 변조, 정보 유출, 웜이나 바이러스 전파 등과 같이 정보 네트워크에서의 보안 침해 부작용도 꾸준히 증가하고 있다. 그 중에서도 분산서비스거부(DDoS) 공격, 스팸 발송, 해킹, 개인정보 유출 등으로 인한 사용자들의 피해가 급증하고 있다. 이러한 공격들은 대부분 사용자 컴퓨터에 감염된 악성코드에 의해 이루어진다. 악성코드는 보안이 허술한 일반 사용자 컴퓨터에 침투하여 공격자를 노출시키지 않고 다른 공격들을 수행하는 중간 노드 역할을 한다. 최근에는 이러한 악성코드에 감염된 컴퓨터들이 거대한 봇넷(Botnet - 악성코드에 감염된 여러 컴퓨터들이 연결된 네트워크)을 형성하여 더 광범위한 사이버 범죄에 악용되고 있다.
악성코드 수와 종류의 지속적인 증가는 소프트웨어 개발 기술 발전에도 불구하고 시스템의 취약점을 찾는 기술이 점차 정교해지고 다양해지고 있으며, DDoS 공격 도구인 넷봇(Netbot) 외에도 각종 악성코드의 자동 제작 도구 및 기술의 보편화로 인해 손쉽게 신·변종 악성코드를 작성하는 것이 가능하기 때문이라고 할 수 있다. 그러나 악성코드에 대한 대응 방법은 아직까지는 대부분 수동으로 악성코드를 탐지·분석하여 대응하기 때문에 악성코드 유포 속도에 크게 뒤처지고 있어 악성코드에 의한 직접적인 피해 및 2차적인 피해는 급속도로 확산되고 있는 실정이다.
따라서 본 연구를 통해서 개발되는 악성코드의 자동화 분석 방법은 다양한 악성코드에 적용되어 보다 효율적인 분석이 이루어질 수 있으며, 이를 통해 신속하게 대응함으로써 악성코드에 따른 피해 확산을 최소화시킬 수 있을 것으로 판단된다.
3. 연구개발의 내용 및 범위
본 연구과제에서는 악성코드 유형에 따른 자동화 분석 방법을 마련하기 위하여 다음과 같은 연구 내용을 수행한다.
○ 악성코드의 정의 및 분류 방법, 유형별 특징 분석
- 악성코드의 유형별 정의와 분류 방법 조사
- 악성코드 유형별 특징 분석
- 기존의 악성코드 자동 분류 방법 조사 및 분석
○ 넷봇의 악성행위 및 특징 분석
- 넷봇을 이용한 공격 및 악성행위 분석
- 정적분석을 통한 넷봇의 특징 파악
○ 분석 방해 기술(안티디버깅 및 분석 우회 방법) 조사
- 안티디버깅 기술의 유형 및 동작방식 조사
- 가상머신 탐지 기술 조사
○ 루트킷 및 커널 악성코드 유형 분석
- 루트킷, 커널 악성코드의 유형 및 동작방식 조사
○ 악성코드의 자동화 분석 방법론 도출
- 악성코드가 사용하거나 변경하는 파일 및 레지스트리 분석
- 저장 매체 사용의 모니터링
- 악성코드의 도메인 접속 분석
- 코드 인젝션 분석
- 악성코드 분석 프로세스에 대한 자동화
4. 연구결과
현재까지의 연구 결과 내용은 다음과 같다.
○ 중간연구보고서
중간연구보고서에서는 악성코드 유형에 따른 자동화 분석 방법론 연구를 위한 선행 단계로써 악성코드의 정의 및 분류 방법과 유형별 특징을 분석하고, 기존의 악성코드 자동 분류 방법에 대하여 조사하였으며, DDoS 공격 도구인 넷봇(Netbot)의 동작방식과 악성행위의 특징을 분석하였다. 또한 악성코드 중에서 트로이목마가 사용하거나 변경하는 파일, 레지스트리를 조사하여 부록에 첨부하였다.
○ 최종연구보고서
최종연구보고서에서는 악성코드 유형에 따른 자동화 분석 방법론을 제시하였다. 이는 특징 도출 단계, 상호작용 단계, 자동화 분석 단계를 포함한다. 특징 도출 단계에 대해서는 넷봇의 PE 파일을 분석함으로써 넷봇이 사용하는 API를 분류하였고, Bloom Filter를 이용하여 함수 사용에 따른 Bit Array를 추출하였다. 상호작용 단계에서는 도출된 특징을 DB에 저장하기 위해 분석가와의 상호작용을 제시하였다. 또한 자동화 분석 단계에서는 Bloom Filter의 결과로 추출한 Bit Array를 이용하여 넷봇 간의 코드 유사도 및 넷봇과 다른 프로그램과의 코드 유사도를 계산하였다.
5. 활용에 대한 건의
본 연구과제에서 도출되는 악성코드의 자동화 분석 방법론은 다음과 같이 활용될 수 있다.
○ 자동 분석을 통해 넷봇이나 다른 악성코드에 대하여 일치할 가능성 및 변종 악성코드의 가능성에 대한 확인
○ 실제 악성코드 자동 분석을 통해 신속한 대응 및 피해 확산 최소화
6. 기대효과
본 연구과제에서 도출되는 악성코드의 자동화 분석 방법론은 급격히 증가하고 있는 악성코드에 대하여 보다 효율적인 분석 방법을 제공할 것이다. 악성코드의 분석에 소모되던 시간을 크게 줄이고, 유사 악성코드에 대한 불필요한 분석을 제거하여 새로운 악성코드에 대응할 수 있는 시간을 단축함으로써 악성코드로 인한 사회, 경제적 파급 효과를 완화시킬 수 있을 것으로 기대된다.
아울러 본 연구과제를 통하여 배출되는 인력들은 향후 국내 정보보호 업계에 진출하여 정보보호 산업 발전에 크게 기여할 수 있을 것으로 기대된다.