웹서핑을 과도하게 즐기거나(?) 불법SW 다운로드 등을 하다보면 PC가 갑자기 느려질 때가 있다.
백신도 설치되어 있고 Windows 방화벽도 실행중이고 나름 악성코드 감염에도 주의를 한다고 자부하지만 보안과 관련된 일을 하다보니 가끔은 해커(?)들이 드나드는 웹사이트를 방문하거나 출처가 불분명한 다양한 프로그램들을 설치하게 되는데.. 이따금씩 악성코드에 감염된 것이 아닌가 하는 직감이 들 때가 있다.
그럴때 가장 쉽게 악성코드 감염여부를 확인하는 방법을 소개한다. 아마도 컴알못이거나 초보자들에게는 도움이 될 것이라고 생각된다.
먼저 윈도의 시작버튼(Windows 10 기준 창모양)을 클릭한다.
윈도 창모양의 버튼(시작)을 누르면 나오는 돋보기가 있는 입력창에 cmd 를 입력한다. cmd를 입력하면 윗쪽에 “명령 프롬프트”가 표시된다. 이 명령 프롬프트를 클릭한다. 궂이 관리자 권한으로 실행하지 않아도 된다.
명령 프롬프트가 실행되면 “netstat -ano | more”를 입력하고 실행(Enter)한다. 큰 따옴표는 입력하지 않는다. ^^
그러면 위 화면처럼 컴알못에게는 “이게 뭐지”하는 텍스트가 주루룩 출력된다. 최대한 쉽게 위의 내용을 설명해보면…
TCP는 통신 프로토콜(통신 규약)을 의미한다. 대부분의 프로그램들은 UDP와 TCP라는 두개의 통신 프로토콜을 이용해 서버와 통신을 하게 된다. 예를 들면 PC에 카카오톡 프로그램을 설치하면 카카오톡은 카카오의 IDC(인터넷 데이터 센터)에 있는 카카오톡 서버들과 통신을 한다. 이때 사용되는 프로토콜이 바로 TCP다. (이정도만 이해하자..)
그 다음에 있는 192.168.219.111:14177 은 통신의 출발지인 PC의 IP주소와 통신포트다. 192.168.219.111이 PC의 IP주소이고 뒤의 14177은 통신포트다. IP는 컴의 주소라고 생각하면 되고 통신포트는 집에 있는 외부와 연결된 문의 번호라고 보면된다. (문이 여러개라 가정하고) 이 두번째 항목의 IP가 모두 동일한 것은 바로 PC가 출발지이기 때문이다.
세번째 항목이 바로 이 PC와 통신하고 있는 외부의 서버 IP와 통신포트다. 즉 64.233.189.188:5228에서 64.233.189.188이 서버의 IP주소이고 5228이 통신포트다. (뒤에서 이 IP주소가 어디의 IP주소인지 확인하는 법을 설명한다.) 이 IP는 바로 PC와 통신하고 있는 목적지 IP이다.
네번째 항목인 ESTABLISHED(이스태블리쉬드)라고 읽는다. 이 항목은 두 IP가 지금도 통신을 위해 연결상태를 유지하고 있는지 연결을 시도하고 있는 상태인지 아니면 연결을 종료하고 있는 중인지를 의미한다. ESTABLISHED 상태는 연결을 유지하고 있다는 의미다. 즉 지금도 PC에서 실행중인 프로그램과 목적지 IP의 서버(클라이언트 일 수도 있다)가 데이터를 주고 받고 있는 중 일 수도 있다는 것을 의미한다.
마지막에 있는 12460은 PC에서 실행하고 있는 프로그램의 ID다.
이 모든 것을 조합해 빨간색으로 박스가 쳐져있는 부분을 풀이하면 “192.168.219.111 IP에서 실행중인 12460 번 프로그램이 외부의 64.233.189.188 IP 등 여러대의 컴퓨터(서버 혹은 클라이언트)와 여러개의 통신포트를 이용해 연결을 유지한 채 지금 이 순간도 통신을 하고 있는 중이다” 쯤 되겠다.
그렇다면 이 PC에서 실행중인 PID(Process ID) 12460 프로그램이 통신하는 외부의 IP는 도대체 어디일까? 이 IP가 혹시 해커들이 사용하는 IP는 아닌지 확인해야 한다. IP주소를 알고 있으면 이 IP가 어디인지 확인하는 여러 방법들이 있다.
일단 whois 라고 하는 공식적인 IP 조회 방법이 있다. 한국인터넷진흥원에서도 서비스하고 있는데 IP가 할당된(사용하고 있는) 곳을 알 수 있다.
https://krnic.or.kr 에 접속한다.
WHOIS 정보검색 창에 IP 주소를 입력하고 검색 버튼을 누른다. 그러면 입력한 IP를 할당받아 사용하고 있는 조직(회사, 기관, 대학 등)을 알려준다.
입력한 64.233.189.188은 Google이 할당받아 사용중인 IP임을 알 수 있다. 혹시 정체를 제대로 파악하기 힘든 ISP(인터넷 회선 사업자)라면 해킹에 악용되는 IP들을 모아두고 조회 서비스를 제공해주는 사이트에서 한번 더 확인할 수 있다.
IP트래커(https://www.ip-tracker.org/)와 같은 사이트에서 IP를 입력하고 조회하면 해킹에 악용되는 IP인지를 확인해 주는데 100% 확신할 수는 없으니 참고만 하자.
이제 구글이라는 것을 확인했으니 조금 안심이 되긴 한다. 그렇다면 도대체 PID 12460이 어떤 프로그램이기에 Google과 통신을 하고 있는지 확인해야 한다.
만약 IP가 Google, Microsoft, Ahnlab 등 PC에서 사용하고 있는 프로그램을 개발해 판매하는 회사나 기관이 아니고 정체를 알 수 없는 곳이라면 긴장이 되기 시작한다. 그렇다면 이 프로그램의 정체를 확인해야 한다.
프로그램의 정체를 확인하기 위해 Windows의 작업관리자를 실행한다.
PID 를 클릭해 정렬을 시켜보면 PID 12460은 웹브라우저인 Chrome 인 것을 알 수 있다. Chrome이라면 Google에서 만든 웹 브라우저이기 때문에 Google과 통신할 수 있다. 그리고 Chrome은 Naver, Daum 등 Chrome을 이용해 접속한 웹사이트 모두와 통신할 수 있고 Chrome에 추가로 설치한 익스텐션 프로그램들을 만든 곳과도 통신할 수 있다.
하지만 PID 12460이 Chrome이 아니고 처음 보는 프로그램이라면 점점 악성코드일 가능성이 높아진다. 그렇다면 이 프로그램이 내 PC의 어디에 설치된 프로그램인지 설치 경로를 추가로 확인해볼 필요가 있다. 그리고 정상적인 프로그램으로 보인다 해도 다음단계까지 진행해보길 바란다. 해커들도 바보가 아닌 이상 정상적인 프로그램으로 보이도록 위장시키는 경우가 많다.
프로그램을 선택하고 마우스 우클릭을 통해 팝업메뉴를 호출하고 “파일 위치 열기”를 클릭한다. 아래 화면처럼…
그러면 PID 12460이 설치된 폴더가 열린다. 이 화면에서는 PID 12460은 Chrome 브라우저이기 때문에 Chrome이 설치된 C:\Program Files (x86)\Google\Chrome\Application 폴더가 열렸다.
그리고 chrome.exe 선택된 상태로 창이 열린다. PID 12460이 Windows 운영체제의 프로그램이라면 C:\Windows 나 C:\Windows\system32 와 같은 폴더가 열릴 것이다. 만약 이 경로가 C:\Temp, C:\Tmp, C:\User\, 휴지통 등의 아래를 가리킨다면… 악성프로그램일 가능성은 80% 이상으로 높아진다.
만약 이 단계에서 마저도 모르는 파일이라면 이 프로그램을 개발해 배포한 회사의 정체를 확인해보자. 이 파일에서 마우스 우클릭을 통해 팝업 메뉴를 실행하고 “속성” 메뉴를 클릭한다. 그러면 이 파일의 속성 창이 열린다. 그리고 디지털 서명 창으로 간다.
구글, 마이크로소프트, 한컴, 안랩 등과 같이 상용 프로그램을 개발해 판매하는 제조사들은 “전자서명 인증서”라는 인증기관에서 돈을주고 구매한 전자서명 인증서로 프로그램에 전자서명을 한다. 전자서명을 한 프로그램을 설치하게 되면 Windows는 인증기관을 통해 이 프로그램이 해당 제조사에서 개발해 배포한 프로그램과 동일한지를 확인할 수 있다. 즉 악성코드에 감염되었거나 정상적인 프로그램으로 위장된 악성코드가 담긴 가짜 프로그램인지를 확인할 수 있는 것이다. 기술적으로 어떻게 확인하는지를 설명하자면 전자서명에 대한 긴~이야기가 되므로 생략한다.
자세히 버튼을 누르면 이 프로그램의 전자서명이 올바른지를 확인해 올바르다면 아래와 같이 전자서명(디지털 서명)이 유효하다고 출력한다.
이 디지털 서명(전자서명과 동일한 의미)은 유효합니다. 라는 메시지가 보이면 정상 프로그램이라고 보면 된다. 다만 해커가 자신의 정체를 일부 노출하면서 전자서명 인증서를 인증기관으로 부터 구매하고 악성프로그램에 전자서명해 배포하고 감염시킨다면 유효한 전자서명으로 보일 것이다. 하지만 정체를 노출해가며 전자서명 인증서를 구매하고 악성 프로그램에 전자서명을 해서 배포할 해커는 없을 것이다.
아래 화면은 Windows 인증크랙으로 배포되는 KMS AutoNet 이라는 프로그램의 전자서명 정보화면이다.
WZTeam 이라는 곳에서 전자서명 인증서를 발급받은 것으로 나오지만 “자세히” 보게 되면 신뢰되지 않는다고 나온다. 이런 프로그램들은 가능하면 PC에서 실행시키지 않는 것이 좋으며 실행시키는 순간 PC의 안전은 보장되지 않는다. 심지어 실행파일임에도 불구하고 “디지털 서명” 탭이 아예 나오지 않는 프로그램들도 이따금씩 보인다. 악성 프로그램들은 100% 전자서명이 신뢰되지 않거나 전자서명(디지털 서명) 탭이 아예 보이지 않는다고 보면 된다.
그런 프로그램들이 PC에서 실행중이고 의심스런 IP와 통신하고 있다면 빨리 강제종료 시키고 PC에서 삭제할 것을 권한다.