d라이브러리









병균이 침투하면 아프긴 사람이나 컴퓨터나 마찬가지다. 종종 사람 몸은 아픈 이유를 알 수 없을 때가 있지만, 컴퓨터는 명확하다. 함부로 프로그램을 굴리다보니 디스크가 고약한 컴퓨터 바이러스의 공습을 받은 것이다.

신문의 해외토픽란에는 종종 재미있는 기사가 실린다. 그 중에는 컴퓨터와 관련된 것들도 많은데, 특히 바이러스에 대한 기사는 지구촌과 컴퓨터의 관계를 실감케 한다. 미국과 이라크가 페르시아만에서 전쟁중일 때 미국은 이라크의 공군사령부에 컴퓨터 바이러스를 침투시켜 한때 이라크의 레이더망을 무력화시킨 적이 있었다. 또 중국의 이붕 바이러스는 컴퓨터 스위치를 올리면 바로 화면에 '이붕이 퇴진해야 합니까?'라는 질문을 던지는데 Yes라고 답하지 않으면 컴퓨터를 제대로 쓸 수 없게 만들어 버렸다.

최근에는 미국의 스펙터(유령)라는 바이러스가 중국으로 건너가 마침 지적재산권 문제로 무역전쟁 위기로까지 치달았던 양국관계에 미묘한 영향을 미치기도 했다. 우리나라의 경우도 예외가 아니다. 올해만 해도 기업과 중앙선거관리위원회, 육군본부, 법원 전산망 등이 크고 작은 피해를 입었다. 안철수 컴퓨터 바이러스 연구소가 최근 1천3백87명의 PC사용자를 대상으로 한 설문조사에서도 95%의 사용자가 컴퓨터 바이러스를 경험한 것으로 나타났다.

미국의 대중과학잡지 '파퓰러 사이언스'에 따르면 90년도에 4백44개였던 바이러스가 94년에 이르러서는 그 10배에 해당하는 5천여개에 달하게 되었다고 한다. 컴퓨터 바이러스는 초기의 1:1식 감염에서 이제는 인터넷 등의 통신망을 통해 전세계적으로 순식간에 전파되는 원자폭탄같은 위력을 갖추게 된 것이다.
 

가장 널리 사용되는 백신 프로그램 V3. 얼마 전부터는 셰어웨어로 공급되고 있다.


살충제로 컴퓨터 바이러스를 잡는다?

우리나라에서 컴퓨터 바이러스가 처음 발견됐던 88년 이후 많은 사람들은 컴퓨터 바이러스와 생물학적인 바이러스를 같은 것으로 오해하여 심지어는 컴퓨터에 살충제를 뿌리는 일까지 있었다고 한다.

그러나 컴퓨터 바이러스는 살아있는 바이러스가 아니라 컴퓨터에서 수행되는 프로그램의 일종이고, 사용자 몰래 자기 자신을 다른 프로그램에 복사하는 특징을 가지고 있다. 살아 있는 바이러스가 유전인자를 가지고 자기 자신을 복제해 나가듯이 컴퓨터 바이러스도 자기 자신을 다른 곳으로 복사시키는 능력이 있는 명령어들을 프로그램 내부에 가지고 있다. 사람이 감기에 걸리면 감기 바이러스가 인체에 증식하면서 병을 일으키듯이 컴퓨터 바이러스도 스스로 증식하면서 특수한 부작용을 일으킨다. 갑자기 부팅이 안된다든가 화면에 이상한 문자가 나타난다든가 실행속도가 엄청나게 떨어진다든가 하는 등등…….

이러한 바이러스는 디스크의 부트섹터에 감염되는 부트 바이러스와 파일에 감염이 되는 파일 바이러스, 양쪽 모두에 감염이 되는 것이 있다.
몇년째 악명을 떨치고 있는 미켈란젤로 바이러스는 디스크의 부트 섹터에 들어가 있다가 부팅이 될 때마다 메모리로 올라와 활동한다. 단 이 바이러스는 미켈란젤로의 생일인 3월 6일에만 디스크의 정보들을 파괴하기 때문에 평상시에는 아무런 흔적도 없다(물론 평상시에도 눈에 보이지않게 감염이 이루어진다). 늘 잠복하고 있다가 3월 6일만 되면 디스크의 부트섹터를 파괴해 하드디스크 등을 통째로 인식하지 못하게 만드는 것이다.

