보안 이슈

AhnLab 보안 전문가의 심층분석! 보안 이슈 정보를 전해드립니다.

20년 전 사이버 위협, 그땐 그랬지

  • Facebook에 공유하실 수
    있습니다.

  • Twitter에 공유하실 수
    있습니다.

  • Linked in

    Linked in에 공유하실 수
    있습니다.

  • 붙여넣기

    블로그나 게시판에 붙여넣기 하실
    수 있습니다.

  • AhnLab
  • 2021-12-29

안랩의 시큐리티레터가 어느덧 900호를 맞이했다. 

 

시큐리티레터 1호가 발행된 건 2001년 8월 17일이다. 당시, 시큐리티레터는 해킹이나 바이러스로 인한 피해가 증가하는 반면, 일반인들이 보안에 대한 정보를 접할 수 있는 기회가 별로 없다는 문제점을 해결하기 위해 만들어졌다. 그로부터 20년의 세월이 흘렀다. 시큐리티레터 초창기 때 바이러스와 지금의 사이버 위협은 어떻게 변했을까? 

 

지난 20년 간 바이러스의 변천사에 대해 알아본다.

 

  

 

본격적으로 바이러스에 대해 살펴보기에 앞서, 도입부에서 언급한 시큐리티레터 1호의 모습을 살펴보자. 

 


[그림 1] 시큐리티레터 1호

 

당시 개인 사용자들의 사이버 보안 인식 제고를 위한 다양한 콘텐츠들이 수록되어 있다. 한 가지 흥미로운 것은 20년이 지난 현재, 사이버 위협은 급속도로 고도화됐지만 기본 보안 수칙은 당시와 크게 다르지 않다. 예나 지금이나 기본에 충실한 것이 최선의 보안 방안이라는 사실은 변하지 않았다.

 

바이러스의 시초

최초의 컴퓨터 바이러스는 1980년대 중반 MS-DOS 시절 등장한 것으로 알려져 있다. 브레인(Brain)이라 불렸던 이 바이러스는 도스 파일 할당 테이블(FAT) 파일시스템으로 포맷된 저장 매체의 시동 섹터를 감염시켰고, 파키스탄의 프로그램 개발자였던 알비 형제가 불법복제를 방지하기 위해 만든 것으로 알려졌다. 

 

논란이 있긴 하지만 1971년에 등장한 크리퍼(Creeper) 바이러스가 최초의 컴퓨터 바이러스라는 설도 있다. 이때 바이러스를 삭제하기 위해 리퍼(Reaper)라는 프로그램이 제작되었는데 이 프로그램이 최초의 컴퓨터 바이러스용 백신으로 불리기도 한다.

 

우리나라에서 최초로 개발된 백신은 잘 알려진대로 안랩의 V3다. 1988년 안철수 박사가 자신의 컴퓨터에 감염된 브레인 바이러스를 치료하기 위해 V1, V2를 거쳐 V3를 제작했고, 안티 바이러스 소프트웨어를 백신 소프트웨어라고 부르게 된 계기를 마련했다.

 

  

[그림 2] 현재의 V3 Lite 대시보드

 

2000년대에 유행했던 바이러스들

컴퓨터 바이러스는 1980년대 크리퍼와 브레인 바이러스를 거쳐, 90년대 맹위를 떨쳤던 미켈란젤로 바이러스와 CIH 바이러스를 기점으로 일반인들에게도 인식되기 시작했다. 이들 바이러스로 인해 백신에 대한 관심도가 높아졌고, 컴퓨터와 인터넷이 폭발적으로 보급되면서 일반인들도 백신의 필요성을 느끼게 된 시기였다. 

 

1999년에는 매크로 바이러스가 출현했다. 대표적인 바이러스로는 멜리사(Melisa) 바이러스가 있으며, 엑셀이나 워드에서 특정 기능을 자동화시키는 매크로가 바이러스 제작에 이용될 수 있다는 인식을 심어줬다.

 

1990년대에서 2000년대로 넘어오는 시점에는 ‘밀리니엄 오류’라 불렸던 사건이 있었다. 2000년이 되면 모든 컴퓨터가 정지되고 오류를 일으킨다는 것이었다. 언론에서 대대적으로 보도를 하기도 했으나 결국 해프닝에 그쳤다. 밀레니엄 오류는 바이러스는 아니었지만 컴퓨터 관리의 중요성을 깨닫도록 하는 계기가 됐다.

 

