본 글은 wired의 Viruses Are Good for You을 번역한 글입니다.
1994년, 중앙 아메리카 인터넷 사이트에 아래와 같은 메시지가 익명으로 올라왔다.
“I'll be out at my place in the jungle over the weekend.
(나는 주말 동안 정글에 있어 자리를 비울 것이다.)
so I'll be out of e-mail contact till Monday.
(월요일까지 이메일 사용을 할 수 없다.)”
이 메시지가 올라왔을 당시 생태학자이면서 교수인 Tom Ray는 컴퓨터 바이러스를 연구하고 있었다. 1989년, 그는 코스타리카로 가 그 곳에서 20년 동안 컴퓨터 앞에 앉아 컴퓨터 바이러스를 키웠다.
조금 더 정확히 말하자면 그는 자기 복제 할 수 있고 독립적으로 실행하는 웜(worm)을 키웠다. 엄밀히 말하자면 컴퓨터 바이러스와 웜은 다르지만 여기에서는 웜 역시 컴퓨터 바이러스라 말하겠다. Tom Ray는 자신이 만든 프로그램을 “유기체” 혹은 “창조물” 이라고 부르면서 마치 살아있는 것처럼 대했다. 그것이 어떻든 간에 그는 학교로부터의 전면적인 지원과 주요 대기업으로부터의 자금 지원, 그리고 생물학과 컴퓨터과학을 동시에 주변 동료 학자들의 관심을 받으며 상당한 양의 바이러스를 키웠다. 모두의 관심을 받고 있는 그의 프로젝트 목표는 네트워크 공간에 바이러스를 풀어 인류에게 도움이 되고 바이러스가 돌아다니는 하나의 열대 우림 같은 생태계를 만드는 것이었다. 즉, 그는 네트워크에 컴퓨터 바이러스를 풀어 다른 시스템들을 감염시키며 네트워크를 정글처럼 바꾸어 가려고 했다.
처음은 쉽지 않았다. 그의 프로젝트는 노트북과 그의 단순한 생각이 전부였고 그것으로 시작되었다. 그의 생각은 자기 복제 프로그램, 컴퓨터 바이러스가 생태 과학에서 진화론과 더불어 입증되지 않은 복잡한 관계를 설명하고 더 나아갈 수 있도록 해주리라 생각했다. 그는 포도나, 개미, 나비와 같은 진화의 산물을 연구하고 싶었던 것이 아니라 컴퓨터 바이러스를 통해 진화 그 자체를 연구하고 싶어했다.
Ray의 컴퓨터 바이러스에 대한 시도는 Mark Ludwig와 다르다. 비교하자면 Mark Ludwig는 사실 Ray가 컴퓨터 바이러스 진화에 대한 실험을 완성하기 전까지 Ray의 작업에 대해서 알지 못했다. Ray는 컴퓨터 바이러스가 이미 존재하는 컴퓨터 환경에서 바이러스를 증식시키는 것에 대해 철학적으로나 윤리적으로 생각하지 않았다. 그는 단순히 컴퓨터 바이러스로 한 개의 시스템을 감염시켜 바이러스가 시스템 코어 메모리에 직접 접근하는 과정과 바이러스가 시스템에 적응해가는 패턴을 관찰하는 것이었다. 하지만 그는 이 생각을 관뒀다. 바이러스가 실제 네트워크에 풀리면 초래하게 될 위험요소가 너무 컸던 것이다. 그래서 나온 해결안은 실제 네트워크 환경과 비슷한 가상 네트워크 환경을 만들어 컴퓨터 바이러스를 연구하고 진화시키기는 거였다. Ray의 처음 계획과 달리 이 프로젝트는 그의 바이러스가 다른 곳으로 새지 않고 그가 만든 공간에서만 실행되고 활동한다는 것이다.
Ray는 컴퓨터 바이러스가 좀 더 활동적으로 움직일 수 있는 환경으로 구현하였다. 하지만 실제 네트워크에서 바이러스 변형체가 만들어지는 과정에 영향을 줬던 부분들이 Ray가 구축한 환경에서는 만들어질 수 없다는 것을 깨달았다. 운영체제에서는 프로그램이 실행될 때 알고리즘에 영향을 받지 않도록 랜덤으로 프로그램 위치를 이동시킨다. 하지만 유전적 변이처럼 세밀하게 정제된 레벨에서는 우연적인 변화조차도 항상 시스템 충돌 버그를 만들어냈다. 즉, 자연적으로 바이러스 변형을 일으키는 컴퓨터 바이러스는 코드 수정에 대한 오차가 훨씬 컸다. Ray는 좀 더 자연스러운 컴퓨터 환경을 원했고 그는 작은 변화라도 시스템상의 가상 CPU에 허용될 수 있도록 바이러스 진화 환경 시스템에 설정 셋을 구성했다.
뿐만 아니라 컴퓨터 바이러스를 언제든지 제거할 수 있는 Reaper라는 바이러스 제거 장치를 컴퓨터에 설치했다. Reaper는 오래되고 가장 에러가 많이 나는 프로그램을 우선순위로 삭제하여 바이러스 생태계를 순환시켰다. 더불어, 컴퓨터 바이러스의 필요조건 중 하나인 컴퓨터 바이러스의 자연적인 선택을 활성화시켜 Ray의 바이러스 생태계와 거의 비슷한 모습을 만들었다. 그는 이것을 Tierra, 스페인어로 지구라고 불렀고 마지막 작업인 '가장 먼저 풀어놓을 바이러스'를 준비했다. 가장 처음으로 Ray의 환경에 들어간 컴퓨터 바이러스는 80byte 길이에 자기복제 기능을 가진 웜이었다. 후에 Ray는 이 바이러스를 ‘조상’으로 명명하였다. Tierra 시스템에 컴퓨터 바이러스를 풀자마자 바이러스의 후손들은 곳곳에서 생겨나 빠르게 퍼져 나갔고 몇 분 안에 진화라고 부를 수 있을만한 변형을 보여 주었다.
79byte의 변형된 컴퓨터 바이러스는 미세하게 그들 조상의 특징과 닮아 조상을 대신했다. 더불어 더 작은 후손들 45byte, 51byte 심지어 22byte까지 변형 바이러스가 생겨났다. Ray의 Tierra는 수개월에서 수년 동안 활성화되었고 수백 개의 아종이 발생시켜 후에는 컴퓨터 바이러스를 분류해야 하는 단계까지 이르렀다. 특히나 과감한 크기 축소는 충분히 놀랄만한 사안이었고 더욱 주목할 점은 이러한 변형들은 자신의 코드를 암호화하여 스캐너를 우회하려는 생존 전략이었다. 45byte와 51byte의 바이러스는 결과적으로 웜이 아니라 진짜로 기생하는 바이러스의 형태였다. 그들이 복제가 필요할 시에는 더 컴퓨터 바이러스의 코드를 빌려 복제하였고 실질적으로는 시스템에 기생했다는 것이 맞다.
만약 컴퓨터 바이러스를 공부하는 학생이라면 넓게 오픈 되어 있는 Tierrans환경에서 자연스럽게 만들어지고 기생하는 컴퓨터 바이러스에 대해 흥미를 느꼈을 것이다. 또한, 스캐너가 가지고 있는 같은 기술을 적용하여 스캐너를 우회하는 진화를 했다는 점에서 충분히 흥미를 느낄만한 부분이다. 반대로 생물학도들에게는 정제되지 않은 환경에서 일부 바이러스의 상호작용은 예상 밖이였다. 이는 하나의 단순한 프로그램에서 예측할 수도 없었던 다양한 진화에 주목할 만한 일이었다.
Tierrans 내에 있는 가장 큰 바이러스 변화는 ‘조상’ 바이러스로부터 예상치 못하게 만들어졌다. 바로 바이러스 실행에 최적화된 컴퓨터 바이러스였다. 대부분의 변화된 바이러스들은 자신들의 코드를 효율적인 면에서 일부 개선하는 선에 그쳤지만 몇몇 경우에는 최적화 부분에서 완벽한 수준으로 진화되었다. 이는 마치 사람이 개발한 만큼의 난이도를 보여주었고 이러한 진화를 통해 얻은 기술을 실질적으로 활용할 만한 가치가 있었다. 이러한 진화는 사실 이때 처음 발생한 것이 아니다.예를 들어 60년대 개발자들은 소위 말하는 유전적 알고리즘을 가지고 이러한 실험들을 시작하였다. 소프트웨어의 서브루틴 풀들이 반복적으로 증가하고, 변형하며 수행 능력이 얼마나 잘 괜찮은지에 따라 처분되었다.
컴퓨터 과학자 Fred Cohen은 컴퓨터 바이러스의 여러 보안 시스템을 뚫고 침투하려는 특징에 목적을 주면 바이러스는 유용하게 활용될 것이라고 증명했다. Cohen은 바이러스가 돌아가는 수많은 시스템 환경에서 컴퓨터 바이러스가 유용한 코드를 만들어내는 비율에 대해 연구를 했다. 그의 연구에 가장 큰 관건은 네트워크 유지보수 생태 시스템이었다. 네트워크 유지보수 생태 시스템은 바이러스를 정리하여 생존에 최대한의 효율을 보증했다. 예들 들어 시스템상에서 필요 없는 파일을 제거하고 바이러스 파일 추적 전략을 랜덤하게 바꾸어 시스템상의 자원 낭비를 최소화했다.
하지만 Cohen의 실험을 본 Ray는 바이러스의 자연적인 선택이 아니라 인공적인 부분에 의존한 실험이라며 이를 통한 진화는 한계점이 있다고 말했다. 즉, 컴퓨터 바이러스가 오직 개발자에 의해 만들어진 방향으로만 진화할 수 있게 된 것이다. 반면 Tierra는 바이러스를 수집하여 기준에 따라 진화하고 자원 사용에 기술적 한계가 있었다. 그렇다 해도 Tierra는 바이러스 진화에 대해 하나의 가능성을 열어주었고 바이러스 개발자들에게 더 높은 바이러스 기술 개발의 잠재성을 보여주었다. 특히 병렬 처리 작업을 하기 위해 사용되는 컴퓨터 바이러스 역시 Ray의 진화적인 접근방법을 통해 구하게 될 것으로 보였다.
생물학적으로 보는 다세포 유기체는 컴퓨터 시스템의 복잡한 병렬 작업 중 하나의 예시로 빗대어 말할 수 있다. 예를 들어, Tierra에서 만든 다양한 컴퓨터 바이러스 중 80byte짜리는 최초의 바이러스보다 훨씬 크고 복잡한 코드로 이루어져 있다. 비교하자면, 실제 동, 식물이 사는 지구는 30억 년이 지나도 비슷한 상태를 유지하지만 반면, Tierra는 컴퓨터 바이러스 개발 장치로서 바이러스의 모든 가치를 증명하거나 진화 모델 역할을 통해 급격한 바이러스 증가로 보여질 수 있다. 또한, Tierra에서 가장 중요한 요소, 진화하는 바이러스를 비트 단위의 복제 수준으로 끌어올리면 더 복잡한 바이러스를 만들어낼 수 있다. 이러한 증가와 진화는 제한적인 컴퓨터 환경에서 바이러스를 푼다면 발생하지 않을 수도 있는 부분이다. 이러한 Ray의 생각과 별개로 병렬 처리 시스템상에 Tierra를 설치할 가능성에 대해 생각해 볼 부분이었다.
이후 1994년 초, Ray는 전세계 네트워크가 단순히 병렬 구조를 가진 것이 아니라 이전에 존재한 그 어떤 단일 기계보다 더 크고 강력하다는 것을 알게 되었다. 그렇게 나온 것이 네트워크를 식민지화하려는 Ray의 계획이다. Ray는 Tierran의 서브 네트워크가 수천 개 네트워크 nod로 퍼져나가 각각 프로세스 상에서 사용하지 않는 CPU 사이클을 이용하여 낮은 우선순위로 환경을 운영했다. 그는 우선 자기 복제를 하는 컴퓨터 바이러스가 복잡하고 불안전하면서 광범위한 네트워크에 이르면 바이러스는 적절한 단계에서 진화할 것이라고 확신했다. 더욱이 진화의 다양성을 생각해보면 완전 빅뱅이었다.
컴퓨터 바이러스를 연구하는 연구가들은 어떻게 보면 정글을 탐험하는 열대 식물학자와 비슷하다. 식물학자가 열대 우림을 누비는 것처럼 바이러스 연구가들은 그들이 보는 환경에서 흥미로운 정보처리 과정을 발견하려 한다. Ray 역시 자신의 시스템인 Tierra에 넣을 바이러스를 찾았다. Tierra에 넣을 바이러스는 자기 복제가 가능한 바이러스로 Tierra에서만 사용할 수 있는 언어코드로 바꾸어 어떤 작업에서도 작동할 수 있도록 맞춰졌다. 물론, 이렇게 만들어진 환경에서 나온 바이러스로 일어날 수 있는 모든 가능성을 예측하기에는 부족한 감이 없지 않아있다. 더욱이, 이런 환경을 구성하여 컴퓨터 바이러스를 양성한다는 것에 대해 염려스러운 시선 또한 높았다. Tierra 연구를 지원을 한 Danny Hillis은 Ray가 직면한 문제 중 가장 큰 문제는 기술적인 문제도 아니고 사회적으로 이 프로젝트를 바라보는 시선에 대한 것이 가장 큰 문제라고 말했다. 눈에 바로 보여지는 결과값이 없는 상태에서 시스템 지원을 계속 할당해주어야 하는 프로세스를 가진 프로그램은 상당히 부담적이기 때문이었다.
컴퓨터를 사용하는 사람들 역시 이 프로젝트를 꺼림칙했다. 그들이 말하기로는 네트워크에 컴퓨터 바이러스가 그대로 풀리게 된다면 실제 네트워크는 아비규환일 것이다. 결론적으로 Hellraiser 같은 사람들의 컴퓨터 바이러스를 바라보는 시선은 지하세계 바이러스 개발자들에게 영감을 주었을 것이다. 그리고 컴퓨터 바이러스의 세계를 바라보는 시선 역시 흥미롭게 바뀌었을 수도 있다. 만약 Mark Ludwig가 말한 다윈의 혁신이 바이러스 기술에 다가오는 트렌드에 대한 암시라면 이제까지 했던 얘기는 단순히 줄기차게 말한 얘기가 아니다. 특히, Ray가 말한대로 Tierra 시스템에서 컴퓨터 바이러스의 다양한 진화를 적극적으로 준비하지 않았다면 그만한 결과 역시 나오지 않았을 것이다. 이것은 자발적으로 채워지냐 마느냐와 상관없이 채워지게 될 틈새 시장이다.더욱이 컴퓨터 바이러스의 다양한 진화는 너무 빠르고 복잡하게 나아가고 있다,
=> 컴퓨터 바이러스는 당신에게 좋다. ②