2003년 8월에 나타난 블래스터 웜(Blaster worm)은 60초의 정리할 시간을 주고 계속해서 사용자의 컴퓨터를 재부팅 시켰다. 블래스터 웜은 당시 메일이 아닌 네트워크를 통해 확산하여 급속도로 퍼져 나갔다.[1] 더욱이 네트워크를 통한 감염이었던 탓에 치료하더라도 다시 걸리기 일쑤였으며 컴퓨터 포맷을 하더라도 네트워크가 연결되어 있으면 또다시 감염되었다. 이 때문에 블래스터 바이러스는 치료하는 데도 꽤 오랜 시간이 걸렸고 외국뿐만 아니라 국내에서도 많은 수의 컴퓨터가 감염되었다.
블래스터 웜은 2003년 8월 11일 F-secure Virus Research Lab에서 처음 발견되어 13일을 기점으로 급속히 확산했다.[2] 블래스터 웜의 또 다른 이름으로 Lovsan, MSblaster가 있으며 Msblaster는 블래스터 파일명이 “Msblaster”여서 붙여진 명칭이다.[3] Lovsan은 마이크로소프트 빌 게이츠(Bill gates)가 블래스터 웜을 분석했을 때 “I just want to say LOVE YOU SAN!!”이라고 적혀 있어 붙여진 이름이다.[4] 국내에서는 60초 바이러스라고도 불린다.[5] 네트워크를 통해 감염되는 이 웜은 네트워크와 연결된 윈도우를 사용하는 사용자의 컴퓨터 수천만 대 이상을 감염시켰다.[6] 또한, 15일 이후에는 블래스터 바이러스에 걸린 컴퓨터들이 윈도우 업데이트 사이트를 공격하기도 했다.[7] 보통 숨어있는 웜 바이러스치고는 블래스터 바이러스는 시스템 공격형 바이러스로 대놓고 공격하는 프로그램이었지만 아직 누가 왜 이 블래스터 바이러스를 만들어 퍼트렸는지는 밝혀지지 않았다.
블래스터 웜은 열려 있는 특정 포트를 타고 들어와 윈도우의 DCOM RPC 취약점을 이용하여 다른 컴퓨터를 감염시켰다.[8] DCOM(Distributed Component Object Model)이란 클라이언트가 다른 서버 프로그램에 객체를 요청할 수 있도록 해주는 프로그램이며 RPC(Remote Procedure Call)는 운영체제에서 사용되는 프로세스 간의 통신을 담당하고 있다. 블래스터 웜은 DCOM RPC 취약점을 이용하여 컴퓨터를 재부팅 시키고 다른 컴퓨터를 감염시켰다.
블래스터 웜이 포트를 타고 들어와 DCOM RPC로 가는 중간에는 방화벽이 존재한다. 하지만 이를 통과할 수 있었던 것은 방화벽에 설정된 규칙의 허점을 이용하거나 혹은 방화벽을 거치지 않고 바로 연결해서 갔을 것이라 보고 있다. 또는 감염된 노트북을 들고 내부망에 들어가 다른 컴퓨터를 감염시켰을 수도 있다며 당시 F-secure에서는 말했다.[9]
만약 보호받지 못하는 컴퓨터가 인터넷에 접속하게 되면 블래스터 웜은 곧바로 TCP 135번 포트를 통해 컴퓨터와 연결하여 대상을 감염시켰다.[10] 먼저 TCP 135번 포트를 통해 취약한 컴퓨터를 찾아내면 TCP 4444번 포트를 이용하여 웜을 유입시켜 관리자 권한을 획득했다. 권한을 획득한 후에는 UDP 69번 포트(FTFP)를 이용하여 블래스터 웜 파일을 다운로드 하고 실행했다. 블래스터 웜 파일이 실행되면 컴퓨터가 켜질 때마다 재부팅 할 수 있도록 레지스트리를 수정하고 다른 컴퓨터를 감염시키기 위해 위와 같은 과정을 반복한다.[11] 8월 16일 이전에는 이와 같은 과정만 반복했지만 16일 이후에는 windowsupdate.com에서 보안패치를 받을 수 없도록 사이트를 디도스(DDos, 분산 서비스 거부 공격) 공격하기도 했다.[12]
블래스터 웜이 컴퓨터를 재부팅 시킬 수 있었던 것은 RPC 버퍼가 데이터의 크기를 검사하지 않아서다. RPC 버퍼에 들어오는 데이터의 크기를 확인하지 않고 많은 양의 데이터를 한 번에 받아버리면 RPC 버퍼 공간은 꽉 차버리고 컴퓨터는 RPC를 초기화하기 위해 재부팅 시켜버린다.[13] 이 과정에서 아주 친절하게 종료를 준비하고 정리할 시간 60초를 제공해준다. 만약 웜 바이러스를 지우거나 컴퓨터를 재설치하더라도 컴퓨터에 상주한 것이 아닌 인터넷을 통한 감염이라 랜을 연결하게 되면 곧바로 블래스터 바이러스에 다시 감염되어 똑같은 현상이 나온다. 더군다나 16일 이후 웹 사이트를 공격할 때에는 IP를 변조하여 수행하고 Dos 공격 중 ‘TCP SYN flooding attack을 이용하여 윈도우 업데이트 사이트를 공격한다.[14]
이 바이러스를 잡기 위해서 마이크로소프트와 여러 보안회사에서는 RPC 버퍼 오버플로우 취약점에 대한 보안패치를 내놓았다.[15] 특히나 보안패치 중에 감염되는 것을 막기 위해 보안패치를 다운로드하고 실행할 때는 랜선을 뽑아놓도록 하였다.[16] 사용자들은 먼저 시스템 종료가 되는 것을 막기 위해 프롬프트를 실행하여 “shutdown -a” 명령어로 시스템 종료를 일시적으로 막고 네트워크 연결을 끊은 상태로 보안패치를 적용하라고 권했다. C:\Windows\System32 폴더에서 “msblast.exe”파일을 완전삭제하고 레지스트리에서 자동으로 웜이 실행하게 설정된 레지스트리 값을 제거하도록 권했다. 추가로 서버 관리자는 포트 UDP 69, TCP 4444 포트를 막아 놓으라고 권고하였다.[17]
당시 60초 이내에 보안패치를 받기에는 무리가 있고 윈도우 업데이트 사이트도 디도스 공격을 받는 상황이라 패치를 받기 힘들었다. 더욱이 블래스터 바이러스를 고치더라도 인터넷을 연결하면 다시 감염되기 일쑤였던지라 뿌리째 뽑기에는 시간이 어느 정도 걸렸다. 다행인 것은 윈도우 업데이트 사이트뿐만 아니라 외국 시만텍, f-secure를 비롯한 여러 보안회사와 국내 하우리, 안철수연구소가 발 빠른 보안패치를 제공해 그나마 더 길어지지 않고 잡을 수 있었다. 특히나 하우리는 외국에서 가장 먼저 샘플을 발견했다는 f-secure보다 더 먼저 샘플을 발견했다고 말하여 누구보다 발 빠른 대처를 할 수 있었다고 전했다.[18]
이후, 초창기 블래스터 웜이 변형되어 여러 블래스터 웜이 나왔지만 대다수의 다른 버전의 블래스터 웜도 언제 어디서 왔는지는 아직도 밝혀지지 않았다. 당시에는 메일을 이용하여 특정 다수를 감염시킨 것이 아닌 인터넷을 통한 불특정한 감염은 그 피해 범위를 더 넓게 하였으며 외국은 물론 국내에서도 피해가 상당했다. 그래서인지 이 웜바이러스를 기억하시는 분들이 많지 않을까 생각된다. 사실 필자가 이 주제를 쓴 이유도 중학교 컴퓨터 시간 때 보던 친근한 웜이었던지라 꼭 한번 블래스터 웜바이러스에 대해서 써보고 싶었다.