IT_etc/유용한 전산 지식들..

내 pc가 해킹 당하고 있는지 알아보는 방법과 예방법

JJun ™ 2007. 2. 13. 09:34
인터넷 사용 인구수가 증가함에 따라 인터넷 뱅킹, 사이버 증권거래, 메일 송수신, 채팅, 파일 교환 등
웹서비스를 이용하는 사용자들이 증가하고 있지만 사용자들의 부주의로 인한 해킹 및 바이러스 피해가
좀처럼 감소하지 않고 있다. CERT/CC의 8월 국내 해킹 및 바이러스 통계자료를 보면 7월달 보다
20%정도 감소한 것은 사실이지만, 이에 대해 보안전문가들은 단지 휴식기일 뿐이고 점차 더 지능적이고
네트워크에 심각한 피해를 줄 수도 있는 공격이 언제 나타날지 모른다고 경고하고 있다.

특히 사용자들 사이에서 많이 사용되고 있는 MSN, ICQ, 버디버디, 지니 등과 같은 채팅 프로그램과
소리바다, 구루구루, 그누텔라(Gnutella), 카자(KaZaA), WinMX, eDONKEY 등과 같은 P2P 공유
프로그램은 해킹이나 바이러스의 좋은 공격 목표가 되고 있으며, 실제로 위 프로그램들의 취약성을
이용한 해킹, 트로이목마, 바이러스 등의 공격으로 인한 피해사례가 자주 보고되고 있으므로
사용자들의 각별한 주의가 요구되고 있다.

그럼, 해킹 경로와 피해 유형을 통해 자신이 사용중인 시스템이 해킹 당하고 있는지 확인하고,
그에 따라 어떠한 조치를 취해야 하는 지 살펴보도록 하자.


1. 해킹툴의 감염경로 및 피해유형

해킹툴은 일반적으로 게임 패치나 시스템 유틸리티로 위장하여 와레즈 사이트, 채팅, p2p공유 프로그램
등을 통해 전파된다.

최근에는 웜처럼 이메일이나 네트워크로 전파되는 트로이 목마도 제작되고 있다.
특히 대부분의 사용자들이 다운로드한 파일이 해킹툴인지 모르고 실행시켜서 해킹 피해를 보는 경우가
많으며, 심지어는 해킹툴에 감염된 것조차 모르는 경우도 부지기수이다.
따라서 다음과 같은 증상이 발생한다면 해킹툴에 대한 감염을 의심해 볼 필요가 있다.

- 시스템을 부팅할 때 평상시에 출력되지 않았던 에러들이 출력되는 경우.
- 시스템이 이유 없이 재부팅/종료되고 파일들이 삭제되는 경우.
- 실행 중인 프로그램이 종료되는 경우.
- 사이트 무단 가입 및 사용하지 않은 유료 컨텐츠 이용에 대한 요금 청구서를 받았을 경우.
- 게임 아이템을 분실한 경우.
- 보안 프로그램들에서 자주 경고창을 띄울 경우.(경우에 따라 단순한 경고창일 수 있음)


2. 해킹툴 예방 및 감염시 대처법

(1) Netstat 유틸리티 활용하라.

유닉스나 윈도우에는 사용자 컴퓨터의 네트워크의 상태를 알려주는 netstat라는 명령어(도스용)가 있다.
Netstat을 이용하면 열려 있는 포트와 이 포트들이 어떻게 사용되고 있는지 확인할 수 있으며,
이 명령어만 잘 활용하면 백신이나 방화벽같은 보안 프로그램을 사용하지 않고도 해킹툴을
감지해 낼 수 있다.

방법 :
시작/프로그램/보조프로그램/명령 프롬프트창을 띄운 뒤
netstat -옵션 (예: netstat -a)을 입력하고 엔터하면 지금 누가 내 PC에 연걸되어 있는지가
나타난다.

[Netstat 명령어 옵션들]

- a : 연결된 혹은 연결을 기다리고 있는 모든 포트 상태 출력.
- n : 호스트 이름 대신 IP주소로 출력.
- p,s : 주로 함께 사용하는데 프로토콜의 상태출력.

- ESTABLISHED : 현재 연결되어 있는 상태.
- LISTENING : 연결을 위하여 접속대기 상태
- TIME_WAIT : 이미 해당 사이트와 연결이 종료되었거나 다음연결을 위해 대기상태.
- SYN_SENT : 접속하기 위해 패킷을 전송했다는 뜻

