[4화] 안철수와 최철룡의 바이러스 치료기

대한민국 최초의 백신 탄생

대한민국 최초의 백신은 어떤 모습이었을까요? 디스켓에 담겨있지도, PC통신으로 뿌려지지도 않았습니다.

짐작 하시는 분 계시죠? 안철수씨와 최철용씨의 백신 소스코드가 월간 마소 1988년 7월호에 프린팅되어 배포되었습니다.

두 분의 코드 스타일을 보면, 상당한 차이를 느낄 수 있습니다. 안철수씨는 코드를 보고 공부하기 쉽도록 꼼꼼한 주석처리와 개행 처리를 보여주고 있습니다. 그에 비해, 최철용씨은 개행 처리만 맞춘 코드 스타일입니다.

이미 바이러스에 대한 기본 구조를 모두 분석한 후라 어떤 쪽이 더 낫다고 할 순 없겠지만, 프로그래밍 공부를 시작하는 독자에게는 어땠을까요?

먼저 안철수씨의 코드입니다.

백신의 일본식 발음이 왁찐이었다고 합니다. ⓒ 마이크로소프트웨어

모든 코드를 오픈하기에 스토리펀딩의 공간이 적절치 못하여, 부득이하게 부분들만 발췌하였습니다. 양해 부탁드립니다.

VACCINE.ASM by Ahn Cheolsoo ⓒ 마이크로소프트웨어

003; VACCINE.ASM vaccine program for (c) Brain
004;
005; by Ahn Cheolsoo
006;
007; computer : IBM – PC/XT/AT
008; language : Microsoft Macro Assembler 5.0
009; creation : 1988. 6. 10.
안철수씨의 백신의 네임태그

(C)Brain 바이러스가 부트로더에 Welcome to jungle 을 새겼었죠. 안철수도 백신의 시작에 네이밍을 했습니다. 이 네임태크는 이후 개발한 V2와 V3에도 동일하게 적용했었죠.

각 개행의 의미를 보기 편하게 설명했습니다. ⓒ 마이크로소프트웨어

REPAIR THE BOOT SECTOR ⓒ 마이크로소프트웨어

REPAIR THE LABEL ⓒ 마이크로소프트웨어

그리고 352번째줄, END entry로 프로그램을 끝냅니다.
주석이나 개행 처리가 아니었다면 절반정도로 줄었을 양으로 보입니다.

그럼 최철용씨의 코드를 살펴볼까요?

재미난 포인트는 맨 뒤에 나옵니다.

백신이란 용어자체가 불분명했는지, 예방주사라는 용어를 사용했습니다. ⓒ 마이크로소프트웨어

변수 선언 및 설정을 시작했습니다. ⓒ 마이크로소프트웨어

각 디스크 드라이브의 섹터들을 순서대로 읽고 지웁니다. ⓒ 마이크로소프트웨어

감염 구역의 복구를 시작합니다. ⓒ 마이크로소프트웨어

303행에서 프로그램이 끝이 납니다. ⓒ 마이크로소프트웨어

코딩의 마지막 부분이 되어서야, 백신 실행시 나오는 네임태그와 함께 사용자UI 화면을 볼 수 있네요.

Youil computer Choi C.L 88/06/14
(C)Brain Killer Program
최철용씨의 백신의 네임태그

 

코드를 실행하면 나오는 메세지를 맨 마지막에 넣고, 각 명령어를 처리하였습니다.
두 코드 모두 동일한 바이러스를 치료하는 목적과 결과가 같아, 어느 코드가 더 낫다라는 결론을 내기는 어렵습니다.

확실한건, 안철수씨와 최철용시 모두 각자의 스타일에 맞게 치료할 수 있는 백신을 만들었다는 점이죠.

1988년 8월에 실은 안철수씨의 최초 백신 제작 소감을 들어보시죠.

(C)Brain을 마감하며 ⓒ 마이크로소프트웨어

당시 시대적 배경과 감정이 함께 섞인 말투도 볼 수 있습니다.

우리가 해야할 일은 새로운 바이러스가 발견되면 즉시 이 사실을 널리 알리고, 적절한 치료 프로그램을 널리 보급시키는 것이다. 또한 일반 사용자들은 바이러스에 의한 피해를 최소화하도록 노력해야 할 것이다. 즉, 항상 디스크를 백업(back-up)하는 습관을 들이도록 하며, 프로그램 디스크는 항상 쓰기 방지 탭(write protect tab)을 붙여 놓아야 할 것이다.
컴퓨터 바이러스에 대한 경고와 백신의 필요성

3.5인치와 5.25인치 디스크의 옆엔 쓰기 방지탭이 있습니다. ⓒ 마이크로소프트웨어

