1. 개요
진단명 Win32/Blaster.worm.[1]2003년경 인터넷을 달궜던 악성코드 중 하나. 2003년 8월 11일에 처음 발견되었다.
2. 증상
가장 대표적인 증상은 컴퓨터가 꺼지는 것인데, 자꾸 60초 후 컴퓨터가 종료됩니다 라는 팝업창을 띄운 후 종료되기 때문에 일명 60초 바이러스라고 불리기도 했다. 바로 위의 화면. 취소할 수도 없으므로 꼼짝없이 컴퓨터가 시한부로 종료되는 걸 지켜볼 수밖에 없었다. XP(2003/R2) 부터는 'shutdown -a'를 명령 프롬프트나 실행에 치면 일시적으로 멈출 수는 있다.[2]
Windows NT 4.0, Windows 2000, Windows XP, Windows Server 2003의 RPC(Remote Procedure Call; 원격 프로시저 호출) 버퍼가 데이터의 크기를 검사하지 않는다는 허점을 악용해서 RPC 버퍼를 꽉 채워 과부하를 일으키고 강제 재부팅을 일으키는 원리. 윈도우는 과부하로 다운된 RPC 버퍼를 되돌리기 위해 재부팅을 해야 하는데, 이 때 60초간 사용자에게 작업을 정리할 시간을 준다. 이 때문에 60초마다 재부팅이 되는 것. 물론 근본적으로 웜을 없애지 않는 이상 RPC 버퍼는 계속 다운되고, 계속 재부팅되기 때문에 60초 재부팅만 반복될 뿐이다.
감염되면 실시간으로 시스템 날짜를 확인하며, 매달 16일 이후 또는 매년 9월 이후인지 확인하는 스크립트가 실행된다. 이때 감염된 날짜가 1~8월 사이이면 16일 이후에 Windows Update 서버를 공격하고, 9~12월 사이이면 매일 공격한다. 공격대상과 악성코드 안에 있는 메시지를 미루어 보아 빌 게이츠와 마이크로소프트에 반감을 가진 해커가 만든 걸로 추정된다.[3][4] 2004년 3월 12일, 미네소타 주 홉킨스 출신의 18세 제프리 리 파슨은 B형 블래스터 웜을 개발했다는 혐의로 체포되었고, 그는 혐의를 시인하고 2005년 1월에 1년 6개월의 형을 선고받았다고 전해진다.
문제는 포맷하고 윈도우를 새로 깔아도 보안패치를 다운받으려 인터넷에 연결하면 그 사이 다시 감염된다는 것. 컴퓨터의 주소를 기억해두었다가 지속적으로 감염시키는 방식이라서 그렇다. 윈도우 NT 4.0, 2000이나 XP, 서버 2003이 깔려 있지 않은 컴퓨터를 통해서 미리 보안패치를 다운받아 두거나, 아예 설치 미디어에 해당 보안패치를 통합해서 윈도우를 재설치하거나[5], 이미 보안패치가 적용된 컴퓨터를 통해서 다운받은 다음에 CD 등의 저장매체에 저장해두었다면 좋지만, 그렇지 않은 혹은 할 수가 없었던 사람들은 눈물이 앞을 가렸다고. 짧은 시간에 감염되지 않기를 빌면서 최대한 빨리 보안패치를 다운받아 설치하거나, 아니면 컴퓨터를 좀 다룰 줄 안다는 친구에게서 보안패치를 받아오거나, 그것조차 안 되면 동네 수리업체이든 대기업 완본체로 구매했다면 해당 기업체의 서비스센터에 맡기는 수밖에 없었다. 게다가 윈도우의 비밀번호도 미리 가지고 있는 데이터베이스에 의해 웬만한 비밀번호 패턴은 다 뚫렸다는 점.
이 방식의 악성코드는 파일을 감염시키는 것이 아니므로 백신으로 검사하기가 굉장히 힘들다. Windows NT 계열의 보안 취약점을 악용한 공격 수법이므로 유일한 해결법은 보안패치를 설치하는 것뿐, 발견된 날로부터 20년이 지난 현재에는 블래스터 웜에 대한 보안패치 정도는 이미 나와있다.[6]
3. 예방
이러한 유형의 웜에 감염되는 사태를 방지하기 위해서는 보안패치 설치를 생활화해야 한다. 백신 엔진을 최신 상태로 유지하지 않는 것도 모자라 백신 자체를 아예 안 깔아놓는 것은 양반이고, 컴퓨터에다 윈도우 업데이트도 안 켜놓고 사용하는 사람들이 의외로 적지 않다.[7]네트워크 포트를 통해 침투하는 악성코드이므로 운영체제에 기본적으로 포함된 방화벽이 켜져 있었다면 1차적으로 충분히 방어가 가능한 악성코드였지만, 당시에는 Windows XP 서비스 팩 2가 아직 나오지 않았을 때였다. 서비스 팩 2 이전에도 기본 방화벽이 있긴 했지만 기본적으로 꺼져 있었고, 켜는 옵션도 아는 사람만 알 정도로 찾기 어렵게 숨겨져 있었다.[8] 또 당시에는 방화벽이라는 개념을 알지 못하는 사용자가 대다수였기도 했으니[9] 이후 서비스 팩 2가 나오면서 방화벽이 켜진 것이 기본 옵션이 되고, Windows Vista(2008)에서 사용자 계정 컨트롤이 도입되고, 매달 Windows Update를 통해 최소한의 웜과 악성코드를 제거할 수 있도록 '악성 소프트웨어 제거 도구'가 배포되는 등 사용자에게만 맡겨두었던 보안이 크게 향상되었다.
이 웜과 관련된 기술자료를 찾는다면 이곳에 들어가 보면 된다.
4. 관련 문서
[1] 다른 진단명으로는 W32.Blaster.worm, W32/Lovsan.worm, worm.Win32.Blaster.6176, Win32.HLLW.Lovesan.11296, WORM_MSBLAST.A Win32.IRC_Bot 등이 있으며, 백신 업체마다 다르다.[2] shutdown 명령어에서 -a는 abort 즉 중단하다는 의미이며, 시스템 종료를 중지시키는 옵션이다. 그러나 NT 4.0과 2000은 기본적으로 shutdown 명령어가 없기 때문에, 미리 XP나 서버 2003에서 shutdown.exe를 추출해서 옮겨놓은 게 아니라면 시스템 종료를 중지시킬 방법이 없다. 이럴 때는 무조건 안전 모드로 진입하거나 랜선을 뽑고 재설치를 끝내자마자 패치를 적용하는 수밖에 없었다. 2000은 그나마 9x 계열부터 도입된 안전 모드로 진입해서 패치를 적용한단 선택지라도 있지만, NT 4.0은 안전 모드가 없는 관계로 이미 이 웜에 감염당해버렸다면 사실상 랜선을 뽑고 재설치를 끝내자마자 패치를 적용 하는 것 말고는 손쓸 방법이 없다.[3] 블래스터 웜 내부를 헥스 덤프한 내용으로 다음과 같다. 각각 I just want to say LOVE YOU SAN!!(나는 그저 샌프란시스코를 사랑한다고 말하고 싶을 뿐이다!!), billy gates why do you make this possible? Stop making money and fix your software!!(빌 게이츠, 네놈은 왜 이게(해킹) 가능하도록 만드는가? 돈만 벌어댈 생각 그만하고 네놈들 소프트웨어나 개선해라!!)이다.[4] 2003년 당시에는 마이크로소프트는 악의 제국이며 빌 게이츠는 황제라는 이미지가 대중들에게 있었으며, 특히 XP 시대에서는 그 정점을 달했다.[5] 중요한 보안패치를 설치 미디어에 통합해두면 추후 제공되는 업데이트를 다운받아서 설치할 때 이미 알려진 보안 취약점을 통한 공격으로 인해 방해받거나 실패할 가능성을 조금이나마 줄일 수 있다.[6] 정확히는 비스타(2008)부터 11(~2022) 까지의 모든 NT 계열의 윈도우들이다.[7] 이 때문에 윈도우 10(2016~)부터는 보안 업데이트 뿐만 아니라 모든 업데이트를 사용자 자율에 맡겨서 설치하는 게 아닌 강제로 설치하도록 정책이 바뀌고 말았다. 이런 블래스터까지 올 필요도 없이 2017년에 터졌던 워너크라이와 리눅스 계열 한정으로 피해를 입힌 에레버스 등의 랜섬웨어가 창궐했던 사례를 보면 MS의 입장이 전혀 이해가 안 된다거나 하지는 않는다.[8] XP와 서버 2003(R2)에는 이러한 설정 화면 외에도 윈도우 2000의 TCP/IP 필터링 기능과 로컬 그룹/보안 정책(gpedit/secpol.msc)을 통한 IPSEC 필터링까지 혼재해 있었다가 비스타(2008) 부터는 TCP/IP 필터링 기능이 기본 방화벽 기능에 통합되어 IPSEC 필터링 기능만 남았다. 하지만 비스타부터는 기본 방화벽 기능으로 대체가 가능하기에 별 쓸모는 없어졌다.[9] 사실 NT 4.0 부터 방화벽 기능이 있긴 하지만 일반 사용자들의 입장에서는 PC에서의 방화벽이 무슨 역할을 하는 것인지, 더 나아가서 운영체제에 기본적으로 포함된 방화벽 기능이 있음을 알고 있다 하더라도 편집하는 것이 극히 어려워서 없는 것이나 다름없었다. 왜 일반 사용자들한테는 없는 기능이나 다름없다고 했는지는 앞 각주에 링크해둔 매뉴얼 캡처를 보면 알 수 있을 것이다.