2001년에는 웜(Worm)에 의한 대규모 피해가 발생했다. 웜은 인터넷 또는 네트워크를 통해, 컴퓨터에서 컴퓨터로 전파되는 프로그램이다. 1999년 다른 사람의 이메일 주소를 수집하고 스스로 전달되는 형태의 인터넷 웜이 출현하면서 일반인에게 '웜'이라는 용어가 알려지기 시작했다. 코드 레드(Code Red) 웜은 8시간만에 25만대 이상의 컴퓨터를 감염시켰는데, 윈도우2000과 윈도우NT 서버를 경유지로 이용해 미국 백악관 컴퓨터를 공격하기도 했다. 국내에서도 3만 대 이상의 컴퓨터가 손해를 입은 것으로 추정된다. 

 

2000년대로 들어와서 중반 이후까지 애드웨어(Adware)로 대표되는 악성코드가 엄청나게 퍼졌다. 해당 악성코드를 제거한다는 명목으로 설치한 가짜 악성코드 프로그램들로 인하여 많은 사람들이 피해를 입기도 했다. 

 

2003년엔 인터넷 대란이 일어났다. 그 원인은 SQL_Overflow(일명 슬래머) 웜 때문이었다. 2003년 1월 25일 5시 29분에 슬래머가 퍼지기 시작해 30분만에 전세계의 7만4천대의 컴퓨터가 감염됐다. 마이크로소프트 SQL서버의 허점을 이용한 슬래머 웜은 감염된 PC들이 대량의 데이터를 생성해 KT 혜화전화국에 있는 DNS 서버에 트래픽을 집중시키는 디도스(DDoS) 공격을 감행하여 11시간동안 모든 유무선 네트워크를 마비시켰다. 이 사건은 한국뿐 아니라 전세계에서 동시에 발생됐다.

 

컴퓨터 바이러스의 변천사

바이러스는 악성코드 중 가장 기본적인 형태이다. 사용자 컴퓨터(네트워크로 공유된 컴퓨터 포함) 내에서 사용자 몰래 프로그램이나 실행 가능한 부분을 변형해 자신 또는 자신의 변형을 복사하는 프로그램을 일컫는 말이다. 최초의 악성코드가 만들진 1980년대 이후부터 2000년대 초반까지 악성 코드의 주류를 차지하게 되었다. 바이러스의 단계별 변천사는 아래와 같다. 


1단계: 데이터 파괴 트로이목마(1985년)

바이러스나 웜이 유행하기 전에도 시스템에 존재하는 파일을 삭제하거나 데이터를 손상시키는 트로이목마가 존재했다. 주로 BBS(Bulletin Board System)을 통해 유용한 공개 소프트웨어로 가장하여 일반 사용자의 컴퓨터를 공격했다.

 

2단계: 부트 바이러스(1986년)

바이러스가 본격적으로 문제가 되기 시작한 1988년부터 1990년대 초까지 유행한 바이러스는 대부분 제작이 상대적으로 쉬운 부트 바이러스였다. 당시에는 플로피 디스크를 통해 데이터 교환이 이뤄졌고 부트 바이러스는 불법 복제를 통해서도 짧은 시간에 널리 퍼졌다. 브레인 바이러스(Brainvirus), 탁구 바이러스(Pingpong virus), 돌 바이러스(Stoned virus), LBC 바이러스(LBC virus), 미켈란젤로 바이러스(Michelangelo virus), 원숭이 바이러스(Monkey virus) 등이 있다.

 

3단계: 비상주형 파일 바이러스(1987년)

바이러스에 감염된 파일을 실행하면 감염되지 않은 COM 파일이나 EXE 파일을 찾아 감염시키는 비상주형 파일 바이러스가 등장했다. 비상주형 바이러스는 전파 속도가 상대적으로 느리다. 비엔나 바이러스(Vienna virus), 데이터크라임 바이러스(Datacrime virus) 등이 있다.

 

4단계: 메모리 상주형 파일 바이러스 (1987년)

메모리에 상주해 실행되거나 사용되는 실행 파일을 감염시키는 상주형 바이러스도 등장했다. 감염된 파일을 실행할 때 다른 파일을 감염 시키는 비상주형 바이러스에 비해 상주형 바이러스는 보다 빠른 시간 안에 시스템에 존재하는 다른 파일을 감염시킬 수 있다. 예루살렘 바이러스(Jerusalem virus), 르하이 바이러스(Lehigh virus), 어둠의 복수자 바이러스(Dark_Avenger virus) 등이 있다.

 

5단계: 암호화 바이러스(1987년)

