컴퓨터 상식

악성프로그램 찾아 지우는 방법

천국생활 2008. 11. 28. 14:55

내 컴에 침입한 도둑을 잡아라

 

내 컴퓨터의 현재 보안상태를 점검할 수 있는 기본적인 도구에 대해서 알아보았다. 이번 연재에서는 점검결과 바이러스나 해킹 프로그램이 발견된 결과에 대한 조치방법을 알아보도록 한다. 즉, 지난 연재에서는 내 PC의 보안상태 및 해킹 프로그램 등의 침입 여부를 점검하는 방법을 알아보았다면, 이번 연재에서는 이미 나의 PC에 설치된 악성 프로그램을 찾아서 지우는 방법을 알아보도록 한다.

대부분의 바이러스 및 해킹 프로그램은 PC에 설치되면 공격자가 의도한 동작을 하기 위하여 공격자가 접속할 수 있는 통로를 만들거나, 공격자가 정보를 빼내갈 수 있는 통로를 만든다.

이 통로를 포트(port)라고 부르는데, 대부분의 PC점검도구들은 해킹 프로그램이 사용하는 것으로 의심되는 포트를 점검하는 기능이 있다. 이러한 포트를 만들어 놓은 해킹 프로그램 및 바이러스 파일을 찾아서 삭제하는 것이 기본적인 악성 프로그램의 치료 방법이다.

그렇다면 이러한 프로그램을 어떻게 찾아내고 해당 파일을 어떻게 삭제하는지를 알아보도록 하자.

먼저, 점검도구를 사용하지 않더라도 윈도우 운영체제에 기본적으로 사용되는 명령어를 이용하여 의심스러운 포트를 확인하는 방법을 알아보자. netstat 이라는 명령어를 이용하면 현재 내 PC에서 사용중인 포트를 확인할 수 있다.



[그림1] 도스 명령어 입력창 실행


[그림1]과 같이 자신의 컴퓨터에서 [시작] → [프로그램] → [보조프로그램] → [명령 프롬프트]를 실행시키면 [그림2]와 같은 도스 명령어 입력창이 나타난다.



[그림2] 도스 명령어 입력창


이 도스 명령어 입력창에 ‘netstat -na'라는 명령어를 입력하고 엔터를 눌러보자. [그림3]과 비슷한 출력결과가 나타나게 되는데, 각각의 의미를 알아보도록 하자.



[그림3] netstat 실행결과 예


 


Local Address란 내 PC의 주소를 나타내며, Foreign Address에 나타난 주소가 원격에 연결된 시스템의 주소를 나타낸다. 각각의 주소를 나타낸 부분을 보면 콜론(:) 표시 이후에 숫자가 표시되는데 이 숫자가 각 주소의 포트번호를 나타낸다.

즉, 아래와 같은 내용은 내 PC의 1116번 포트와 172.16.1.1 시스템의 1863번 포트 간의 데이터 연결이 이루어졌다는 것을 의미한다.

TCP 127.0.0.1:1116    172.16.1.1:1863    ESTABLISHED


여기에서 주의하여 볼 것은 결과 값의 상태(state)가 ‘ESTABLISHED' 또는 ’LISTENING'으로 표시되어 있는 항목들이다.

ESTABLISHED라고 표시된 항목은 이미 원격지의 시스템과 연결이 완료된 상태이며, LISTENING이라고 표시된 항목은 원격지 시스템과의 연결을 기다리고 있는 상태인 것이다. 이러한 항목 중 주소를 알 수 없는 원격지의 주소나 일반적으로 사용하지 않는 포트번호가 나타나면 해킹 프로그램 설치 또는 바이러스의 감염을 의심하여야 한다.

그러나, 이상의 방법을 통하여 의심스러운 데이터 통신을 발견하였다 하더라도 해당 포트를 사용하고 있는 프로그램 또는 파일을 찾아 삭제하기란 쉽지 않다. 따라서 다음과 같은 프로그램을 설치 이용할 것을 권장한다.

fport라는 프로그램은 무료로
http://www.foundstone.com에서 다운로드 받을 수 있으나, 이후 설명할 TcpView라는 프로그램보다 도스 명령어를 기반으로 한 프로그램이기 때문에 일부 사용자에게는 다소 사용이 불편하다는 단점이 있다.

