요즘 깊이 반성해야 할 일이 좀 생겨서, 매주 하나씩 착한 일을 하기로 했다. 그 중에 첫번째로 악질적인 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