컴퓨터바이러스 오세종 1
목차 개요 바이러스감염방법 바이러스의상주장소 바이러스의흔적 바이러스의예방 바이러스사례 백신프로그램 2
개요 컴퓨터프로그램은데이터를다룬다. 정상적은컴퓨터프로그램들은대개보안위협을일으키지않지만, 컴퓨터가다루는데이터나프로그램의동작과정이사용자에게보이지않기때문에악의적인공격자들은자신들의의도에맞는프로그램을제작함으로써보안데이터나보안프로그램에불법적으로접근할수있다. 컴퓨터바이러스는악의적의도를가진프로그램의대표적사례 악의적코드 (Malicious code) : 악의적프로그램전체, 혹은정상적인프로그램에끼워진일부의악의적인모듈등 워드프로세서와같은소프트웨어를인스톨하면 (by setup or install ) 수십 ~ 수백 Mbyte 의프로그램이새로설치됨. 안전을기대할수있는가? 3
개요 악의적인코드는왜위험한가 프로그램의원작자나사용자가기대하지않는방식으로작동함 악의적인코드는다른정상적인프로그램이할수있는모든일을할수있다. ( 파일읽기, 삭제, 통신, ) 악의적인코드는자신의존재를숨기도록설계되어있으며특정조건이만족되면작동한다. 특정일자, 기간마다 ( 예 : 크리스마스바이러스 ) 특정한컴퓨터동작이있을때 ( 예 : 모뎀연결 ) 악의적인코드가어떤일을할지는예측하기힘들다. 악의적인코드는사용자의권한을가지고움직이기때문에사용자가할수있는모든일을할수있다. 4
개요 용어 악의적코드 (malicious code) : 원하지않는일을수행하여해를입히는프로그램, 혹은프로그램의일부에대한일반적인명칭 바이러스 (virus) : 정상적인프로그램을변형시켜서악의적코드를주입시키는프로그램. 악의적코드의전달자. 실제바이러스와같이전염성을갖는다. ( 시스템내, 네트워크 ) 일시적 (transient) 바이러스 : 한번실행후사라짐 상주형 (resident) 바이러스 : 강제로제거하지않는한계속적으로동작함 ( 메모리에저장 ) 1983. 11. 프레드릭코헨박사 'Security Seminar' 에서발표한 "Computer Virus : Theory and Experiment" 라는논문에서처음사용 트로이목마 (Trojan horse) : 정상적인프로그램처럼위장하지만내부에악의적인코드를가지고있는경우 예 ) Unix 로그인프로그램 / Utility 프로그램들 5
개요 용어 ( 계속 ) 논리폭탄 (Logic bomb) : 일정조건이되면시스템에손해를입히도록설계되어있는악의적코드 트랩도어 (trapdoor), 백도어 (backdoor) : 시스템에정상적인경로가아닌숨겨진경로를통해침입하여시스템을조정할수있도록해주는프로그램의특성 예 ) 온라인뱅킹시스템 : 계좌와비밀번호가있어야로그인이가능. 그런데 990099 를입력하면로그인이되도록조작. 웜 (warm) : 네트워크상에서자신을계속복제하여퍼뜨리는프로그램. 자신을독립된형태의프로그램으로복제한다. 래빗 (rabit) : 많은수의복제를통해시스템자원을고갈시키는바이러스나웜 6
바이러스감염방법 종이에인쇄된바이러스코드는아무기능도하지않는다. 심지어컴퓨터디스크상에존재하는카피된바이러스의실행코드도아무기능을하지않는다. 바이러스가기능을발휘하기위해서는누군가가실행시켜줌으로서활성화 (activated) 되어야한다. 바이러스제작자는최초에바이러스코드를정상적프로그램에삽입시켜배포 그다음부터는감염된프로그램이실행될때마다바이러스코드스스로자신을복제하거나또다른프로그램들을감염시킴 7
바이러스감염방법 첨가된바이러스 (Appended Virus) 바이러스감염의가장손쉬운방법 바이러스코드부분을복사하여정상프로그램의첫머리에놓음. 정상프로그램이실행되기전에먼저바이러스코드가실행된다. 바이러스제작자는감염시킬프로그램의특성에대해알필요가없다. 많은바이러스가이와같은형식을취한다. Original Program + Virus code = Virus code Original Program 8
바이러스감염방법 프로그램앞, 뒤에첨가된바이러스 정상프로그램이실행되기전에바이러스코드가먼저작동을하고, 정상프로그램이실행된후, 바이러스코드의나머지부분이다시작동함 바이러스가자신의존재를감추고자할때이용 예 ) 바이러스가독립된파일형태로존재. 파일목록리스팅프로그램감염필요 Logically Physically Virus code(a) Virus code Original Program Original Program 9 Virus code(b)
바이러스감염방법 프로그램과혼합된바이러스 바이러스가원본프로그램의내용을변형시키고자신을변형된프로그램에혼합시켜새로운프로그램을만듦 바이러스제작자가원본프로그램의구조를알고있어야가능 바이러스탐지도어렵고복구도불가능 Original Program + Virus code = Modified Program 10
바이러스감염방법 바이러스는어떻게제어권을얻나 원본프로그램과자리교환 File Directory Disk Storage File Directory Disk Storage T T V T V T 11
바이러스감염방법 바이러스는어떻게제어권을얻나 포인터의조작 File Directory Disk Storage File Directory Disk Storage T T V T T V 12
바이러스의상주장소 바이러스를숨기기좋은장소 위치를탐지하기어려운곳 바이러스를제거하거나중단 (deactivate) 시키기어려운곳 바이러스를널리감염시키기에용이한곳 바이러스를생성하기쉬운곳 시스템 /OS 에독립적인장소 13
바이러스의상주장소 부트섹터바이러스 (boot sector virus) 부팅과정 Power on ROM BIOS 실행 (Firmware) 하드웨어자원체크 Bootstrap loader 를 call Bootstrap loader 가 OS 를메인메모리로로드 Ex) MS-DOS : IO.sys, MSDOS.sys 제어권이 OS 로넘어감 Bootstrap loader 는하드디스크의특정한위치에있어야한다. ( 부트섹터, 보통 HD 의 0 번섹터 ) 14
바이러스의상주장소 부트섹터바이러스 (boot sector virus) 부트섹터의크기 : 512 byte 이보다큰공간을요구하는 Bootstrap loader 를위해 chaining 이용 Boot sector Bootstrap loader System initialization 이를이용해바이러스를쉽게컴퓨터에감염시킬수있다 Boot sector Virus Code System initialization Bootstrap loader 15
바이러스의상주장소 부트섹터바이러스 (boot sector virus) 부트섹터를선호하는이유 부트섹터는시스템에서매우중요하기때문에 OS 는부트섹터의존재를일반사용자들에게감춘다. 바이러스에감염되어도알길이없고, 일반적인파일제거방법으로는제거할수도없다. 시스템의제어권을 OS 보다먼저받기때문에바이러스진단, 치료프로그램을무력화시킬수있다. 바이러스는다음과같은일을할수있다. 시스템화일 (io..sys, msdos.sys) 에첨가 config.sys, autoexec.bat 에기술된실행화일에첨가 config.sys, autoexec.bat 에자신을로드하도록선언 16
바이러스의상주장소 메모리상주바이러스 (memory resident virus) 대부분의프로그램은필요시메인메모리에로드되어실행된후메모리에서제거된다. OS 의핵심부분과일부프로그램은계속메모리에남아있는다 메모리상주프로그램 바이러스는자신을메모리상주프로그램중의하나에첨가될수있다. 장기간메모리에머무르면서보다많은화일들을감염시킬수있다 디스켓등이동가능한저장장치를넣을때마다부트섹터를감염시킬수있다. 17
바이러스의상주장소 기타 널리쓰이는응용프로그램중에는사용자의편리성을위해매크로 (macro) 기능을제공하는것들이있다. Excel, powerpoint, Ms word, 이러한매크로는프로그래밍기능이있기때문에바이러스가기생하기좋은장소가된다. 바이러스는매크로기능이실행될때마다활성화되어서다른프로그램을감염시킨다. 또한바이러스에감염된매크로를포함하는파일이다른사람에게전달되면그사람의컴퓨터도감염시킨다. 프로그램라이브러리도바이러스에게좋은장소 컴파일러, 링커, 디버거, 백신프로그램, 18
바이러스의흔적 어떤바이러스도자신의존재를완전히숨길수는없다. 바이러스코드도어딘가에반드시저장되어야만하고, 실행시메모리에로드되어야한다. 또한바이러스는특정한방법을따라실행되고, 자신을퍼뜨리는방법에있어서도어떤패턴을따른다. 이와같은특징들은바이러스진단프로그램에게매우중요. 바이러스진단프로그램은보조기억장치, 메인메모리등을검사하면서바이러스의흔적을찾아내어이를제거하거나사용자에게경고메시지를보낸다. 19
바이러스의흔적 바이러스의저장패턴 대부분의바이러스는디스크에저장된정상프로그램에삽입되어존재한다. 삽입된동일바이러스의코드는일정하다. 또한삽입된부분은프로그램의일정한부분에위치한다. ( 예 : 프로그램시작부분의 400byte ) 바이러스제작자는제어권을용이하게획득하기위해일반적으로프로그램이맨앞부분에바이러스를위치시킨다. 혹은바이러스모듈을호출하는코드만을포함하고실제바이러스는독립화일형태로존재할수도있다. 바이러스에감염된파일은일반적으로파일사이즈가증가. 20
바이러스의흔적 바이러스의저장패턴 프로그램의일부를지우고거기에대체삽입된바이러스는파일사이즈를증가시키지않지만, 프로그램의오작동을초래 바이러스진단프로그램은이상의바이러스흔적들을추적 Attached Virus code Original Program 바이러스의흔적 IF (~) JUMP Original Program Separated Virus module 21
바이러스의흔적 바이러스의실행패턴 바이러스제작자가원하는것 감염의확산 바이러스의존재가탐지되지않음 시스템에해를입힘 바이러스의실행내용을보면정상프로그램과같기때문에어떤이상신호를감지하기어렵다 예 ) 디렉토리변경, 파일생성, 파일삭제 어떤바이러스는감염사실을알려주기도하나대부분은그렇지않다. 22
바이러스의흔적 바이러스의전파 바이러스는한시스템에서다른시스템으로어떻게옮겨가는가 부트섹터가감염된디스켓을통한이동 네트워크를통한전파 파일전송, 다운로드 ( 공개 S/W) 이메일 이러한전파과정역시정상적인활동을통해서일어나기때문에탐지하기가어렵다. 23
바이러스의예방 잘알려진회사들의정품 S/W 만을이용한다. 불법복제 S/W, 출처가분명치않은공개 S/W 는경계대상 ( 큰회사의경우 ) 새로운 S/W 를사내에배포해야할필요가있을경우에는네트워크에연결되지않은고립된컴퓨터에서먼저테스트를한후이상이없을때배포한다. 부팅디스켓을만들어두고이를안전한곳에보관한다. 중요시스템파일들은백업을받아둔다. 중요한자료의경우도정기적인백업을받는것이좋다. OS, 메일프로그램등의보안패치를다운받아설치한다. 바이러스백신프로그램을설치하고정기적으로검사한다. 백신프로그램은최신의것으로유지한다. 24
바이러스사례 CIH 바이러스 1998 년여름동아시아에서처음발견 제작자 : 대만의 Chen Ing-Hou (1998 년 4 월 26 일 ) 기존바이러스와의차이 기존의바이러스 : 컴퓨터내에저장된프로그램과데이터를삭제 CIH : 프로그램과데이터를삭제함은물론, 컴퓨터부품자체를손상시키는, 이른바하드웨어적피해를입힘 시스템 BIOS 가들어있는플래쉬 ROM 의내용을파괴하여부품을교체해야만바이러스피해를복구가능 매달 26 일활동함 ( 체르노빌바이러스 ) 현재까지 1.4 버전까지보고 ( 원형 6 종, 변형 3 종 ) 25
바이러스사례 CIH 바이러스 감염경로 CIH 에감염된실행화일을실행했을때 CIH 는또다시감염시킬실행파일을정한후그실행파일안에서자신을숨길빈공간들을탐색 자신을여러부분으로나눈뒤미리탐색한빈공간들에자신을숨김 실행화일의크기변화없음 활동날짜까지기다렸다가 하드디스크의첫 1 메가바이트 ( 부트섹터영역 ) 를무작위문자열로대체 플래쉬 ROM 의내용을삭제또는수정을하여시스템전체를마비시킴 26
바이러스사례 Win32/Nimda 국내발견일 : 2001.09.18 ( 제작자불분명 ) 전파방법 : E-MAIL, 읽기 / 쓰기공유가되어있는네트워크, IIS 웹서버의취약점이용 감염경로 아웃룩주소록을검색하여사용자에게 readme.exe 파일을첨부하여메일을발송. 각폴더마다 *.eml 혹은 *.nws 파일을생성 사용자컴퓨터의모든드라이브를공유시킴 IIS 취약점을이용하여보안패치되지않은 IIS 웹서버가감염 *.EXE 파일을감염 27
백신프로그램 주요백신프로그램 노턴안티바이러스 제작사 : 시만텍 ( 노턴유틸리티 ) 플랫폼 : 윈도우계열 플로피디스크및하드디스크, 시스템파일, 메모리, 모든디렉토리의주요파일, 인터넷과통신에서검출되는바이러스를모두치료 ' 블러드하운드 (BloodHound)' 기술을통해알려지지않은바이러스도감지하고, 최근급증하고있는매크로바이러스에감염된파일도자가진단해복구하는특징 프로그램사용의편이성. 온라인업데이트 28
백신프로그램 주요백신프로그램 PC 시린 제작사 : 트렌드 룰 - 베이스 (Rule-Based) 기법을사용해바이러스의행동을감시하고, 만약그행동이보이면즉각적으로블록킹해감염된파일의복사및다운로드를일차적으로방어 ' 바이스 (VICE) 기법 ' 이라불리우는이기술은새로운바이러스를검색해명령코드를제거하는기능 매크로트랩을이용해시스템을감염시킬소지가있는매크로바이러스도신속하게검색 자바애플릿이나액티브 X 상에서번식하는신종 2 세대바이러스도치료가가능 29
백신프로그램 주요백신프로그램 V3Pro 제작사 : 안철수연구소 높은바이러스검진율과치료율 지능적인바이러스감시시스템을채용해작업중간에바이러스를발견하면그활동을차단 / 치료 스마트업데이트 ( 사용자의조작없이도항상최신엔진으로유지시켜신종바이러스방역에대응 ) POP3 를통해오고가는메일에대한방역기능을제공 인터넷 (HTTP) 으로부터파일다운로드시바이러스실시간검사를수행 다양한압축파일검사기능 30
향후전망 컴퓨팅환경의다양화, 복잡화에따라바이러스도지능화하고피해범위도확산 이동통신기기를목표로하는바이러스출현 MS.net 환경에서작동하는바이러스도보고됨 ( 안철수연구소 ) 해킹기술과결합하여사용되기도함 미국에서는바이러스의염려가없는 OS 를개발중 컴퓨터가존재하는한창과방패의싸움은계속될전망 31
참고문헌 P.Pfleeger, Security in Computing, second edition, Prentice-Hall International Inc.,1997. (chapter 5) 안철수연구소바이러스정보, http://home.ahnlab.com/securityinfo/virus_search.jsp 32