'13일의 금요일 바이러스'라고도 불리는 예루살렘 바이러스는 13일과 금요일이 겹치는 날에 실행돼 디스크의 프로그램들을 지워버리는 파일바이러스에 속한다.

미켈란젤로 바이러스나 예루살렘 바이러스는 어떻게 날짜를 알 수 있을까? 컴퓨터가 벽에 걸린 달력을 보는 것일까? 컴퓨터에는 내장 배터리에 의해 늘 움직이고 있는 시계가 들어 있다. 이 시계에 의해 날짜와 시간이 인식되는 것이다. 그래서 3월 6일이 되면 하루종일 컴퓨터를 쓰지 않는 사람이 있는가 하면 바로 전날 컴퓨터의 날짜를 하루 건너뛰어 3월 7일로 돌려넣고 PC를 쓰는 사람들도 있다.

그러나 이러한 소극적인 자세는 늘 시한폭탄을 안고 사는 사람처럼 위험하기 그지없다. 예를 들어 컴퓨터의 날짜가 잘못 맞추어져 있었다면, 즉 오늘이 실제로는 4월 10일인데 컴퓨터의 시계가 잘못 맞추어진 결과 컴퓨터는 3월 6일로 되어 있다면 그날 컴퓨터를 켜는 순간 자신의 모든 정보가 담긴 하드디스크는 회복 불가능한 상태로 파괴될 수도 있기 때문이다.

올 상반기에 기업전산망과 중앙선거관리위원회컴퓨터에 나타난 나타스(NATAS:거꾸로 읽으면 사탄-SATAN-이 된다)는 기존의 바이러스들이 부팅시킬 때나 프로그램을 실행할 때의 어느 한 경우에만 문제를 일으켰던 것과는 달리 양쪽 어느 경우에만 문제를 일으켰던 것과는 달리 양쪽 어느 경우에나 문제를 일으키기 때문에 이를 잡는 백신 개발에도 어려움이 따랐던 것으로 알려져 있다.

바이러스는 부트섹터나 실행파일에만 옮겨지는 것은 아니다. 우리가 컴퓨터로 만들어 저장해 둔 자료(data)에도 바이러스가 감염될 수 있다.

그러나 감염된 자료 파일은 실행되지 않기 때문에 다른 프로그램이나 자료 파일들을 다시 감염시킬 수는 없다. 대신 자료파일은 일부나 전부가 파괴되어질 수 있다.

컴퓨터 바이러스는 대개 디스켓을 통해 옮겨진다. 따라서 학교나 학원 등에 있는 컴퓨터처럼 많은 사람들이 사용하는 경우라면 상대적으로 바이러스에 걸릴 위험이 크다. 누구나 집에서 쓰던 디스켓을 무심코 학원의 컴퓨터에 넣고 사용하며 그것을 다시 집으로 가지고 간다. 만일 학원에 있는 한 대의 컴퓨터에 바이러스가 있었다면 그 컴퓨터로 작업하고 작업결과를 디스켓에 복사하여 집으로 가져간 사람들은 모두 바이러스에 덜미를 잡힌 셈이니 이 얼마나 무서운 전파력인가? 이같이 공동으로 사용하는 컴퓨터에서 가져온 디스켓은 사용전에 반드시 최신 백신으로 검사한 후에 사용해야 한다.

다음으로 바이러스가 침입하는 경로는 통신망을 통해서다. 하이텔이나 천리안, 더 넓게는 인터넷에서 자료를 다운로드 받았다면 그 자료가 바이러스에 감염된 것인지 아닌지를 분명히 조사한 후에 사용해야 한다. 통신서비스기관들에서도 나름대로 바이러스 검사를 하고 있겠지만 최신 바이러스들은 이 그물을 빠져나갈 수도 있다. 그래서 자료를 수신받을 때는 가능하면 자료를 올린 날짜가 어느 정도 경과한 것(예를 들어 10일 정도)을 받는 것이 안전하다. 그 사이 많은 사람들이 받아 사용해 보았을 것이기 때문이다. 만일 문제가 있었다면 이미 자료실에서 쫓겨났을 테니까.

