2009년 7∙7 DDoS, 2011년 3∙4 DDoS 공격에 사용됐던 좀비 PC의 수량은 약 25만 대이다. 이들 좀비 PC는 공격 종료 시점에 하드디스크 및 파일을 손상시키면서 개인 사용자들에게도 큰 피해를 주었다. 이후 좀비 PC에 대한 관심이 확산되면서, 일반 PC에서 손쉽게 실행할 수 있는 netstat 명령어를 통해 자신의 PC가 좀비 PC인지 확인할 수 있냐는 문의가 늘고 있다. 그렇다면 과연 netstat 명령어를 통해서 좀비 PC인지 알 수 있을까? 일단 대답은 ‘Almost YES’다.
해커가 일반 사용자의 PC를 해킹하면 그 때부터 해당 PC는 해커에 의해 조종되는데, 마치 좀비처럼 의식 없이 조종된다 하여 '좀비 PC'라고 불린다. 해커는 이런 좀비 PC에 쉽게 접근하기 위하여 사용자 모르게 접속할 수 있는 백도어(Backdoor), 트로이목마(Trojan)와 같은 비밀문을 만들어 놓는다.
일반적으로 네트워크 통신을 하기 위해서는 통신 양단에 IP 및 포트(Port) 정보가 필요한데, 각 백도어 프로그램은 고유의 특정한 포트로만 접속하게 되어 있다.
사용자는 netstat 명령어를 통해 자신의 PC에서 열려 있는 포트 정보를 모두 알 수 있는데, 이때 해커가 설치한 백도어 프로그램이 있다면 이 프로그램의 포트 정보를 탐지한다. 즉, 사용자의 필요에 의해 정상적으로 열려 있는 포트 외에 사용자가 모르는 포트가 열려 있다면 해킹으로 의심할 수 있다.
하지만 일부 해킹은 좀비 PC의 포트를 통해 통신하지 않고도 백도어를 동작시킬 수 있다. 때문에 비정상적으로 열려 있는 포트 정보가 없다고 해서 자신의 PC가 100% 안전하다고 확신할 수는 없다. netstat 명령어를 통해 좀비 PC 확인이 가능한 지에 대한 대답이 'Almost YES'인 것은 바로 이 때문이다.
하지만 netstat 명령어는 일반 윈도우 OS 및 유닉스, 리눅스에 기본적으로 포함되어 있어 쉽게 실행시킬 수 있다. 또한 대부분의 백도어 프로그램의 비정상적인 포트 정보를 확인할 수 있기 때문에 좀비 PC 확인에 매우 유용한 방법임은 틀림없다.
이제 일반 윈도우 PC 기준으로 netstat 명령어의 사용법을 알아보겠다. 실제 netstat 명령어는 옵션에 따라 활성 TCP 연결, 컴퓨터 수신 포트, 이더넷 통계, IP 라우팅 테이블, IPv4/IPv6 통계 등 다양한 네트워크 정보를 표시하지만, 이번에는 좀비 PC 확인과 관련된 부분만 집중적으로 알아보겠다. netstat 명령어에 대해 자세히 알고 싶다면 [그림 1]과 같이 윈도우 OS에서 제공하는 도움말에서 netstat를 검색하면 된다.
[그림 1] 윈도우 OS의 도움말에서 netstat 검색
1. 명령 프롬프트(cmd) 실행 시작 => 프로그램 => 보조프로그램 => 명령 프롬프트를 실행한다(실행 경로는 OS에 따라 상이할 수 있다).
[그림 2] 명령 프롬프트(cmd) 실행 화면
2. netstat -na 명령어 실행 화면 명령 프롬프트에서 netstat –na 명령어를 실행한다. ‘-a’ 옵션은 연결된 혹은 연결을 기다리고 있는 모든 포트를 보여주는 옵션이다. ‘-n’은 컴퓨터 이름 대신 IP 주소가 보이도록 하는 옵션으로, 좀비 PC 확인 시에는 이 두 옵션을 반드시 같이 사용해야 한다.
[그림 3] PC 부팅 후 netstat –na 실행 화면
[그림 3]은 PC 부팅 후 바로 netstat –na 명령어를 실행한 화면으로, 아직 인터넷에 접속하지 않았기 때문에 윈도우 OS에서 사용하는 기본 포트 정보만 보인다.
각 칼럼별 설명은 다음과 같다.
① Proto - 프로토콜(TCP 또는 UDP) 이름을 표시한다. - 일반적으로 사용자가 사용하는 프로토콜은 TCP이거나 UDP다. ② Local Address(로컬 주소) - 사용자 PC의 IP 주소와 포트 정보를 표시한다. - [그림 3]의 '0.0.0.0 ', '127.0.0.1'은 모든 PC에서 공통적으로 나타나는 정보이며,
'172.20.10.3'은 이번 실습에 사용된 PC의 IP 정보다. - IP 정보 이후의 ':숫자'는 인터넷을 하거나 외부에서 PC에 접속하기 위해 필요한 포트 정보로
‘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가 해당 포트 정보를 통해 외부에서 접속할 수 있도록 열려 있다는 의미이다. - [그림 3]의 경우 TCP 135, 445, 139 포트가 외부에서 접속할 수 있도록 열려 있다는 의미이다.
3. 정상적인 PC의 netstat -na 실행 화면
[그림 4] 인터넷 접속 후 netstat –na 실행 화면
인터넷에 접속 후 netstat -na 명령어를 실행하면 [그림 4]의 노란 박스와 같이 정상적으로 네트워크의 ESTABLISHED(연결 활성) 및 TIME-WAIT(연결 종료) 상태 정보를 확인할 수 있다. 인터넷에 접속하는 횟수가 많을수록 ESTABLISHED 및 TIME-WAIT 상태를 가진 정보가 많아진다. 좀비 PC 확인을 위해서 가장 중요하게 살펴볼 부분은 LISTENING(접속 대기) 칼럼에서 보이는 정보이다. 정상적인 PC의 경우 [그림 4]의 빨간 박스와 같이 시스템에서 사용하는 포트(TCP 135,445,139 등)만 LISTENING(접속 대기) 상태여야 한다. 하지만 백도어 프로그램에 감염된 좀비 PC의 경우 그 외의 비정상적인 포트가 열리게 된다.
4. 좀비 PC의 netstat -na 실행 화면
[그림 5] 좀비 PC의 netstat –na 실행 화면
[그림 5]는 실습 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가 이유 없이 느려지거나 오작동하는 등의 이상 징후가 있을 경우, netstat 명령어는 손쉽게 자신의 PC가 좀비 PC인지 확인할 수 있는 자가 진단법이다. 하지만 netstat 실행 정보만을 가지고 100% 확신하는 것은 금물이다. 좀비 PC 예방을 위해 가장 효과적인 방법은 윈도우 업데이트를 주기적으로 실행하고, V3와 같은 안티바이러스 프로그램의 실시간 감시 기능 사용 및 최신 업데이트를 생활화하는 것이다. 아울러, 한국인터넷진흥원이 운영하는 보호나라(www.boho.or.kr)나 안랩 홈페이지(www.ahnlab.com)에 정기적으로 접속하여 최신 보안 정보를 숙지하는 것도 좋은 방법이다.@ |