내위키

원래는 벌레(worm)라는 뜻인데, 그 중에서도 기생충이라는 의미가 제일 적당할 듯하다. 컴퓨터 바이러스와는 달리 자체 실행 능력과 번식 능력이 있는 악성코드를 가리켜서 컴퓨터 웜(computer worm)이라고 부른다.

컴퓨터 바이러스는 자체 실행 능력이 없고, 다른 실행 파일을 변조해서 기생하는 방식으로 살아간다. 실행 파일에 기생하면 그 숙주 실행 파일이 실행될 때 자신도 동작하고, 숙주 파일이 다른 컴퓨터로 복사될 때 자신도 함께 복사된다. 현실 속의 바이러스도 그와 같이 기생해서 살아가야 하는 존재다. 반면 웜은 스스로 실행될 수 있는 파일로 존재한다. 스스로 실행되고 스스로 네트워크를 타고 다른 컴퓨터로 침투하려고 한다. 벌레도 스스로 먹이를 잡아먹고 움직이면서 살아가는 것과 같은 것. 버러지 같은 웜, 벌레만도 못한 바이러스. 바이러스는 다른 파일에 얹혀서 전파되는 수동적인 존재라면 웜은 스스로 네트워크를 타고 돌아다니면서 번식하는 농등적인 존재이므로 확산 속도로 본다면 웜이 빠르다. 예전에는 운영체제가 멀티태스킹도 잘 지원하지 않았고, 저장장치 안의 파일시스템 구조도 단순하고 파일의 개수도 적었으니 파일이 쉽게 눈에 뜨였다. 이럴 때에는 다른 실행 파일애 얹혀서 함께 실행되고 흔적이 덜 남는 바이러스가 선호되었다. 그러나 운영체제가 멀티태스킹을 지원하고, 파일시스템의 구조가 훨씬 복잡해지고 파일의 양도 엄청나게 많아져서 몸을 숨기기가 좋아진 지금은 독립된 프로세스로 실행될 수 있으며 네트워크를 타고 빠르게 확산될 수 있는 웜이 선호되는 편이다.

다만 바이러스보다 발각되기도 쉬운데, 스스로 독립된 프로세스로 동작하므로 쉽게 발견할 수 있다. 반면 바이러스는 다른 프로세스에 꼽사리 끼어서 동작하므로 변조된 프로세스가 무엇인지 찾아야 해서 좀 더 까다롭다. 좀 더 정교한 웜은 루트킷과 같은 기법을 활용해서 자신의 정체를 숨기기도 한다.