일반 사용자들이 겪을 수 있는 이러한 경우는 조금만 부지런하면 큰 어려움없이 막을 수 있다. 자주 최신 백신을 구해놓고 디스켓을 넣을 때마다 검색하기만 하면 되기 때문이다.
 

외국산 바이러스 백신 프로그램으로는 SCAN이 가장 효과적이다.


데이터 파일은 반드시 백업하라

자신이 가지고 있는 백신 프로그램이 모든 바이러스를 잡을 수 있다고 생각하는 것은 커다란 오해다. 백신 프로그램은 지금까지 발견된 컴퓨터 바이러스에 대해서는 진단 및 치료가 가능하지만 새롭게 만들어진 바이러스에 대해서는 무력하다.

얼마전 인터넷에 Good Times라는 가공할 바이러스가 나타났다는 소문이 떠돌아 전세계를 긴장케 한 적이 있다. 소문에 의하면 이 바이러스는 Good Times라는 제목의 전자우편을 보내며 인터넷 사용자가 이 편지를 읽거나 받는 순간 바이러스가 하드디스크의 정보를 파괴하고 또 사용자의 전자우편 주소목록에 침입하여 그 주소들로 자신을 보내는 방식으로 무수한 컴퓨터들을 파괴한다는 것이었다.

아직까지 피해자가 없는 것으로 보아 실체가 없는 '유령'인 것으로 보이나 이같이 새로운 바이러스가 나오면 백신 제작자들이 그 샘플을 입수, 분석하고 거기에 걸맞는 백신을 제작하기 전까지는 치료가 불가능하다.

■따라서 바이러스로부터의 피해를 최소화 하는 방법은 역시 데이터 파일의 충실한 백업이다. 가능하면 지금이라도 하드디스크에 있는 중요한 데이터 파일들을 디스켓에 따로 백업해 놓기를 권한다. 어떤 사람들은 아예 하드디스크 전체를 WORM(한번만 기록할 수 있는 CD-롬이라고 생각하면 된다)에다 백업하기도 한다.

디베이스니 윈도니 하는 프로그램들은 최악의 경우 지워지더라도 다시 구해서 설치하면 되지만 자신이 몇년에 걸쳐 만들어둔 문서파일 등은 한 번 파괴되면 어디 가서 다시 구할 수도 없기 때문에 반드시 복사본(백업)을 만들어두어야 한다.

도스나 윈도는 자체내에 백업 프로그램을 가지고 있고 백업 전용 유틸리티들도 많이 나와 있으니 메뉴얼을 참고해 반드시 익혀두기 바란다.

백업은 도스에 있는 xcopy.exe파일만 잘 사용해도 효과적으로 해낼 수 있다. 도스 프롬프트에서 xcopy/?하면 옵션들이 나오는데 이 중에서 날짜를 기준으로 파일을 복사할 수 있는 기능을 잘 알아두면 효과적이다. 매월 정해진 날짜에 백업을 받는다면, 예를 들어 매월 1일에 백업을 받는다면 그 전달의 2일 이후로 만들어진 파일들만 복사하라고 명령을 내림으로써 중복되는 파일없이 백업을 받을 수 있는 것이다. 하나의 예를 들어보겠다.

c:\>xcopy*.hwp a:/s/d:95/09/01/s:하위디렉토리까지 모두 검색해 복사하는 명령
/d:95년9월 1일 이후 만들어진 파일들을 모두 복사하는 명령
이렇게 하면 9월 1일 이후 생성된 *.hwp 파일만 디스켓으로 복사해 낼 수 있는 것이다.

