Hacking@Security


Writer : Max | Date : 2016-07-28 11:08:51 | Count : 953
[악성코드] 악성코드의 역사와 진화

본 글에서는 어떻게 악성코드가 발전해 왔는지 악성코드의 탄생 배경과 시대별 악성코드의 특징을 다룬다.

▶ 용어의 탄생, 바이러스? 악성코드? 용어는 어떻게 탄생되었나?

바이러스라는 용어는 생물학적인 바이러스처럼 자기복제와 증식을 기계에서도 발생할 수 있다는 개념에서 출발하여 실제 컴퓨터에서도 자기복제와 증식을 갖추고 있는 프로그램을 바이러스(Virus)라고 부르게 되었고, 불과 몇 년 전까지만 하더라도 악성코드라는 용어보다 더 널리 사용되었다. 하지만 지금은 바이러스라는 용어만으로는 표현에 제한되는 부분이 많아 보다 상세하게 나누고 그 개념을 포괄적으로 표현할 수 있는 개념이 필요하게 되었다. 그로 인해 만들어지는 용어로 Malicious(악의적인)+Code 즉, 악의적인 코드를 포함한 소프트웨어라는 의미로 짧게 줄여 Malware ( Malicious+Software ) 란 용어가 탄생하게 되었다.

▶ 1940~1960년대, 컴퓨터 바이러스(Computer Virus)의 개념 적립