암호화 바이러스는 백신 프로그램의 바이러스 진단 및 치료를 어렵게 하기 위해 프로그램의 일부 또는 대부분을 암호화시켜 저장한다. 1987년 독일에서 발견된 폭포 바이러스(Cascade virus)가 최초의 암호화 바이러스이다. 폭포 바이러스(Cascade virus), 제로타임 바이러스(Zerotime virus), 시스터보 바이러스(SysTurbo virus) 등이 있다.

 

6단계: 은폐형 바이러스(1990년)

사용자가 감염 사실을 눈치채기 어렵게 하기 위해 은폐기법(Stealth Technique)이 사용된다. 길어진 파일 길이를 정상으로 보이게 하거나, 감염된 파일을 읽을 때 정상 내용을 보여줘 감염 사실을 알기 어렵게 한다. 예시로는 프로도 바이러스(Frodo virus), 테킬라 바이러스(Tequila virus) 등이 있다. 은폐형 바이러스는 검사를 통해 은폐기능을 무력화시키면 쉽게 진단할 수 있다.

 

7단계: 다형성 바이러스(1992년)

바이러스 제작자들은 다형성 기법(Polymorphic Technique)을 개발한다. 암호화 바이러스는 고정적인 암호화 루틴을 가지고 있어 암호해제 코드의 일부로 쉽게 진단할 수 있었다. 최초의 다형성 바이러스는 1990년, 마크 워시번(Mark Washburn)이 제작한 V2PX 바이러스(V2PX virus)이며, 본격적으로 활동한 다형성 바이러스는 1992년 봄 자신을 어둠의 복수자(Dark Avenger)로 부르는 불가리아인이 제작한 MtE(Mutation Engine)이다.

 

어둠의 복수자는 자신이 제작한 다형성 엔진을 공개해 다른 바이러스 제작자가 간단한 바이러스도 다형성 기법을 활용할 수 있도록 하여 진단을 어렵게 했다. 이에 백신 업체는 에뮬레이터를 개발해 코드를 가상으로 실행해 다형성 바이러스를 진단한다. 예시로는 V2PX 바이러스(V2PX virus), 나타스 바이러스(Natas virus), 마버그 바이러스(Win95/Marburg virus), HPS 바이러스(Win95/HPS virus) 등이 있다.


8단계: 갑옷형 바이러스(1994년)

분석을 어렵게 하기 위해 자신을 보호하는 갑옷형 바이러스(Armored virus)가 등장했다. 분석을 어렵게 하기 위해 메모리에서도 자신을 암호화하거나 안티 디버깅 코드를 바이러스에 넣어 분석을 어렵게 한다. 예시로는 고래 바이러스(Whale virus) 등이 있다.

 

9단계: 메타모픽 바이러스(1995년)

대부분의 다형성 바이러스가 백신의 에뮬레이터로 진단이 가능해지자, 바이러스 제작자는 암호화 루틴만 랜덤한 형태가 아닌 바이러스 코드 자체를 만들어내는 메타모픽 바이러스를 제작한다. 대표적으로, ACG 바이러스(Amazing Code Generator), Win95/Zmist 바이러스 등이 있다.


10단계: 매크로 바이러스(1996년)

매크로 바이러스는 애플리케이션에 존재하는 매크로를 이용해 자신을 전파하는 바이러스이다. 1994년 MS 오피스의 매크로를 이용해 바이러스를 제작할 수 있음이 XM/DMV 바이러스와 WM/DMV 바이러스로 증명되었고, 1995년 여름 WM/Concept 바이러스가 등장해 전세계로 퍼졌다.

 

매크로 바이러스는 실행 파일이 아닌 문서 파일에서 감염이 진행되고, 실행 파일보다 빈번하게 교환이 이뤄지는 문서의 특성상 빨리 퍼지는 특성이 있다. 그리고, 개인 사용자보다 문서를 많이 사용하는 기업에서 더 문제가 되었다. 매크로 바이러스는 1996년부터 2000년까지 많은 피해를 입혔으며 초기의 간단한 형태에서 암호화, 은폐형, 다형성까지 종류도 다양해졌다. 개념 바이러스(WM/Concept virus), 캡 바이러스(WM/Cap virus), 클래스 바이러스(W97M/Class, virus), 트리스테이트 바이러스(O97M/Tristate virus) 등이 있다.

 

11단계: 백도어(1998년)