netstat 유틸리티를 수시로 실행시켜 시스템을 점검해 보자. 만약 알 수 없는 포트가 있거나 31337, 12345, 54321번과 같이 트로이 목마가 사용하는 포트가 열려 있을 때는 해킹 위험에 대한 시스템 점검이 필요하다. 특히 열려진 포트로 특정 IP가 접속해 있다면 이는 십중팔구 시스템이 해킹 당하고 있다는 것을 의미한다. 단 netstat 명령어는 인터넷에 연결되어 있는 모든 프로세스를 종료한 후에 사용해야 좀 더 정확한 탐지가 가능하다.

참고로 트로이 목마가 사용하는 포트에 대한 정보는 아래 사이트에 잘 정리되어 있다.

http://www.glocksoft.com/trojan_port.htm


(2) 레지스트리를 자주 점검하라.

트로이 목마는 대개 레지스트리의 아래 경로에 자신 키 값을 등록하여 윈도우 시작 시 자동 실행되므로, Windows 9x 시스템에서는 시스템 구성 편집기(sysedit.exe)를 사용하여
Win.ini, system.ini, autoexec.bat, config.sys파일에 수상한 값이 없는지 확인해야 한다.

- Windows 전 계열 -

[HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrent VersionRunServices]

[HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrent VersionRunServicesOnce]

[HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrent VersionRun]

[HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrent VersionRunOnce]

[HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrent VersionRun]

[HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrent VersionRunOnce]

[HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrent VersionRunServices]

[HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrent VersionExplorerShell]

[HKEY_LOCAL_MACHINESoftwareCLASSESShellScrap]

몇몇 트로이 목마는 "%1 %*"값을 자신 값("server.exe %1 %*")으로 변경하여
exe/pif/com/bat/hta 확장자를 가진 파일이 실행될 경우, 매번 자동 실행되는 경우도 있다.

[HKEY_CLASSES_ROOTexefileshellopencommand] @=""%1" %*"
[HKEY_CLASSES_ROOTcomfileshellopencommand] @=""%1" %*"
[HKEY_CLASSES_ROOTbatfileshellopencommand] @=""%1" %*"
[HKEY_CLASSES_ROOThtafileShellOpenCommand] @=""%1" %*"
[HKEY_CLASSES_ROOTpiffileshellopencommand] @=""%1" %*"
[HKEY_LOCAL_MACHINESoftwareCLASSESbatfileshell opencommand] @=""%1" %*"
[HKEY_LOCAL_MACHINESoftwareCLASSEScomfileshell opencommand] @=""%1" %*"
[HKEY_LOCAL_MACHINESoftwareCLASSESexefileshell opencommand] @=""%1" %*"
[HKEY_LOCAL_MACHINESoftwareCLASSEShtafileShell OpenCommand] @=""%1" %*"
[HKEY_LOCAL_MACHINESoftwareCLASSESpiffileshell opencommand] @=""%1" %*"

특히 아래 두 개의 레지스트리 키는 비어 있거나 ""%1" %*"라는 데이터를 가져야 한다.
윈도우는 exe파일을 실행시킬 때 이 레지스트리를 검사하는데 만약 잘못 변경하면 exe를
로드하는데 실패하거나 다른 프로그램을 동시에 로드할 수 있다.

[HKEY_CLASSES_ROOTexefileshellopencommand] @=""%1" %*"
[HKEY_LOCAL_MACHINESoftwareCLASSESexefileshell opencommand] @=""%1" %*"

그리고 트로이 목마 파일을 먼저 삭제하게 되면 윈도우 프로그램을 더 이상 실행시킬 수 없게 되고
심지어 문제 해결에 필요한 레지스트리 편집기(regedit.exe)를 사용할 수 없게 된다.
따라서 프로그램을 실행시키는 대신 윈도우는 그 응용프로그램을 로드하는데 실패했다는
오류 메시지를 출력하게 된다. 이런 상황이 발생할 경우에는 메모장을 이용하여 아래 내용을
입력한 후 파일명을 "cleanup.reg"로 변경하여 저장한다.

REGEDIT4
[HKEY_CLASSES_ROOTexefileshellopencommand]
@=""%1" %*"
[HKEY_LOCAL_MACHINESoftwareCLASSESexefileshell opencommand]
@=""%1" %*"

[시작 - 실행]을 선택하고 cleanup.reg를 입력한다. 윈도우는 레지스트리 파일 확장자를 인식하고, 그 파일을 레지스트리에 자동으로 적용하여 필요한 레지스트리 수정작업을 할 수 있게 된다.

- Windows 9x 계열 -

Win.ini
[windows]
load=
run=

System.ini
[boot]
Shell=Explorer.exe


(3) 백신과 방화벽

