PC가 이유 없이 느려지거나 오작동하는 등의 이상 징후가 있을 경우, netstat 명령어로 손쉽게 자신의 PC가 좀비 PC인지 확인할 수 있는 자가 진단법을 소개합니다. 하지만 netstat 실행 정보만을 가지고 100% 확신하는 것은 금물입니다 .
1. 명령 프롬프트(cmd) 실행
시작 => 프로그램 => 보조프로그램 => 명령 프롬프트를 실행한다.
*실행 경로는 OS에 따라 상이할 수 있다.
[그림 1] 명령 프롬프트(cmd) 실행 화면
2. netstat -na 명령어 실행 화면
명령 프롬프트에서 'netstat -na' 명령어를 실행한다. ‘-a’ 옵션은 연결된 혹은 연결을 기다리고 있는 모든 포트를 보여주는 옵션이며, ‘-n’은 컴퓨터 이름 대신 IP 주소가 보이도록 하는 옵션으로, 좀비 PC 확인 시에는 이 두 옵션을 반드시 같이 사용해야 한다.
[그림 2] PC 부팅 후 netstat -na 화면
[그림 2]는 PC 부팅 후 바로 netstat -na 명령어를 실행한 화면으로, 아직 인터넷에 접속하지 않았기 때문에 Windows OS에서 사용하는 기본 포트정보만 보이고 있다.
각 칼럼별 설명은 다음과 같다.
① Proto
- 프로토콜(TCP 또는 UDP) 이름을 표시한다.
- 일반적으로 사용자가 사용하는 프로토콜은 TCP이거나 UDP다.
② Local Address(로컬 주소)
- 사용자 PC의 IP 주소와 포트 정보를 표시한다.
- [그림 2]의 '0.0.0.0 ', '127.0.0.1'은 모든 PC에서 공통적으로 나타나는 정보이며, '172.20.10.3'은 이번 실습에 사용된 PC의 IP 정보다.
- IP 정보 이후의 ' :번호'는 인터넷을 하거나 외부에서 PC에 접속하기 위해 필요한 포트(Port) 정보로 ‘135, 137, 138, 139, 445’는 모든 PC에 공통적으로 나타나는 정상 포트 정보이다.
③ Foreign Address(외부 주소)
- 사용자 PC와 네트워크로 연결된 원격 컴퓨터의 IP 주소와 포트 번호를 표시한다.
- 해커가 백도어를 통해 비정상적으로 사용자 PC에 접속할 경우, 해당 외부주소가 바로 해커가 사용하는 IP 정보이다.
④ State
- ESTABLISHED / LISTENING / TIMED_WAIT 등 다양한 상태를 표시한다.
- ESTABLISHED(연결 활성) : 사용자 PC와 원격 PC가 현재 네트워크 통신을 하고 있다는 의미([그림 3] 참조).
- TIME_WAIT(연결 종료) : 이미 해당 사이트와 연결이 종료되었거나 다음 연결을 위해 기다리는 상태라는 의미이다.
- LISTENING(접속 대기) : 사용자 PC가 해당 포트정보를 통해 외부에서 접속할 수 있도록 열려 있다는 의미이다.
- [그림 2]의 경우 TCP 135, 445, 139 포트가 외부에서 접속할 수 있도록 열려 있다는 의미이다.
3. 정상적인 PC의 netstat -na 화면
[그림 3] 인터넷 접속 후 netstat -na 화면
인터넷에 접속 후 netstat -na 명령어를 실행하면 [그림 3]의 노란 박스와 같이 정상적으로 네트워크의 ESTABLISHED(연결 활성) 및 TIME-WAIT(연결 종료) 상태 정보를 확인할 수 있다. 인터넷에 접속하는 횟수가 많을수록 ESTABLISHED 및 TIME-WAIT 상태를 가진 정보가 많아진다.
좀비 PC 확인을 위해서 가장 중요하게 살펴볼 부분은 LISTENING(접속 대기) 칼럼에서 보이는 정보이다. 정상적인 PC의 경우 [그림 3]의 빨간 박스와 같이 시스템에서 사용하는 포트(TCP 135,445,139 등)만 LISTENING(접속 대기) 상태여야 한다. 하지만 백도어 프로그램에 감염된 좀비 PC의 경우 그 외의 비정상적인 포트가 열리게 된다.
4. 좀비 PC의 netstat -na 화면
[그림 4] 좀비 PC의 netstat -na 화면
[그림 4]는 실습 PC를 백도어 프로그램에 감염시킨 후 netstat -na 명령어를 실행한 화면으로, 비정상적인 포트 '12345 , 12346'이 열려있는 것을 볼 수 있다. 해커는 이를 통해 좀비 PC에 자유롭게 접속하여 임의로 해당 PC를 조정하거나 개인정보 등을 빼갈수 있다.
일반적으로 사용자 PC는 모두 사용자가 먼저 통신을 요청하기 때문에 특별한 경우가 아니라면, 시스템에서 사용하는 기본 포트 외에는 열려져 있는 포트(LISTENING 상태의 포트 정보)가 없어야 한다.
* 8080 포트
일부 언론에서 netstat 실행 화면에서 포트 정보 '8080' 이 보일 경우 좀비 PC일 가능성이 높다는 기사를 내보냈다. 하지만, 8080 포트는 인터넷을 사용 시 중계 역할을 하는 프록시 서버 등에서 일반적으로 사용하는 포트기 때문에 8080 포트가 보인다고 무조건 좀비 PC라고 단정지을 순 없다. 단, LISTENING(접속 대기)상태에서 8080 포트가 보인다면 사용자 PC에 웹 후킹(가로채기) 프로그램이 실행되고 있을 가능성이 있으므로 반드시 확인이 필요하다.
5. 좀비 PC를 방지하려면
백도어 프로그램마다 사용하는 포트 정보는 모두 다르지만, 검색 엔진에서 'trojan port list' 키워드로 검색하면 알려진 백도어 프로그램에서 사용하는 포트 정보를 어느 정도는 확인할 수 있다. 하지만 신종 및 변종 백도어 프로그램에서 사용하는 포트 정보까지는 확인할 수 없기 때문에 시스템에서 사용하는 기본 포트 정보(135, 137, 138, 139, 445 등) 외에는 정상적으로 사용되는 프로그램인지 확인이 필요하다.
좀비 PC예방을 위해 가장 효과적인 방법은 윈도우 업데이트를 주기적으로 실행 하고, V3와 같은 안티 바이러스 프로그램의 실시간 감시 기능 사용 및 최신 업데이트를 생활화, 출처가 불분명한 메일은 읽지 말고 바로 삭제 하는 것이다. 아울러, 한국인터넷진흥원이 운영하는 “보호나라(www.boho.or.kr)”나 “안철수 연구소(www.ahnlab.com)”사이트에 정기적으로 접속하여 최신 보안정보를 숙지하는 것도 좋은 방법이다.