■부트 바이러스는 하드디스크의 부트 섹터를 파괴한다. 그래서 미리 부트 섹터를 백업받아 놓는다면 이 영역을 복구할 수 있는 가능성이 훨씬 커진다. 도스에 있는 mirror.exe 파일(또는 노턴유틸리티의 image 명령)을 이용하면 디스크의 부트 섹터를 디스켓에 저장해 둘 수 있다.

c:\mirror c:
이렇게 하면 하드디스크의 시스템 영역 중 FAT와 루트 디렉토리에 대한 정보를 mirror.fil이라는 파일로 루트 디렉토리에 저장한다. 또
c:\>mirror/partn

이렇게 하면 하드디스크의 시스템 영역중 파티션테이블(분할정보)을 partnsav.fil이라는 파일로 플로피디스켓에 저장한다. 파티션 테이블이 깨지면 하드디스크 자체를 인식하지 못하므로 플로피디스켓에 있어야만 의미가 있는 것이다.

이 두 개의 파일(mirror.fil, partnsav.fil)은 하드디스크의 부트섹터가 깨졌을 때 정말 유용하게 쓰인다. 만일 하드디스크가 깨져서 부팅이 되지 않는다면 일단 깨끗한 부팅 디스켓으로 부팅한 다음 unformat 명령을 쓴다. 물론 부팅디스켓에 이 unformat 명령도 들어있어야 할 것이다.

A:>unformat c:
이렇게 하면 unformat은 mirror.fil과 partnsav.fil 파일을 이용하여 하드디스크를 원상태로 복구시킨다. 만일의 사태에 대비하기 위해 mirror 명령을 autoexec.bat 파일에 삽입해 놓고 파티션 테이블에 대한 정보도 디스켓에 따로 저장해 두면 훗날 긴요하게 쓰일 것이다.

■하드디스크로 부팅이 되지 않을 때를 대비해 반드시 비상용 부팅 디스켓을 만들어둔다.

c:\>sys a:
이렇게 하면 부팅에 필요한 io.sys, msdos.sys, command.com이 디스켓으로 복사된다. 그런 다음 도스 디렉토리에 있는 sys.com, unformat.com, 노턴 유틸리티에 있는 ndd.exe, 그리고 최신 백신을 이 디스켓에 같이 복사해 놓는다(물론 부팅 디스켓을 만드는 작업은 바이러스가 전혀 없는 것이 확인된 컴퓨터에서 행해야 할 것이다). 이 작업이 끝나면 디스켓에 쓰기방지 탭을 붙여둔다. 이 작업이 끝나면 디스켓에 쓰기방지 탭을 붙여둔다. 이제 '부팅 디스켓'이라 쓴 라벨을 디스켓에 붙인 후 소중하게 간직하면 된다.

국내에서 가장 많이 쓰는 백신 v3는 새로운 버전이 나올 때마다 하이텔, 천리안, 나우누리, 포스서브의 공개자료실에 올라오고 있으므로 가끔씩 공개자료실에 들러서 새 버전이 있으면 다운로드받도록 한다. 물론 PC통신으로 다운로드 받은 모든 파일은 깨끗한 백신으로 검사한 다음 사용해야 할 것이다.

■외부에 나갔다 온 디스켓은 무조건 바이러스 검사를 한다. 실제로 많은 경우가 다른 컴퓨터에서 감염된 디스켓을 아무 생각없이 넣었다고 당하는 것이다. 그러므로 무조건 바이러스 검사부터 하는 습관을 들이는 것이 좋다.

■v3res 등 램상주용 예방 백신 프로그램을 autoexec.bat파일에 등록해 둔다. 이렇게 해두면 바이러스가 있는 디스크에 접근할 때 미리 경고를 해주므로 신속하게 대처할 수 있기 때문이다.
 

나우콤에 개설된 안철수 컴푸터 바이러스포럼에서는 최신의 백신프로그램이 등록돼 있으니 수시로 들러보도록 한다.


백신 프로그램의 최고봉 V3