1946년 미국의 에커트(J.P.Eckert)와 머큘리(J.W.Mauchly)가 제작한 최초의 전자식 진공관 컴퓨터인 ENIAC 나온 이후 1949년 폰 노이만이 “Theory and Organization of Complicated Automata” 라는 논문을 통해 컴퓨터에서도 생물학적 바이러스처럼 자신을 복제하고 증식할 수 있다는 이론을 발표하였다.
그 후, 1966년 Robert Morris Sr. 과 친구들이 함께 새로운 게임 환경을 만들기 위해 Darwin 불리는 게임을 만들었고, 그 이후에는 Core War 라는 게임으로 불려졌다. 이 게임은 스스로 자기 변형을 해서 상대 프로그램을 파괴으로 바이러스 개념을 선보인 게임이었고 지금까지도 Corewar 웹 사이트( http://corewar.co.uk/ )를 통해 즐길 수 있다. 참고로, Rober Morrise Sr. 은 최초의 I-Worm을 만든 Robert Tappan Morris 의 아버지이다.

▶ 1970년대, 첫 번째 바이러스와 Anti-Virus 의 탄생

1971년, Creeper 라는 바이러스가 DEC 회사의 TENEX 시스템에서 처음 발견이 되어 Creeper가 세계최초로 발견된 바이러스로 알려지게 되었으며, Creeper 를 제거하기 위한 프로그램인 The Reaper 프로그램은 세계 최초의 Anti-Virus가 되었다. 그 후, 1970년대 초반 Univax 1108 시스템에 The Rabbit 이란 프로그램이 등장했으며, 이 프로그램은 처음 기억 장소에서 복사되는 형태로 Worm 이란 개념을 성립하게 되었다. 이에 1975년 UNIVAC 환경에서 작동하는 ANIMAL 이라는 게임이 등장하였고, ANIMAL 을 배포하기 위해 Pervade 라는 것이 만들어졌다.

▶ 1980년대, 바이러스 기술 진화의 시대

1982년, Apple의 8Bit 컴퓨터인 Apple-II 에서 당시 학생 이었던 Rich Skrenta 만든 Elk Cloner 란 Boot Virus 가 처음 발견 되었으며, 개인용 컴퓨터에서는 최초의 바이러스 이자 디스켓의 Boot 영역을 감염시키는 첫 바이러스 이었다.

986년, 최초의 IBM PC에서의 MS-DOS 바이러스로 Brain Virus 가 파키스탄에서 제작되었다. Brain Virus 는 컴퓨터 가게를 하고 있던 Basit Alvi, Amjad Alvi 형제가 자신들이 만든 소프트웨어가 불법복제되어 유통되면서 불법 소프트웨어 사용자들에게 복수하기 위해 바이러스를 제작하여 디스켓을 통해 전파되었다. 한국에는 1988년에 한국에서 처음 발생되었고, 이 바이러스를 치료하기 위해 국내에서는 당시 의대생이시던 안철수 박사님께서 자신의 컴퓨터가 브레인 바이러스에 감염되어 있는 것을 확인하고, Vaccine 이라는 것을 만들었다. 이 당시 안철수 박사님께서 만드신 Vaccine 이라는 것은 IBM PC에서의 첫 백신이 되었다.

1987년, 13일의 금요일에 맞춰 실행되는 바이러스가 이스라엘 예루살렘 헤브루 대학에서 처음 발견되었고, 예루살렘 바이러스라고 명명되었다. 한국에는 1989년에 처음 발견되었고, 감염시 COM, EXE 의 확장자를 가진 파일의 크기를 커지고, 시스템 속도 등도 저하하는 증상이 있었고, 13일의 금요일날 실행 파일을 파괴시키고 지워버리는 것이 특징이다. 예루살렘 바이러스란 이름 말고도 13일의 금요일 바이러스라고도 불리는 바이러스였다. 1988년, 12월 Robert Tappan Morris 가 인터넷에 연결되어 전파되어 번지는 첫 Worm을 제작했다. 이 시기에 첫 Buffer Overflow 취약점을 이용하는 첫 번째 Exploit 가 만들어지기도 했다. 1989년, Brain 및 Jerusalem 바이러스가 나타나면서 바이러스 제작에 대한 정보가 공유되면서 파키스탄, 이스라엘, 불가리아(동유럽), 미국 등을 중심으로 바이러스의 수적 증가와 기술적 향상이 본격적으로 시작되었다. 한국에서도 LBC 바이러스가 제작되어 한 동안 많은 사용자들의 디스크 데이터를 파괴시키는 등 많은 피해가 발생되었다. 또한 10월에는 Ghostball 이라는 부트 바이러스와 파일 바이러스가 결합된 형태의 바이러스가 출현하였다.

▶ 1990~1995년, 은폐형 악성코드 전성시대

초창기 바이러스는 분석하기 쉬운 형태였지만, 점점 분석을 어렵게 만들기 위해 바이러스 코드를 암호화 시키는 바이러스(Cascade, Slow), 자신을 감추기 위한 은폐형 바이러스(Brain, Joshi, 512) 가 나타났다. 이후 1990년에 들어 다형성(Polymorphic) 바이러스(Whale)들이 나타나면서 Anti-Virus에서 시그너쳐만 가지고는 진단을 할 수 없게 하는 바이러스가 나타났다. 하지만 바이러스 코드를 시뮬레이션 하는 진단해 낼 수 있다. 이러한, 바이러스의 기술 발전은 바이러스 제작 그룹에서 바이러스 제작 도구를 배포하기도 하고 정보 공유를 통해 바이러스의 기술적 발전을 이룰 수 있게 되었다.

1990~1995년간에 주요 바이러스는 1992년 미켈란젤로 바이러스이다. 미켈란젤로 바이러스는 1991년 스웨덴에서 처음 발견 되었으며, 3월 6일 하드 디스크를 파괴하는 바이러스로 언론에 많이 알려지게 되면서 유명해진 바이러스였다.

▶ 1995~2000년, 악성코드 환경 변화 적응 시대

1995년, MS-DOS 환경(CUI)에서 윈도우 환경(GUI)으로 넘어가면서, 악성코드는 작동 환경변화를 준비하기 시작했다. 1996년 1월에 오스트레일리아 바이러스 제작 그룹인 VLAD(Virus Laboratory And Distribution)에서 첫 윈도우 바이러스인 Boza 라는 바이러스를 공개 했었지만 제대로 작동되지 않는 문제가 발생되었고, 윈도우 환경에서 제대로 작동 되는 악성코드를 만들기 위해 많은 노력을 했다. 이후 1998년도부터 제대로 된 윈도우 바이러스가 제작되어 퍼지게 된다. 이 외에 OS/2 환경에서 작동되는 악성코드인 AEP 라는 바이러스가 발생되었다. 또한 오피스 소프트웨어의 취약점을 이용한 첫 매크로 바이러스(Laroux)가 처음 발견되었다. 1998년, 백오리피스의 등장은 Backdoor 개념 만들어 냈다. 백오리피스는 원격 제어 프로그램으로 트로이목마형의 분류에 포함이 되지만 외부에서 접근 가능하게 포트를 열어 놓는 행위를 보고 이러한 악성코드를 Backdoor 라고 부르기 시작했고, 이 시기에 백오리피스와 유사한 프로그램들이 유행처럼 많이 만들어지고 전파되었다. 또한 악성코드를 효과적으로 전파하기 위해 E-mail을 통해 전파하는 악성코드(Happy, I love you)가 나타나기 시작했고,이 시기에는 다양한 환경에서 악성코드가 작동 될 수 있는지 환경 변화에도 악성코드가 살아남을 수 있는지에 대한 연구가 진행 되었다고 할 수 있다.

▶ 2001~2005년, Worm 의 전성시대

2001년, MS IIS 취약점을 통해 전파되는 CodeRed Worm가 처음 발생되었다. 특이한 점은 웜 전파가 파일 형태로 전파가 되지 않는 특징이 있다. 9월에는 다양한 기능이 포함된 Nimda 바이러스가 발생되었다. Nimda 바이러스는 E-mail, 네트워크 공유, MS IIS 취약점을 이용해 전파되었다. 또 CodeRed 와 비슷하지만 웜이 파일 형태로 존재하고 다른 취약점(Web Directory Traversal)을 이용해 전파되었다. 2003년, 1월 24일 Slammer Worm 이 발생되었다. Slammer Worm은 Microsoft SQL Server 의 SQL Overflow 취약점을 이용한 것으로 전 세계적으로 인터넷 혼란을 가져왔고, 한국도 전국적으로 인터넷이 마비되는 1.25 대란이 일어났었다. 이어 취약점들을 이용한 Blaster Worm, Welchia Worm, Sobig Worm, Sober Worm 등이 MS-윈도우 환경의 시스템들 사이에서 급격히 퍼져나갔다. 2004년, 1월 마지막 주에 MyDoom이 발생되어 E-mail로 급격히 퍼져 나가기 시작했다. 3월에는 Sasser worm이 LSASS 취약점을 이용해 전파되었으며, 12월에는 Santy 라는 첫 번 째 Web Worm 이 등장했다. Santy는 구글에서 phpBB를 이용하는 게시판들을 찾아 감염시키는 Worm 이었다. 2005년, 인터넷 ActiveX 환경에서 비디오 코덱 등을 설치해야만 어떤 내용을 볼 수 있다는 Trojan 악성코드인 Zlob 가 처음으로 발생되었고, 원격 제어를 위한 Backdoor 악성코드들이 제작이 늘어갔고, 프로세스 하이젝킹, 방화벽 무력화, 인터넷 접속 정보등을 수집하는 등의 다양한 기능들을 포함한 악성코드들이 제작되기 시작했다.

▶ 2006~2007년, 금전적 이익을 위한 목적 변화의 영향

2006년, OSX/Leap-A , OSX/Oompa-A 라는 Trojan 이 Mac OS X에서 처음 발견되었다. 이 악성코드는 시스템에 큰 위협은 주지 못하였지만, Mac OS X도 악성코드가 존재한다라는 의미를 담고 있는 악성코드라고 할 수 있었다. 2007년, 1월 Storm Worm이 발견되었고, Storm Worm은 빠르게 E-mail을 통해 전파되었고, 수 백만대가 감염되어 Storm Botnet을 구성하였다. 2008년, Sinowal, Mebroot라는 Rootkit 형태의 악성코드가 나타났다. 이 악성코드에 감염되면, 다른 컴퓨터에서 접근 가능하도록 만들며, Anti-Virus 소프트웨어를 무력화 시키고, 데이터 변경, 사용자 정보를 탈취, 다른 악성코드를 실행시키는 등의 무서운 시스템이다. 11월에는 Conficker Worm이 발생되어 전 세계의 수백만대 시스템을 감염 시켰고, 지금도 계속 활동 중에 있다. 2009년, 최근에는 소셜 네트워크가 인기를 끌면서 소셜 네트워크를 서비스하는 Facebook, Myspace를 대상으로한 Koobface라는 웜이 전파되어지고 있다. 각 년도별 특징 외에도 2006년 이후 자동화 악성코드 제작 도구들과 팩커들이 급격히 발달되고 제작되어 지면서 악성코드의 수가 급속히 증가하기 시작했다. 이유는 악성코드를 통해 정보를 탈취하고 금전적 이익을 얻을 수 있기 때문이었다. 또한 이러한 악성코드나 BotNet을 거래하는 암흑 거래 시장 사이트들이 생겨났기 때문이기도 하다.

▶ 2010 ~ 년, 발빠른 환경 변화와 정밀화 되어진 악성코드의 시대
(SNS 을 이용한 악성코드, APT 발생, 모바일 환경에서 악성코드의 활동 증가)

2010년들어 Facebook 나 Twitter등과 같은 SNS을 활용한 악성코드 확산법이 유행중이며, 또한 APT(Advanced Persistent Threats) 형태로 특정한 타겟(국가, 기업, 개인)을 대상으로 한 공격들이 지속적으로 발생되고 있다. 더불어, 스마트폰 보급이 확산되면서 스마트폰등에서 활동하는 악성코드 또한 빠르게 증가 중에 있다.

Reply


아래의 그림에 표시된 글자를 입력하세요.(대소문자 구분)
CAPTCHA code