| 컴퓨터 바이러스는 그 자체가 가져오는 데이타의 손실도 크지만, 당장 눈에 보이는 데이타의 손실보다도 그로 인하여 발생하는 후유증이 더 심각하다.

 기사내용 발췌

공개 소프트웨어와 통신의 두절

아마추어 프로그래머들은 기존의 사고방식에 얽매이지 않고 여러가지 혁신적인 생각을 해내고 이를 실행시켜 볼 수 있으며, 컴퓨터외의 자기 직업 분야에서의 경험을 바탕으로 컴퓨터의 영역을 넓혀가는데 커다란 공헌을 한다.

우리나라에서는 아직 컴퓨터 통신이 잘 발달되어 있지 않아서 공개 소프트웨어의 출처는 주로 컴퓨터 관련서적이나 잡지가 대부분이지만 외국의 경우는 많은 유용한 프로그램이나 소스 코드를 통신망을 통하여 얻고 있다.

컴퓨터 바이러스에 의해 피해가 늘어간다면 이러한 이러한 추세가 둔화될 가능성이 있으며, 이미 통신망을 사용하는 사람들이라면 통신망을 사용하는 것 뿐 아니라 통신망을 통해 공개 소프트웨어를 얻는 것을 꺼려하게 될 것이다.

첫번째 후유증

 

상업용 소프트웨어의 개발지연과 경비상승

Aldus사는 감염을 방지하기 위해 완전히 고립된 컴퓨터를 사용하여 프로그램을 개발할 계획을 세웠다. 즉, 다른 컴퓨터로 부터 정보유입을 완전히 차단한 상태에서 독립적으로 프로그램을 개발하기로 한 것이다.

프로그래머가 프로그램을 만드는 일은 더욱 시간이 많이 걸리게 되며 테스트 과정이 복잡하게 될 것이다.

소프트웨어의 가격 또한 엄청난 값이 될 것이며, 결과적으로 프로그래머와 사용자 양쪽 모두 피해를 입게 될 것이다.

두번째 후유증

 

컴퓨터 보급의 둔화

컴퓨터에 대한 지식이 거의 없는 사람이 컴퓨터 바이러스에 대한 기사를 본다면 위험을 무릅쓰고서라도 컴퓨터를 사려고 하는 생각은 하지 않을 것이다.

가장 확실한 방법이란 모든 프로그램을 ROM에 넣어버리는 것이다. 그것은 컴퓨터의 유연성을 막아버리는 끔찍한 방법이지만 이렇게 안되리라는 법도 없다.

세번째 후유증

그리고, 강력한 한마디.

| 우리나라가 외국의 개방 압력에 시달리고 있는 이 마당에 외국산 바이러스에게까지 수모를 당해서야 되겠는가?

안철수씨의 결언

 

안철수씨의 지원과 요청으로 월간 마소 편집부는 바이러스 방역 센터를 오픈했습니다.

바이러스 방역센터의 탄생 ⓒ 마이크로소프트웨어

이렇게 존재감을 나타냈던 안철수씨는 1989년 9월 ANSI 폭탄과 함께 다시 돌아옵니다.

ANSI 폭탄이라는 신종 괴물이 나타났다. ⓒ 마이크로소프트웨어

이번에도 그는 바이러스의 동작 원리부터 치료법까지 상세히 기록하여 많은 사람들이 볼 수 있도록 했습니다.

ANSI 폭탄이란 텍스트 화일 내에 사용자가 원하지 않는 ANSI.SYS의 명령을 몰래 숨겨 놓는 것으로, 사용자가 화일의 내용을 보기 위해서 type 명령을 사용하면 ANSI.SYS 명령이 동작하게 된다.
(중략)
지금까지는 컴퓨터 바이러스나 트로이 목마 프로그램에 대한 피해를 줄이기 위해서 실행 화일만 검사하는 것으로 충분했으나, ANSI 폭탄 때문에 텍스트 화일도 조심해야 하는 지경에 이르렀다.
기사내용 발췌

 

| 필자가 ANSI 폭탄에 대한 소식을 처음 접했을 때의 느낌은 사악함의 진수를 보는 것 같았다.

안철수씨의 ANSI 폭탄에 대한 소감

바이러스 방역센터를 통해, 접수되는 바이러스들은 안철수씨에게 전달되었고, 그렇게 백신은 점점 다듬어지기 시작했습니다.

월간 마소에 올라온 안철수씨의 벡터 이미지 ⓒ마이크로소프트웨어

월간 마소와 함께 탄생한 V3의 초기 이야기와 IT 업계를 전체적으로 바라본 안철수씨 이야기는 다음화에서 만나실 수 있습니다.