일단 해당 프로그램을 설치하여 도스 명령어 입력창에서 해당 프로그램을 실행시키면 [그림4]와 유사한 결과가 나타나게 되는데, netstat 명령어 실행결과와 다른 점이 있다면 PATH라는 부분에 해당 포트를 사용하고 있는 프로그램 또는 파일명이 나타난다.

이러한 파일명 중 사용자가 실행시키거나 현재 사용중인 프로그램과 관계가 없는 프로그램이 나타나면 해당 파일을 검토하고 해킹 프로그램이라고 판단되는 경우 삭제하여야 한다.

다만 이 과정에서 주의하여야 할 점은 사용자가 직접 실행시키지 않은 경우에도 윈도우 운영체제가 자동으로 실행시키는 시스템 파일이 나타날 수 있다는 점이다. 다시 말해서, 반드시 웹 검색이나 전문가의 확인을 통해서 해당 파일의 삭제 여부를 결정하여야 한다. 시스템 파일이 삭제된 경우에는 운영체제의 정상적인 동작을 방해할 수 있다.



[그림4] fport 점검결과 화면


앞서 언급한 Tcpview라는 프로그램은 fport와 동일한 기능을 가지지만 윈도우 환경에서 실행 가능하기 때문에 사용하기에 좀 더 편리하다는 장점이 있다. 해당 프로그램은 http://www.sysinternals.com/ntw2k/source/tcpview .shtml에서 무료로 다운로드 받아 사용할 수 있다.



[그림5] TcpView 실행결과 예


 


때로는 위에 설명한 방법을 이용하여 찾은 파일을 삭제하려 하여도 이미 실행중이기 때문에 삭제가 불가능하다는 창이 나타나는 경우가 있는데, 이 현상은 운영체제가 실행될 때 자동으로 해당 악성 프로그램이 실행되도록 설정이 되어있기 때문이다.

이러한 경우에는 다음의 방법을 이용하여 수동으로 해당 파일을 삭제하도록 한다.

가장 먼저 시도해 볼 방법은 윈도우 운영체제의 ‘안전모드’를 이용하는 것이다. 운영체제를 처음 시작하는 과정에서 ‘F8' 기능키를 누르면 안전모드로 시작할 수 있는 선택화면이 나타나며, ’안전모드로 부팅‘을 선택하여 진행 후 해당 파일을 삭제 시도한다.

그러나, 이러한 경우에도 삭제가 불가능하면 레지스트리라 부르는 항목에서 해당 파일 실행 명령어를 먼저 찾아 삭제 후 파일을 삭제하도록 한다.

레지스트리를 수정하는 방법은 다음과 같다. [시작] → [실행] 하여 명령어 입력창에 regedit라는 명령어를 입력하고 엔터를 누르면, [그림6]과 같은 ‘레지스트리 편집기’라는 프로그램이 실행된다.



[그림6] 레지스트리 편집기 실행화면


이 프로그램에서 [편집] → [찾기] 또는 ‘Ctrl+F'를 이용하여 찾고자 하는 항목을 검색하여 오른쪽 창에 나타난 값을 삭제하면 레지스트리 삭제는 완료된다.

예를 들어, 삭제하고자 하는 해킹 프로그램 및 파일명이 hack.exe인 경우, 레지스트리 편집기 검색창에서 hack.exe라는 항목을 검색하여 레지스트리에서 삭제한 후, 재부팅 이후 해당 파일을 삭제하면 에러 메시지가 나타나지 않고 해당 프로그램을 완전 삭제할 수 있다.

이번 연재는 다소 어렵긴 하지만, 바이러스 백신 프로그램이 설치되지 않은 시스템 또는 신종 악성 프로그램에 대응할 수 있는 수동 치료법에 대하여 알아보았다. 일반 사용자에게는 다소 복잡 또는 어려울 수 있지만, 익혀두면 유용하게 사용될 수 있으므로 직접 설치 및 실행하여 볼 것을 권한다.

 

'컴퓨터 상식' 카테고리의 다른 글

더죤프로그램 알집으로  (0) 2010.07.23
인터넷 속도 올리기  (0) 2010.03.24
좋은 음악 가져오기  (0) 2008.11.28
지운 휴지통 살리기  (0) 2008.11.28
XP최적화 및 운영체제 팁 총정리  (0) 2008.11.28