2000년대 초에 유행했던 블래스터 웜[1] 악성 코드. 감염되면 무작정 시스템 종료 메시지를 뿌리는 것으로 악명 높았다.[2] |
[clearfix]
1. 개요
Worm악성코드(Malware)의 감염 방식 중 하나로, 웜은 여러 단말기에 분산되어 퍼져 그 단말기들이 연결된 네트워크 전체를 감염시킨다. 최근에는 악성코드 대부분이 네트워크 연결을 기본으로 트로이 목마의 위장 기능과 바이러스의 증식 기능을 탑재하기에 웜과 다른 악성코드를 칼같이 구분하지 않는다.
2. 역사
웜은 1988년 로버트 모리스가 처음 만들었다. 웜의 시초는 1970년대 말까지 거슬러 올라간다. 처음 나왔을 때는 컴퓨터의 자료를 직접적으로 파괴하기보다는 컴퓨터 안에서 무한정 증식하면서 컴퓨터의 메모리나 CPU 등 자원을 잡아먹음으로써 이용에 지장을 주는 장난성 악성코드로 자주 쓰였다.하지만 네트워크 전체를 공격한다는 특징 때문에 사이버 공격 도구로의 가치가 크게 주목받게 되면서 가장 위협적인 악성코드로써 전통적 악성코드 3종 분류 중 거의 유일하게 살아남은 분류로써 막대한 피해를 일으켜오고 있다.[3]
워낙 대단한 성능(?)을 가진 악성코드 방식이다보니 요즘은 블래스터 웜 마냥 일반 사용자들을 공격하는 사례는 거의 보기 힘들고, 대부분 기관 단위로나 볼 수 있게 되었다. 또한, 네트워크 상에서 구현되는 만큼 네트워크 관리자의 감시를 피해야하기 때문에 웜 하나 만들어서 대충 뿌려 사용하는 경우가 매우 드물어졌으며, 사회공학적 기법을 동원해 잠복 하면서 적절한 시점에 작동시켜 피해를 극대화 시키는 소위 APT 기법으로 사용되는 경우가 대부분이다.
작정하고 만든 웜은 암거래에서 개당 수억원은 그냥 넘어가는 제로 데이 취약점을 잔뜩 투입해서 굴릴 만큼 귀하신 몸이라 일반인이 볼 일은 사실상 없으며 기관의 보안 관리자도 평생 한두번 보기 힘들 정도이다. 물론, 랜섬웨어로 굴리려고 만든 웜은 일반인도 잊을만 하면 만날 수 있긴 하다.
대표적으로 스턱스넷이 정부 단위에서 사이버 공작을 위해 만든 웜이며, 그나마도 원래 이란의 핵 시설 내부에서만 있던 것이 알 수 없는 이유로 외부에 유출되면서 공개된 사례이다. 원래 외부에 유출되면 안 되는 악성코드였기 때문에 오죽하면 이스라엘의 모사드가 이란 핵 개발에 대한 미국의 소극적 대응에 불만을 느껴 고의적으로 유출시킨 것이라는 카더라가 돌았을 정도.
3. 기능 및 피해
웜은 일반적인 바이러스와 달리 네트워크를 사용하여 스스로 복사본을 전파할 수 있다. 이들은 또한 자기 복제를 이용하여 네트워크를 손상시키고, 파일 등을 악의적으로 암호화한다. 일부 웜의 경우 악성 백도어 프로그램을 유포하기도 한다.네트워크를 통해 전파되기에 과도한 네트워크 트래픽을 유발시킨다. 웜이 전 세계 네트워크로 퍼질 경우 심각한 속도 저하 또는 마비가 우려될 수도 있다. 백도어를 유포시키는 웜의 경우 추가적인 좀비 PC 양산 등의 피해를 낳기도 한다.
다음은 마이크로소프트에서 제공하는 웜 감염 사례와 예방책을 다이어그램화한 것이다.
출처: Microsoft |
4. 감염 경로
주요 감염 경로는 E-Mail, 공유 폴더, 특정 네트워크 포트 등이 있다. 특히 운영체제의 보안 취약점을 이용하는 경우가 많으니 백신을 설치하는 것 외에도 보안 패치가 나올 때마다 꼬박꼬박 설치하는 것이 매우 중요하다.5. 기타
2008년 마이크로소프트에서 Windows Update를 웜 방식으로 도입 하려다가 비판을 받고 이를 철회한 사건이 있었다.#[4]미국이 이라크를 두들겨 팬 1991년 걸프 전쟁에서, 이라크에 수출된 HP 프린터에 웜을 심어서 웜이 이라크 군부 내의 컴퓨터들에게 퍼졌으며, D-day 전날 웜이 모든 감염된 컴퓨터들을 먹통을 만들어서 방공망을 무력화시키는데 일조를 했다는 이야기가 굉장히 그럴듯하게 퍼져 있으나, 사실이 아니다. 해당 이야기는 1991년 4월 1일, 만우절 장난으로 인포월드라는 매체에 실렸던 내용이 너무 그럴 듯하다 보니 와전되어 퍼져 나간 것.[5]
'웜'이라는 용어는 존 브루너의 1975년작 SF 소설 쇼크웨이브 라이더에서 처음으로 등장했다.
6. 관련 문서
[1] 진단명 Win32/Blaster.worm[2] 이유는 RPC(Remote Procedure Call; 원격 프로시저 호출) 버퍼가 데이터의 크기를 검사하지 않는다는 허점을 이용해서 RPC버퍼를 꽉 채워 과부하를 일으키고 강제 재부팅을 일으키는 원리다. 그리고 윈도우즈는 과부하로 다운된 RPC버퍼를 되돌리기 위해 재부팅을 해야하기 때문.[3] 참고로 전파 방식으로써 현 시점에 가장 활발한 것은 트로이 목마이다. 웬만한 바이러스는 백신 프로그램으로 걸러지고 웜은 방화벽으로 걸러지는데 트로이 목마는 사용자가 잘못해서 설치되는 것이기 때문.[4] 다만 이런 아이디어는 리처드 도킨스 역시 진지하게 고려하고 있었다. 더 나아가 미래에는 웜과 호환되는 운영체제만이 살아남을 것이라고 내다보기도 했다. (도킨스의 저서 'Devil's Chaplain'에서) 물론 도킨스는 과학자 겸 과학 저술가이지 컴퓨터 공학자가 아니라서, 이것은 일종의 상상력 발휘 정도일 뿐이지만.[5] 이란에 웜을 풀어서 핵 시설을 사보타주하고 핵개발을 늦춘 적은 있다. 스턱스넷 문서 참조.