토요일, 2월 14, 2009

[B급 프로그래머] USB 자동 실행 바이러스랑 한판...

요즘 깊이 반성해야 할 일이 좀 생겨서, 매주 하나씩 착한 일을 하기로 했다. 그 중에 첫번째로 악질적인 USB 자동 실행 바이러스랑 한판 붙은 이야기 좀 해야겠다. 인터넷을 뒤져도 딱히 제대로 된 설명이 없어서 많은 분들이 고생하는 듯이 보이는데, 백신 안 쓰고(아니 쓸 백신도 없다...) 소탕하는 방법을 정리하겠다.



USB 자동 실행 바이러스는 USB 메모리에 옮은 바이러스가 USB 메모리를 꽃는 순간 자동 실행(autorun.inf) 되면서 감염되는 특징이 있다. 따라서 쥐도새도 모르게 감염되며, USB 메모리가 돌아다니는 모든 컴퓨터에 피해를 미친다는 측면에서 파괴력이 아주 강하다.



걸렸을 경우 나타나는 증상은 제각각이지만 숨김 파일 설정을 바꾸지 못하는 현상이 공통적이라고 생각한다. 백업 등을 위해 숨김 파일 속성을 디렉터리에 걸어놓은 분들은 아주 곤란한 상황을 맞이한다. 탐색기 옵션에서 숨김 파일 보기를 켜도 바로 꺼져버리기 때문이다. 물론 이는 표면적으로 드러나는 현상이고 이유없는 IE 멈춤, 탐색기 종료 등과 같은 문제가 펑펑 터지므로 상당히 머리가 아파진다. 게다가 다른 USB 메모리도 감염시켜버리니 회사에 한번 퍼지면 대책이 없다.



여기서 더 큰 문제는 기존 백신이 제공하는 실시간 바이러스 점검을 가볍게 뚫고 지나가버린다는 사실이다. V3나 카스퍼스키 백신도 이를 감지해내지도 못했고 발견하지도 못했고 찾아내지도 못했다. 일부 USB 메모리 전용 백신이 있긴 하지만 역시 변종이 하도 많아서 맥을 추지 못하는 상황이다. attrib 명령으로 속성을 바꾼 다음에 루트 디렉터리에 존재하는 autorun.inf과 여기서 수행하는 .cmd 파일 등을 찾아내어 지우긴 하지만, 사라졌다고 생각하는 순간 곧바로 등장한다. 안전모드 부팅조차도 무기력한 결과를 보여준다. 게다가 프로세스 탐색을 하려고 작업 관리자를 열어서 살펴봐도 안 드러난다. 시스템 서비스에도 등록되어 있지 않은 상황이다. 여기서 진짜 절망을 느낀다.



자, 그렇다면 어떻게 범인을 찾아낼까? 우선 준비물은 루트킷 탐색 도구인 icesword다. icesword를 띄워서 startup을 살펴보는 도중에 아주 이상한 프로그램이 하나 존재한다는 사실을 확인했다. 바로 kvasoft가 만든 kva8wr.exe 파일이다. 파일 설명을 보면 대충 어떤 짓을 하는지 알 것이다(변종이 하도 많아서 정확하지는 않다). 이 파일은 윈도우32 디렉터리에 존재하며, 아까 말한 아주 기가막힌 현상을 초래하는 주범이다. nprotect 때문에 잉카인터넷을 야단 많이 쳤는데 이번에는 도움을 줘서 고맙다는 인사를 남긴다.



이 파일을 지울 수 없다는 사실을 알기에(지우려고 시도하면 그야말로 온갖 장애물을 극복해야 한다), 잠깐 동안 생각하다가 좋은 방법을 하나 찾아내었다. 바로 윈도우 98 멀티 부팅이다. 예전에 설치되어 사용하지 않는 윈도우 98을 소환해서 잠깐 부팅하면 숨김 파일도 볼 수 있고 kva8wr.exe도 지울 수 있으리라... 예상대로 윈도우 98로 부팅하니(파일 시스템이 NTFS가 아니라 FAT32이라는 사실에 감사하자! 만일 NTFS라면 리눅스 멀티 부팅 + ntfs3g 설치가 필요한데 문제는 kva8wr.exe가 NTFS 속성 일부를 이상하게 바꿔놓아 문제가 될 가능성도 있다는 사실이다. 실제로 맥에서 외장 디스크로 열어봤는데, 디렉터리가 하나도 안 보이는 문제점이 있었고, 이는 리눅스에도 유사한 현상이 발생할지도 모른다는 사실을 암시한다. 혹시 이런 식으로 성공한 분이 있으면 다른 분들을 위해 바로 댓글을 달아주시면 감사하겠다.) 문제 파일이 모습을 보인다. 두 번 생각하지 않고 삭제! 만일 동일 윈도우 운영체제를 탑재한 PC가 두 대 있고(한 대 노트북), 외장 HDD가 있다면 문제 HDD를 외장 HDD에 담아서 꽃은 다음에 파일을 삭제해도 무방하다. 단, 반드시 두 번째 정상 PC에서는 USB 자동 실행을 막아야한다.



