지식인을 하면서 가장 많이 접하는 질문이면서, 몇가지 보안 유언비어를 손으로 꼽자면 그 중에서 del usp10.dll lpk.dll imm32.dll /a /s 명령어를 이용한 악성코드 치료법 아닐까 싶습니다. cmd 명령어를 이용한 바이러스 치료방법 이라는 각종 유언비어들이 퍼지기 시작하면서 정확하게 알지 못해 컴퓨터 고생하는 상황이 무엇인지 새삼 느꼈습니다.
이번 포스팅에서는 이 유언비어의 문제점에 대해 조목조목 따져보겠습니다.
< 파일이 지워지지 않는다면 강제로 삭제하라? >
del usp10.dll lpk.dll imm32.dll /a /s 명령어는 명령 프롬프트상에서 작동하는 명렁어로써 드라이브내의 usp10.dll 파일과 lpk.dll과 imm32.dll 을 삭제하는 명령어 입니다. 이것이 왜 악성코드 치료방법으로 부각되고 있는 것일까요?
본론으로 들어가기 전 유언비어에서 주장하는 내용에 대해 알아보자면 "컴퓨터에는 기본적으로 usp10.dll 파일과 lpk.dll 파일이 특정 갯수로만 있으며, 이 갯수보다 많게 동일 파일이 존재하면 바이러스에 감염된 것으로 볼 수 있으며, 반드시 특정 갯수 외에 usp10.dll 과 lpk.dll은 삭제해야 한다. 어차피 강제로 삭제하는 과정에서 정상파일은 액세스 거부 메세지와 함께 삭제되지 않으므로 악성파일만 삭제된다." 라는 주장입니다.
이러한 유언비어가 시작된 발단은 게임계정정보를 전문적으로 탈취하는 OnlineGameHack 악성코드의 출현으로 해당 악성코드에 대해 여러 치료방법이 주목을 끌게 되었고, 거기서 나온 것이 OnlineGameHack 이 usp10.dll 파일과 lpk.dll 파일을 변조한다는 주장이였습니다. 실제로도 초창기 OnlineGameHack 악성코드는 마치 정상적인 시스템파일인 것으로 위장하기 위해 정상 시스템파일을 악성 파일로 변조시켰고 그 중에 usp10.dll 파일과 lpk.dll 이 포함되어 있었습니다.
usp10.dll 과 lpk.dll은 여러 프로그램들을 구동하기 위해서 반드시 필요한 것이기 때문에 윈도우마다 기본적으로 설치가 되어 있습니다. 이런 역할을 하는 정상 시스템파일의 이름을 악성코드가 자신을 감추는데 악용을 한 것입니다.
< usp10.dll 을 찾을 수 없어 프로그램이 실행되지 않는다는 질문 >
문제는 'usp10.dll 과 lpk.dll 을 감염시키는 악성코드가 있다' 라는 내용의 정보를 접한 네티즌들은 곧 'usp10.dll과 lpk.dll 은 악성코드임으로 삭제해야 한다' 라는 잘못된 결론에 도달하게 되었고, 결론적으로 삭제할 수 있는 usp10.dll과 lpk.dll 파일을 모두 삭제하는 명렁어를 배포하기 시작했습니다. 정상파일로써 이용되며 매우 중요한 파일이라는 사실은 철저히 가려졌습니다.
실제로 처음에 보안 업계에서 제시한 올바른 치료법은. 자신의 바이러스 감염 사실이 확실하나 백신을 통해 치료할 수 없는 상황이라면 수동으로 dll파일을 제거하고 정상 dll 파일로 바꾸는 것이었습니다. 네티즌은 삭제절차 이후에 dll 파일을 정상파일로 교체해야 된다는 사실을 쏙 빼 놓고 무작정 제거만 한 것입니다.
만약 교체 절차가 빠진다면 어떤 상태가 될까요? 수동으로 감염파일이 제거 되었으나, 정작 프로그램 실행에 필요한 정상 dll 파일 또한 없는 상태가 된 것입니다. 이 경우 당연히 시스템이나 프로그램 상에서 오류가 나타날 수 밖에 없습니다. 즉, 삭제 뿐만 아니라 정상 파일의 dll 파일로 교체해야 하여야 비로소 올바른 치료방법으로 볼 수 있다는 것입니다.
< 포스팅 중인 내 컴퓨터에는 usp10.dll 과 lpk.dll 파일이 17개나 있네? >
유언비어 내에서 주장하는 dll 파일 갯수에 대해서도 문제가 있습니다. usp10.dll 이나 lpk.dll 등 수 많은 dll 파일들은 프로그램마다 필요에 의해 별도의 수정본을 만들어 프로그램 각 폴더에 따로 저장하는 경우가 비일비재 합니다. 컴퓨터 내부에는 프로그램 환경에 따라 같은 이름의 여러 갯수의 dll 파일이 존재할 수 있기 때문에 콕 찝어 몇개 이상의 dll 파일이 있으면 비정상이다! 라고 이야기하는 것은 잘못 된 주장입니다.
결정적으로 해당 dll을 악용하는 OnlineGameHack 악성코드는 별도의 usp10.dll 과 lpk.dll 을 파일을 추가로 생성하여 사용하는 것이 아니라, 기존의 usp10.dll 파일과 lpk.dll 파일을 이용하는 것이기 때문에 악성코드가 감염되었다고 해서 전체적인 usp10.dll, lpk.dll 파일 갯수는 절대로 변하지 않습니다.
< 이미 예전(2010년)에 유행했던 바이러스임을 확인할 수 있다 >
이 유언비어의 또 다른 문제점은 악성코드가 매일매일 새롭게 변하고 있다는 것입니다. 즉, 감염되는 시스템 파일이 점차 시기에 따라 변하고 있다는 것인데, 최근에 나오는 악성코드는 기존의 usp10.dll 과 lpk.dll 이 아닌 다른 dll 파일을 감염시키고 있다는 사실을 반드시 알고 계셔야 합니다.
이것이 왜 문제냐? 라고 생각하실 수 있습니다. 더 이상 악성코드가 usp10.dll 과 lpk.dll 을 이용하지 않게 되면서 기존의 수동 삭제방식을 이용하여 삭제해버릴 경우에 정상적인 dll 파일을 삭제해버릴 수 있다는 것입니다. 질병에 비유를 하자면, 새로운 형태의 바이러스가 감염되었으나 과거에 사용하던 약을 이용해 치료를 시도하다 몸이 망가지는 것입니다.
특히나 바이러스에 감염이 되었는지 되지 않았는지 정확하게 알지도 못한 채로 무작정 파일을 삭제해 버리는 사용자들이 많은 것으로 볼 때 애꿎은 정상파일만 삭제하게 될 가능성이 매우 높습니다.
netstat 포스팅 이후로 거듭 강조드리지만 되도록이면 이러한 바이러스는 백신을 이용해 치료해주십시오. 인터넷 상에 돌아다니는 각종 보안지식 중에는 허위로 작성되거나 전혀 근거가 없거나 이번 유언비어처럼 중요한 내용이 빠져있어 시스템에 치명적인 타격을 줄 수 있는 정보가 많습니다. 특히나 이번 유언비어는 시스템파일을 조작하는 만큼 단순히 프로그램 구동 불가를 넘어서 부팅 불가까지 초래할 수 있고, 실제 사례도 있다는 점을 명심하십시오.
백신에서도 대부분의 OnlineGameHack 바이러스를 진단/치료가 가능한 만큼, 바이러스를 치료한다고 신뢰를 할 수 없는 유언비어를 듣기보다는 비교적 신뢰있는 백신 프로그램을 이용하는 것이 확실하고 안전한 바이러스 치료가 될 수 있습니다.