윈도우와 초고속 인터넷 사용자가 증가하면서 개인 컴퓨터의 인터넷 사용자도 늘어나기 시작했다. 이에 악성코드에도 불법적인 접근 기능을 제공하는 백도어 기능이 포함되고 백도어 역할을 하는 트로이목마가 유행했다. 본격적으로 개인정보 노출이 문제가 된 시점이기도 하다. 백오리피스 (Win-Trojan/Back_Orifice), 넷버스 (Win-Trojan/Netbus) 등이 있다.

 

12단계: 메일 전파, 취약점 이용(1999년)

인터넷의 발전은 악성코드의 새로운 감염 기회를 주었다. 1999년 1월 메일로 전파되는 해피99(I-Worm/Happy99)가 퍼졌으며 3월에는 아웃룩을 통해 메일로 전파되는 멜리사 바이러스(W97M/Melissa virus)가 짧은 시간에 전세계로 퍼져 나갔다. 미국 FBI까지 동원되어 바이러스 제작자를 검거했다. 메일의 첨부파일을 통해 전파되는 웜의 등장은 악성코드가 더 이상 국지적으로 활동하지 않고 전 세계로 짧은 시간에 퍼질 수 있음을 시사했다. 예시로는 소버 웜(Win32/Sober.worm), 마이둠 웜(Win32/Mydoom.worm), 넷스카이 웜(Win32/Netsky.worm) 등이 있다. 

 

또한 취약점을 이용해 사용자 모르게 감염되는 악성코드가 등장한다. 원래 취약점을 이용한 공격은 대형 컴퓨터에 불법 접속하기 위해 이용되었다. 초기에 취약점을 이용한 악성코드는 취약점이 존재하는 메일 클라이언트로 메일을 읽을 때 웜이 자동으로 실행되도록 제작되었다. 이후 발표되는 다양한 보안 취약점을 이용한 악성코드가 등장하게 되고 사용자들도 패치를 통해 보안 취약점을 해결해야 했다. 대표적으로, 버블보이 웜(VBS/Bubbleboy), 칵 웜(JS/Kak) 등이 있다.


13단계: 스크립트 악성코드(2000년)

윈도우에 포함된 VB 스크립트(VB Script)는 베이직과 유사한 형태의 쉬운 문법과 시스템에 접근할 수 있는 강력한 기능을 제공한다. VB 스크립트나 자바 스크립트(Java Script)를 이용한 악성코드 제작이 시작되었다. 2000년 5월 5일 러브레터 바이러스(VBS/Love_Letter virus)가 전 세계를 강타하고 아웃룩을 통해 전파되는 VB 스크립트 웜이 유행했다. 이에 마이크로소프트사는 아웃룩을 통해 실행 파일을 보내지 못하도록 하는 기능을 추가하면서 VB 스크립트 웜은 자취를 감춘다. 주요 바이러스로는 러브레터 바이러스(VBS/Love_Letter virus), 프리링크 웜(VBS/Freelink worm), VBSWG 웜(VBS/VBSWG) 등이 있다.

 

14단계: 해킹과 악성코드의 만남(2001년)

시스템에 존재하는 프로그램의 취약점을 이용해 파일 형태로 존재하지 않고 시스템의 기억장소와 네트워크 패킷으로만 존재하는 웜이 등장한다. 파일로 존재하지 않으므로 파일 검사 기반의 백신에서는 예방과 진단을 할 수 없게 되었다. 네트워크로 전파되는 악성코드에 대한 백신의 한계가 나타났고, 이에 보안 기업들은 백신 뿐 아니라 방화벽(Firewall) 등에도 눈을 돌리게 된다. 

 

해당 공격은 주로 버퍼 오버플로우(Buffer Overflow)를 이용해 웜을 실행하며 과거 해킹에서 사용되었던 기법을 웜에서 이용하고 웜이 자동화된 해킹 툴로 발전하며 해킹과 악성코드의 경계가 모호해지게 된다. 대표적인 공격으로는 코드 레드 웜(Codered worm), 님다 바이러스(Win32/Nimda virus), SQL 오버플로우 웜(SQL_Overflow worm, 일명 슬래머 웜), 위티 웜(Win32/Witty.worm) 등이 있다.

 

15단계: 실행 압축 이용(2002년)

대부분의 웜과 트로이목마는 파일 크기를 줄이고 분석을 지연시키기 위해 실행 압축을 이용한다. 동일한 악성코드도 다른 실행 압축으로 압축할 경우 압축을 풀지 못하는 백신은 진단하지 못하므로 동일한 악성코드를 실행 압축 프로그램만 바꿔 새로운 변형을 만드는 경우도 잦아졌다. 이에 보안 벤더들은 실행 압축 해제 기능을 백신에 추가하게 된다.

 