플로피디스켓의 감염 여부를 살피려면 하드디스크에 설치된 백신을 이용하면 되겠지만 하드디스크의 감염 여부가 의심스러울 때는 미리 준비한 부팅 디스켓으로 부팅한 다음 A:에서 C:를 검사하는 방법을 택해야 한다.

바이러스 퇴치 프로그램으로는 적어도 국내서 제작된 것과 외국의 것 한가지씩은 준비하는 것이 좋다. 외국산으로는 scan이 가장 유명한데, 대략 한달에 한번 정도 새로운 버전이 발표된다. 국내에서 가장 널리 쓰이는 프로그램으로는 단연 v3다. 안철수 씨가 만든 이 백신은 외국의 어떤 백신에도 뒤지지 않는 신뢰도와 빠른 속도를 가지고 있다.

c:\>v3 a:
이렇게 하면 A드라이브를 검사한다. B드라이브나 C드라이브를 검사할 때는 v3 뒤에 b: 또는 c:를 적어주면 된다. 이렇게 하면 부트 섹터와 실행 파일의 감염 여부를 검사하게 된다. 만일 데이터 파일까지 몽땅 검사하고 싶다면 어떻게 해야 할까? 여기에 v3의 몇가지 옵션을 소개한다.
/A:대상 디스크에 있는 모든 파일의 감염 여부를 검사한다.

/N:바이러스가 여럿 나올 경우 사용자에게 물어보지 않고 알아서 고친다.

/M635:기본메모리가 635MB라고 나올때 쓴다. 물론 639라고 나오면 /M639라고 한다.

백신으로 치료한 다음에도 계속 바이러스가 나타나면 바이러스가 어딘가에 숨어있을 가능성이 많으므로 /A옵션이 아주 유용하게 쓰일 수 있다.

한편 v3res는 램상주 프로그램으로 autoexec.bat파일에 경로와 함께 v3res라고만 넣어주면 된다. 이 예방 프로그램은 부팅시부터 컴퓨터를 끌때까지 메모리에 상주하고 있다가 바이러스에 걸린 프로그램이 실행되려고 하면 즉시 스톱시키는 역할을 한다. v3와 함께 배포되는 v3boot(또는 v3b)는 부트 바이러스만을 잡아주는 백신이다.

마지막으로 실제로는 멀쩡한데 메시지를 잘못 이해하여 바이러스에 감염되었다고 생각케 하는 메시지 몇가지를 소개한다.

◎ Scanning memory for critical virus : 메모리에 있을지도 모르는 치명적인 바이러스를 이제부터 검사하겠다는 메시지.
◎ No known computer virus : 지금까지 알려진 바이러스는 발견되지 않았다는 메시지.
◎ Probably infected with unknown computer virus : 이 메시지는 실제로 바이러스에 감염되었을 수도 있고 아닐 수도 있다. 주로 메모리의 크기가 줄어들면서 나오는 메시지인데 깨끗한 부팅 디스켓으로 부팅한 다음의 검사에서도 똑같은 메시지가 나오면 바이러스일 가능성이 높으며, 아니면 컴퓨터의 바이오스가 기본메모리를 정상적으로 사용하고 있는 경우가 많다. 바이러스일 경우에는 v3boot로 치료하면 된다.

또 바이러스가 디스크에서는 발견되지 않는데 메모리에서 계속 발견되면 백신 프로그램의 오진일 가능성이 많다. 이러한 증상은 한 백신프로그램을 실행한 다음에 다른 백신 프로그램을 실행시켰을 때 흔히 발생한다. 백신프로그램은 바이러스 진단을 위해서 바이러스의 코드 일부를 자체에 가지고 있는데 나중의 백신프로그램이 메모리에 있는 앞의 백신프로그램에 내장된 이 코드를 바이러스로 오진하는 경우가 많다.

이 기사의 내용이 궁금하신가요?

기사 전문을 보시려면500(500원)이 필요합니다.

1995년 10월 과학동아 정보

  • 유해룡 컴퓨터 칼럼니스트

🎓️ 진로 추천

  • 컴퓨터공학
  • 정보·통신공학
  • 소프트웨어공학
이 기사를 읽은 분이 본
다른 인기기사는?