그리고 정상으로 부팅한 다음에 빈마음님께서 만드신 anti-AutorunVirus로 찌거기를 제거한 다음에, 레지스트리 편집기를 열어서 kva8wr.exe를 검색해서 run 항목에서 제거하자.



하지만 여전히 숙제가 하나 남아있다. 윈도 탐색기 옵션에서 숨김 파일 보기 옵션을 켜도 꿈쩍도 하지 않는 문제는 없어지지 않는다. 최종적으로 해결을 위해 레지스트리를 잠시 살펴보다가 아주 흥미로운 항목을 찾아내었다. 다음 그림을 살펴보자.





SuperHidden Policy 항목을 보면 뭔가 감이 올 것이다. 바로 이 항목을 보고 윈도우 탐색기가 숨김 옵션 설정 변경을 막아버린다. 해결책은 간단하다. 그냥 SuperHidden을 바로 삭제해버리면 끝난다. 삭제 후 탐색기로 가서 숨김 옵션을 바꿔보면 제대로 동작한다.



여러분 환경에 따라 여기 나온 내용이 100% 맞지는 않을 것이다. 하지만 본 내용은 유용한 도구와 점검 포인트를 제공하므로 필요에 따라 충분히 응용이 가능하리라는 생각이다. 지금 이 글을 보자마자 바로 USB 자동 실행을 끄기 바란다. 이 기능을 많이 사용하시는 분들께서 조금 불편해도 바이러스 걸려서 몇 시간 날리는 상황보다는 나을테니까...



그러면 다음 주에도 반성하는 의미에서 독자 여러분에게 도움을 줄만한 내용으로 찾아뵙겠다.



추가: 만일 바이러스 치료 후에 SuperHidden을 삭제했음에도 불구하고 계속해서 파일 숨김 옵션을 바꾸지 못한다면 추가적인 레지스트리 변경을 고려해보기 바란다.



엄청난 힌트: 손놀림이 빠르다면...

c:\>attrib -r -h -s c:\windows\system32\kva8wr.exe 명령 직후
c:\>del c:\windows\system32\kva8wr.exe 명령을 내린 다음에 바로 컴퓨터를 재시작하자. 그러면 외장 하드를 붙이고 뗄 필요도 없다.



EOB

댓글 6개:

  1. 이놈들이 해결책이 있었네요. 그동안 딱히 제대로 치료해주는게 없길래 걸리면 포맷하고 주변에도 그냥 속편히 포맷하라고 했었습니다.

    추가적으로, 예방을 위해서 USB나 하드디스크 들에 autorun.inf 를 별도로 사용해야 할 이유가 없다면 디렉토리를 만들어두면 최소한 내가 퍼트리게 되는 일은 없습니다.

    그리고 attrib +a +r +s +h 정도로 특성을 추가해주고 들고다니면 됩니다.
    이런 짓을 모든 드라이브에 해주는 간단한 프로그램들도 있구요.

    아무튼, 나중에라도 도움이 되는 글 감사합니다. :)

    ps: 카스퍼스키2009 에서 차단되었던걸로 기억합니다. 노턴2009에선 바로 걸렸던 걸로 기억하구요.
    두 PC 다 자동실행 쪽은 윈도우 기본값이었습니다.

    답글삭제
  2. 회사 PC에서 감염되었는데 V3로 겨우 무력화 했습니다. 저는 비교적 초기 변종이라 안전모드에서 어찌어찌 일시적인 처방이 가능한 것으로 여겨집니다. (몇 주 있으면 되살아나더군요.)
    하지만 이 바이러스 특징을 검색해 보니 루트킷 기능도 있다고 하여 결국 OS 재설치만이 해결책이 될 듯 합니다.
    업무상 가끔 남의 USB를 사용해야 할 때가 있는데 재감염 되지 않을까 걱정입니다.

    답글삭제
  3. 담부터는 usb 드라이브를 연결하실 때 왼쪽 쉬프트를 누르고 연결하세요 (자동 실행을 방지해줍니다.)

    그리고 내 컴퓨터에서 해당 드라이브를 클릭하지 마시고 해당 드라이브를 선택한 뒤 마우스 오른쪽 버튼을 누른 뒤 탐색 을 눌러서 탐색해세요.

    이것만 지키면 오토런이 실행되지 않습니다.

    답글삭제
  4. autorun 관련 팁을 드리려고 했는데 정태영님께서 미리 말씀해 주셨네요..
    USB 메모리 바이러스는 참 교묘하고도 매 번 귀찮게 하는 멀웨어죠..^^

    답글삭제
  5. 이것때문에 납품한 장비가 오동작을 해서 대만에 출장까지 갔었드랬지요 ㅠㅠ
    제 경우는 이름이 KAVO 였는데, 대만의 엔지니어가 Pc-cillin for kavo 라는 프로그램을 구해줘서 이걸로 한방에 치료했었습니다. 이 녀석은 바이러스프로그램과 같은 이름을 가지는 폴더를 생성시켜서 리부팅하면 이 폴더가 열리도록 하는 방법을 쓰더군요.
    물론 변종에 따라 다르겠네요~

    답글삭제
  6. 흰트 : 손놀림이 빠르다면... 을 보고 생각난겁니다만

    명령프롬프트 두개를 띄워두고 미리 입력한다음 엔터...엔터...

    ㅡㅡ

    답글삭제