백신은 고유 기술을 사용하여 사용자의 시스템에 있는 악성코드를 진단/치료/삭제할 수 있는
프로그램이다. 그러나 백신에 진단되지 않는 악성코드에 의한 공격이나 외부로부터 DoS 등과 같이
다양한 형태의 공격을 받고 있을 경우, 효과적으로 대응하지 못하기 때문에 방화벽을 함께 사용하여
시스템을 보호하는 것이 좋다.

반대로 방화벽은 웜 같은 바이러스에는 효과적으로 대응을 하지 못하기 때문에 백신을 사용해야 한다.
한마디로 백신과 방화벽은 서로의 단점을 보완해주는 찰떡궁합인 셈이다.

그러나 요즘 트로이 목마들도 웜 바이러스처럼 진화하고 있어 수동으로 제거하기가 점점 어려워지고
있고 백신과 방화벽 관련 파일을 삭제하여 실행 불가능하게 만들기도 하므로 사용자들은 의심되는
파일이 백신에 진단되지 않는다고 해서 무조건 정상파일이라고 생각하지 말고 아예 삭제하거나
백신업체에 전송하여 분석을 의뢰하는 것이 좋다.

가장 중요한 사실은 백신도 방화벽도 하나의 프로그램이고 수많은 버그 및 취약점이 존재하므로
100% 맹신해서는 안 되며, 엔진업데이트 및 버전업 등의 지속적인 관리가 가장 중요하다.


(4) 사용 중인 운영체제의 보안패치는 필수!

트로이 목마를 이용한 해킹뿐만 아니라 윈도우나 윈도우 기반의 응용프로그램의 취약점이
많이 발견되고 있고 이를 이용한 해킹피해도 높아지고 있으므로 취약점에 대한 패치를 반드시 해야 한다.

http://www.microsoft.com/korea/technet/security/current.asp
http://v4.windowsupdate.microsoft.com/ko/default.asp

[ 보안 사이트]

- 안철수 연구소 : www.ahnlab.com
- 하우리 : www.hauri.co.kr
- 시만텍 : www.symantec.com
- 맥아피 : www.mcafee.com
- CERT/CC : www.certcc.or.kr
- CIAC : www.ciac.org/ciac
- infosyssec : www.infosyssec.com
- NTFAQ KOREA : www.ntfaq.co.kr
- guninski : www.guninski.com
- NTBugtraq : www.ntbugtraq.com


3. 결 론

현재 발견되고 있는 트로이 목마들은 웜처럼 지능형으로 변화하고 있는 추세이다.
그 실례로 최근 발견되는 트로이 목마들 중 감염된 시스템의 백신 및 방화벽 관련 파일들을
삭제하기도 한다.

이러한 트로이 목마는 대부분 외국산 백신과 방화벽을 대상으로 하고 있지만 필자가 자주 접속하는
외국의 트로이 목마 제작 커뮤니티에서 입수한 정보에 따르면 국산 백신과 방화벽들도 공격대상에
포함된 트로이 목마까지 제작되고 있음을 확인할 수 있었다.

또한 트로이 목마에 웜 기능을 추가해서 여러 경로를 통해 다수의 시스템을 감염시킨 후 원격지에서
공격하는 등 다양한 기능을 갖춘 트로이 목마를 제작하기 위해 정보교환이 활발하게 이루어지고 있는
실정이다.

이것은 개인 사용자들이 직접 공격대상이 될 수 있다는 것을 의미하는 것 뿐만 아니라,
몇 년 전 강릉 PC방사건이나 미국과 중국의 사이버전의 경유지로 사용되었던 것처럼
직·간접적인 공격의 대상이 될 가능성이 높아지고 있다는 것을 의미한다.

따라서 사용자들은 누가 보호해 주기 전에 스스로 보안에 관심을 갖음으로써 직·간접적인 피해에
대한 대비를 해야 할 것이다.


해킹 당했을 때 신고 방법

- 해킹 피해 시간대
- 구체적인 피해상황 : 개인정보유출, 아이템 분실, 시스템 파괴, 명예훼손 등.
- netstat를 하여 상대방 ip확보.
- 해킹에 이용된 샘플명.
-
http://whois.nic.or.kr에서 상대방의 ip에 대한 구체적인 정보 조회자료.
- 각 지방 경찰청 사이버 수사대나 사이버 테러대응센터(www.police.go.kr)로 신고.
- 해당 서비스 업체에도 통보.
- 개인정보침해신고센터(www.cyberprivacy.or.kr)에 접속해서 상담을 받는 것도 좋다.

 
출처 : 매니안닷컴  / 출처 : Tong - 플러스가될때까지님의 컴퓨터통