16단계: 루트킷(2003년)

악성코드를 사용자나 백신을 포함한 다른 프로그램에서 숨길 수 있는 루트킷(Rootkit)이 증가했다. 루트킷 기능을 악성코드에 포함하거나 루트킷 기능을 갖춘 별도의 파일을 실행하는 악성코드가 있다. 대표적으로, 핵데프 트로이목마(Win-Trojan/HackDef), 휴피곤 트로이목마(Win-Trojan/Hupigon) 등이 있다.

 

17단계: 네트워크를 통한 전파(2003년)

관리목적 폴더, P2P(Peer-to-Peer) 프로그램, 메신저로 전파되는 웜 등장 이후 취약점을 이용해 시스템이 인터넷에 접속하는 것만으로도 감염되는 웜이 등장한다. 네트워크를 통해 전파되는 웜은 패치를 하지 않으면 근본적으로 예방하기 어려우며 치료되지 못한 몇 대의 시스템으로 회사나 학교의 시스템이 재감염되는 경우가 잦다. 예시로는 블래스터 웜(Win32/Blaster.worm), 새서 웜(Win32/Sasser.worm) 등이 있다.

 

18단계: 악성 IRC봇(2004년)

IRC(Internet Relay Chat)을 이용해 악의적인 명령을 내리는 악성 IRC봇이 급증하기 시작했다. 전 세계적으로 한 달에 2천 개에서 3천 개의 새로운 변형이 등장했으며, 악성 IRC봇 기능은 많은 악성코드에 포함됐다. 예시로는 Mirc팻(Dropper/MircPack), Sd봇 웜(Win-Trojan/SdBot), 아고봇 웜(Win32/AgoBot.worm) 등이 있다.

 

19단계: 스파이웨어 유행(2004년)

2004년부터 악성 광고를 보여주는 애드웨어(Adware)가 유행하기 시작했다. 보통 스파이웨어(Spyware)로 알려진 애드웨어는 악성코드와 정상 프로그램의 경계에 있는 프로그램이다. 특히, 애드웨어로 불편함을 호소하는 사용자가 증가하면서 다양한 안티 스파이웨어 제품이 등장하고 존재하지 않는 스파이웨어나 위험도가 낮은 찌꺼기를 진단해 과금을 요구하는 가짜 안티 스파이웨어 제품도 등장했다. 

 

20단계: 금전적 이득(2005년)

2005년부터 해커들의 악성코드 제작 동기가 실력 과시에서 금전적 이득으로 바뀐다. 악성코드 제작자는 악성코드를 이용해 스팸 업체나 광고 업체에 돈을 받고 스팸 메일을 발송하고 애드웨어를 설치한다. 온라인 게임의 계정과 비밀번호를 훔쳐 게임 아이템을 팔아 돈을 버는 사람들도 등장한다. 십 수년이 흐른 현재도 많은 해커들이 금전적 이득을 목적으로 활동하고 있다.

 

진화하는 사이버 위협

컴퓨터 바이러스는 20여년의 변화를 거쳐 웜과 트로이 목마 등의 악성코드로 진화했고, 계속해서 발전을 거듭하며 세상을 위협하는 무서운 존재로 부상했다. 피해 범위 역시 단일 컴퓨터에만 피해를 입히는 바이러스에서 네트워크, 인터넷을 타고 급속도로 넓어졌다. 시스템을 망가뜨리고 정보를 빼내는 것은 물론 기업과 도시, 국가, 지구촌 전체의 네트워크를 마비시킴으로써 우리 생활 자체를 위협하고 있다. 

 

생물학적 바이러스의 진화처럼 악성코드도 계속 발전하고 있다. 현재도 세계 각지에서 매일 수많은 신/변종 위협이 발견되고 있으며, 이 순간에도 해커들은 다양한 형태의 사이버 공격을 수행하고 있다. 컴퓨터와 인터넷이 없는 삶을 상상할 수 없는 세상 속에서 우리 스스로를 지키기 위해서는 거듭 보안의 기본에 충실해야 한다. 이는 시큐리티레터 1호가 발행된 2001년부터, 900호를 맞은 현재까지 변함 없이 중요한 사실이다. 

 

  • AhnLab 로고
  • 콘텐츠기획팀
  • Facebook에 공유하실 수
    있습니다.

  • Twitter에 공유하실 수
    있습니다.

  • Linked in

    Linked in에 공유하실 수
    있습니다.

  • 붙여넣기

    블로그나 게시판에 붙여넣기 하실
    수 있습니다.