2012년 8월 14일 화요일

인터넷 해킹의 문제점 및 대책 방안

정확하게 기억은 나지 않지만 2005년 4월 즈음일 것으로 생각됩니다.

그 시기 즈음에 코리안리재보험이라는 곳으로부터 인터넷 보안과 관련된 원고 청탁을 받았습니다. 코리안리재보험에서는 매 분기별로 "위험과 보험"이라는 책자를 발간하는데 2005년 여름에 발간될 78호 인터넷 보안과 관련된 내용들을 다루고 싶다는 말씀을 들었던 것으로 기억되네요.

사실 해당 기업에 대해 아는 것도 별로 없어서 인터넷으로 이래 저래 찾아보니 보험 관련 업무를 하는 기업이더군요.

원고를 보내드린 이후에 특집으로 실린 제 원고가 담긴 책자도 직접 챙겨서 보내주시고, 그 이후에도 일정 기간 동안 "위험과 보험"이라는 책자를 계속 보내주셔서 덕분에 잘 읽었던 기억이 나네요.

오늘 다시 원고를 정리하다 보니 "안철수연구소의 인터넷 금융거래 보안수칙 10계명"이 회사  홈페이지가 리뉴얼 되면서 주소가 변경되고 7년전 내용이라 지금 현실과 맞지 않는 것 같아 비교적 최근인 2010년에 작성된 "인터넷 금융거래 이용자를 위한 보안수칙" 링크로 변경해두었습니다.

+---------------------

1. 서론

컴퓨터와 인터넷이라는 가상 공간의 발달로 우리 인간의 생활 전반에 걸쳐 많은 변화가 이루어졌다. 특히 한국은 전세계에서 가장 발달된 IT 인프라를 갖춘 나라로 알려져 많은 국가들의 선망의 대상과 모범적인 사례로 일컬어지고 있다. 이러한 IT 인프라의 변화는 기존의 대형 컴퓨터 시스템만이 네트워크에 연결되어 정보 전송이 가능해지던 시대를 벗어나 더 많은 개인용 컴퓨터들이 인터넷이라는 가상 세계로의 접속을 가능하도록 이끌어 왔다. 이러한 IT 인프라의 발달로 인해 기존 사회 문화와 전통적인 생활 양식이 컴퓨터와 인터넷을 중심으로 새롭게 재편성되고 형성되게 이르렀다. 이러한 새로운 변화의 물결이 컸던 곳 중 하나가 바로 온라인 상거래와 금융거래가 아닌가 싶다.
전통적인 상거래에서는 도서 한 권을 구매하기 위해서는 구매자가 직접 대형 서점 등을 통해서 해당 도서의 출간 여부와 재고가 있는지 일일이 확인하여야만 했다. 그러나 지금은 편안하게 가정에서 인터넷에 연결되어 있는 컴퓨터만 있다면 10분만에 해당 도서의 출간 여부는 물론이고 재고여부까지 다 확인할 수 있다. 게다가 신용카드로 결제만 하면 우편으로 편안하게 집에서 주문한 서적을 받아 볼 수 있게 되었다. 그리고 은행과도 같은 금융기관을 통한 금융 거래 역시 송금 또는 세금을 내기 위해서 직접 은행을 방문하여 대기표를 받아 한 참 동안 자기 차례가 오기를 기다려야만 했다. 그러나 이제는 컴퓨터를 통해 은행의 홈페이지에 접속한 후 몇 번의 마우스 버튼 클릭만으로 손쉽게 모든 은행 업무를 마칠 수가 있게 되었다. 이러한 사례를 더 설명하지 않더라도 컴퓨터와 인터넷이 우리 생활에 어떠한 변화를 가져다 주었는지는 충분히 공감할 것이다.
그러나 모든 사물에는 서로 다른 상이한 양면이 존재하듯이 인터넷이라는 가상 공간 역시 앞서 설명한 사례들과 같이 긍정적인 순기능만 존재하는 것이 아니라 부정적인 역기능 역시 동시에 존재하고 있다. 그러한 대표적인 사례가 바로 악성코드를 제작, 유포하여 인터넷에 연결되어 있는 컴퓨터들을 못 쓰게 만들어 컴퓨터 사용자들을 불편하게 만들고 있다. 그리고 악의적인 트로이목마를 이용하여 개인정보를 도용하여 개인구좌에 있는 돈을 몰래 인출하는 등의 피해를 유발 할 수가 있다.
이러한 사례 외에도 인터넷에 연결되어 있는 개인 컴퓨터를 노리는 악의적인 시도는 이 시간에도 계속 시도되고 발생하고 있다. 이러한 다양한 피해와 금전적인 손해까지 일으킬 수 있는 사이버 공간의 보안 위협은 해마다 증가하고 있다. 이러한 현실 세계에까지 직접적인 피해를 유발할 수 있는 사이버 공간의 보안 위협들에는 어떠한 것들이 있으며 이에 대해서 어떻게 대처할 수 있는지 살펴보도록 하자.

2. 다양한 보안 위협의 증가

1) 증가하는 악성코드의 피해와 동향
최근 안철수연구소로 신고되는 악성코드들을 살펴보면 양적인 측면과 함께질적인 측면에서 크게 증가하고 있다. 특히 양적인 면에서는 예년과 비교해 3 ~ 4배를 훌쩍 뛰어 넘는 수치를 기록하고 있다.



이러한 동향은 위 [그림 1]과 [그림 2]를 살펴보더라도 악성코드 발견 건수와 해킹 사고의 건수가 매년 몇 배의 수치로 증가하고 있다는 것을 잘 알 수 있다. 그리고 발견되는 악성코드의 수치와 더불어 이에 따른 피해규모 역시 기하급수적으로 증가하고 있는 실정이다. 이러한 악성코드의 수치적인 증가 외에도 기술적인 측면에서도 다양한 공격기법과 감염기법들을 통하여 이제는 해킹과 악성코드의 경계선 자체가 점점 허물어지고 있는 실정이다. 특히 최근에 등장하는 악성코드는 기존의 분류형태로 나누기가 어려운 경우가 많으며 스파이웨어와 같은 새로운 형태의 등장은 기존 분류의 범위에 포함하기조차 어려운 경우도 점차 증가하고 있다.

2) 커져만 가는 위협, 악성코드의 피해
이러한 피해와 증가를 보이고 있는 악성코드는 어떠한 것이며 이러한 악성코드에 감염될 경우 어떠한 증상이 나타나는지 알아보도록 하자

악성코드란
악성코드는 Malicious Code, Malware, Malicious Program 등으로 표기하며 최근에는 Malicious Software 라는 용어를 사용하기도 한다. 이러한 영문 표기법을 한국어로 번역한 것이 악성코드이며 일반적으로 다음과 같이 정의하고 있다. 악성코드는 '악의적인 목적을 위해 작성된 실행 가능한 코드'로 정의한다. 실행 가능한 코드는 프로그램, 매크로, 스크립트 뿐만 아니라 취약점을 이용한 데이터 형태들도 포함하고 있으며 형태에 따라서 바이러스, 웜, 트로이 목마로 분류되고 있다.

악성코드의 분류
악성코드의 세부적인 분류는 일반적으로 자기 복제와 감염 대상 유무에 따라서 하위 분류인 바이러스, 웜, 트로이 목마로 구분되며 이들의 차이는 아래 [표1]과 같다.


바이러스 (Virus)
바이러스는 일반적으로 감염대상이 되는 프로그램 또는 코드에 바이러스 자신의 코드 및 변형 코드를 감염시키며 컴퓨터 시스템 내부에서 확산된다. 

웜 (Worm)
최근 들어서 메일로 전파되는 웜들로 인해 언론매체를 통해 비교적 많이 소개되었던 웜은 일반적으로 다음과 같이 정의하고 있다. 웜은 컴퓨터 내부의 기억장소에 코드 형태 또는 컴퓨터 내부 실행파일 형태로 존재하며 실행 되면 파일이나 코드 자체를 네트워크와 전자우편 등을 통해 다른 시스템으로 자기 복제를 시도하는 형태를 말한다. 

트로이 목마 (Trojan Horse)
트로이 목마는 자기 자신을 복제하지 않지만 악의적 기능을 포함하는 프로그램이나 악의적 목적에 적극적으로 활용되는 프로그램이나 데이터를 통칭하고 있다. 트로이 목마는 자기 자신을 복제하지 않는다는 점에서는 바이러스와 웜과는 그 성격 자체가 다르다고 볼 수 있다. 

악성코드에는 자기 복제와 감염 형태에 따라 크게 바이러스, 웜과 트로이 목마로 나눌 수가 있다. 이러한 분류에 따라서 컴퓨터에 감염되는 경로와 감염시 나타나는 피해 증상도 조금씩 차이점을 보이고 있다. 이러한 차이점 외에도 감염시 겉으로는 감염 증상이 드러나지 않는 경우도 많으나 사용자가 조금만 주의를 기울여서 컴퓨터를 확인하다면 악성코드 감염으로 추정되는 이상 증상들을 조기에 파악할 수 있다. 그렇다면 악성코드 형태별 감염 경로와 피해 증상 들을 살펴보도록 하자

바이러스 감염 경로와 피해
일반적으로 바이러스는 자신을 복제하지는 않지만 정상적인 시스템 파일 또는 사용자가 직접 작성한 파일 들의 특정 부위에 바이러스 코드를 삽입하는 형태를 보인다. 바이러스 감염에 의한 파일의 변화를 [그림 3]에서 잘 표현하고 있다. 이러한 바이러스는 대부분은 자체적인 전파기능이 없으므로 인터넷에 다운받은 확인되지 않은 파일을 실행하거나 기존에 바이러스에 감염된 파일을 사용자에 의해서 플로피 디스켓 또는 USB 드라이버와 메일들을 통해서 다른 사용자에게 전달되어 실행 될 경우 감염될 수 있다.

이러한 감염 기법으로 인해 일반적으로 바이러스에 감염이 될 경우 바이러스의 감염 위치에 따라 다른 이상 증상들이 발생할 수 있다. 시스템의 부트섹터 감염시 며칠 전까지도 정상적으로 부팅이 되던 윈도우 시스템이 정상적으로 부팅이 되지 않을 수 있으며 파일 자체가 감염이 될 경우에는 사용자가 실행한 특정 프로그램 또는 파일들이 정상적으로 실행되지 않거나 사용자가 예상하지 못한 오류들이 발생할 수 있다. 

웜 감염 경로와 피해
웜은 자신을 시스템에 복제하고 다른 시스템으로의 확산을 시도하는 특징을 가지고 있다.. 이러한 웜의 주된 감염 경로는 전자메일과 네트워크라고 볼 수 있다. 전자메일의 경우에는 감염된 시스템에서 메일 주소를 수집하여 발신인과 수신인으로 이용하여 웜을 첨부파일로 하여 발신하게 된다. 웜이 첨부된 전자메일을 수신하게 될 경우에는 발신인이 잘아는 사람으로 되어 있어 별다른 의심 없이 첨부된 웜을 실행하게 되는 경우가 많다. 네트워크로 전파되는 웜의 경우에는 크게 두 가지로 나누어 볼 수 있다. 첫번째는 윈도우 취약점을 이용하는 경우이다. 취약점이 존재하는 윈도우 시스템을 네트워크 스캐닝을 통하여 찾게 되면 웜은 윈도우 취약점을 이용하여 감염 대상이 되는 시스템에 복제를 하게 된다. 그리고 두번째는 윈도우 시스템의 사용자 계정에 사용하는 암호의 취약점이다. 사용자 계정의 암호는 대부분의 사용자들이 윈도우 시스템에 로그온을 편하게 하기 위해서 암호를 사용하지 않는다던가 암호를 사용하더라도 '1111' 또는 'abcd' 등 간단하거나 다른 사람들도 쉽게 유추 할 수 있는 문제로 발생한다. 사용자 계정 암호의 취약점으로 인해 웜은 사용자 계정에 암호를 순차적으로 대입하는 공격법을 사용하여 사용자 계정과 동일한 권한을 획득하게 된다. 웜은 네트워크를 통해 관리목적 공유폴더로 접속시 사용자 계정의 암호로 로그온하여 웜을 복제하게 되는 것이다. 웜은 지속적으로 자신을 다른 시스템으로 복제하기 위해 감염된 시스템의 자원을 대부분을 사용하게 된다. 이 과정에서 컴퓨터 사용자는 자신이 웜에 감염되었다는 것을 인지하지 못하고 단지 시스템이 느려지거나 네트워크가 많이 느려졌다고만 생각할 수 있다. 

트로이 목마 감염 경로와 피해
트로이 목마는 자체적인 전파기능이 없으므로 인터넷에서 배포되는 확인되지 않는 파일 그리고 악의적인 목적을 가진 제작자가 특정 사용자들에게 전자메일을 유포해 감염되는 경향이 많다. 트로이 목마를 실행하게 되면 사용자가 원하는 기능들이 실행되거나 아니면 시스템의 오류 메시지를 표시하면서 오류가 발생하는 것으로 위장하는 경우가 많다. 그러나 이 과정에서 트로이 목마는 해당 시스템에 몰래 설치되며 시스템의 특정 포트(Port)를 오픈하여 외부에서 몰래 접속 할 수 있는 환경을 만들게 된다. 해당 포트를 통해 악의적인 공격자는 감염된 시스템의 사용자 정보들을 유출하거나 시스템을 원격 제어할 수 있게 된다. 트로이 목마는 개인 정보를 유출한다는 면에서 앞서 언급한 바이러스와 웜 보다 더 위험하다고 볼 수 있다. 작게는 자주 방문하는 웹 사이트의 사용자 암호가 변경되어 접속이 되지 않을 수도 있으며 크게는 온라인 뱅킹을 통해 사용자도 모르게 통장의 잔고 모두가 다른 계좌로 이체되어 버릴 수도 있게 된다.

3) 새로운 위협으로 발전하는 스파이웨어의 증가
스파이웨어(Spyware)는 2004년부터 급격한 수치로 증가를 하고 있다. 그러나 이에 비해 대부분의 보안 업체들은 스파이웨어의 범위와 정의에 조차 혼선을 보이고 있는 것이 사실이다. 이러한 문제로 인해 일반인들은 스파이웨어(Spyware)라고 하면 스파이라는 용어로 인해 개인 정보 유출을 가장 먼저 떠오른다. 하지만, 스파이웨어는 정확하게 개인 정보 유출 보다는 개인 정보 수집의 목적이 있으며 정보 유출은 프로그램 제작자가 악의적인 목적으로 개인의 정보를 빼가기 위해서 트로이목마와 같은 악성 코드를 제작하는 것이다. 하지만, 스파이웨어를 통해서 수집되는 대부분의 개인 정보 주로 광고에 활용하기 위해서 사용되는 것이다. 

이러한 광고를 목적으로 하는 프로그램의 제작자들은 개인의 비밀번호, 신용카드 정보와 같은 개인 정보가 필요한 것이 아니라 개인이 어떤 웹사이트를 방문하며 어떤 것에 관심이 있는가를 수집하는 역할을 한다. 이러한 관점에서 본다면 이는 일종의 영업 활동이므로 악의적인 행동이라고 볼 수 없어 보안 업체에서도 진단 정책에 대해서 다른 행동을 취하게 된다. 하지만, 온라인 마케팅 업자들은 사람들이 잘 읽어보지 않는 동의서에 한 줄 넣어 사용자의 동의를 얻은 것으로 간주하거나 개인의 컴퓨터에 몰래 특정한 프로그램을 설치해 개인 정보를 수집하게 되었다.

이러한 스파이웨어는 국내에서는 악성코드(일반적으로 백신업체에서 지칭하는 악성코드와는 다른 의미로 쓰인다), 트랙웨어(Trackware), 페스트(Pest), 비 바이러스(Non-virus) 등으로도 불리고 있으며 업체 별로 스파이웨어에 대한 정의와 범위가 모두 다르다. 그러나 기본적으로는 개인 사생활을 침해 할 수 있는 유형 대부분을 스파이웨어라고 부르지만 백신 업계 등 기존 보안 업체에서 진단하는 백도어(Backdoor)류의 트로이목마도 일부 업체에서는 스파이웨어에 분류 하고 있다. 이러한 문제로 인해 안철수연구소의 스파이웨어를 "유해가능 프로그램 중 사용자가 명확히 해당 프로그램의 목적을 알지 못하고 설치되어 사용자의 사생활을 침해할 수 있는 프로그램"으로 정의하지만, 일반 사용자들은 스파이웨어를 "자신의 허락을 받지 않고 설치되어 자신도 모르게 실행되는 프로그램"으로 받아 들이고 있다.

일반적으로 스파이웨어가 설치되면 다음과 같은 문제점들이 발생할 수 있다.

- 개인 정보 유출 가능성 
- 시스템 속도 저하 
- 버그 등으로 인한 시스템 문제 발생 가능성 
- 심리적 불안감 

3) 이메일을 이용한 새로운 사기, 피싱(Phishing)
피싱은 인터넷을 사용하는 불특정 다수에게 공신력을 가진 기관인 것처럼 가장한 이메일을 보내어 개인의 정보를 빼내는 일종의 사회공학적(Social Engineering) 기법을 말한다. 피싱에 대한 정확한 어원은 Private Data와 Fishing의 합성어로 알려져 있다. 피싱이 불특정 다수에게 무작위로 메일을 전송하는 기법은 스팸과 비슷하다. 하지만 스팸 메일이 상품 판매 등을 위한 광고를 위한 것이라면 피싱은 사용자의 카드번호나 은행 계정과 패스워드와 같은 민감한 개인 금융 정보를 입력하게 하고 이를 통해 개인 금융 정보를 취득하는 것이 주된 목적이므로 피싱으로 인해 발생할 수 있는 개인의 피해는 스팸과 비교할 수 없을 정도로 심각할 수 있다. 

초기에 행해진 피싱 기법은 사용자를 속이도록 작성된 이메일을 받은 사용자가 개인 정보 등을 입력한 후 전송을 하게 되면 공격자의 이메일로 이를 전송하는 것과 같은 단순한 수법을 이용하였다. 그러나 최근에는 보안이 취약한 웹 서버 등을 불법으로 해킹하여 공신력을 가진 회사인 것처럼 사이트로 위장하여 사용자를 속이고 스크립트 내부에 OS나 웹 브라우저의 취약점을 이용한 코드를 삽입하는 등 사용자가 쉽게 알아볼 수 없도록 하고 있으며 형태 또한 다양해지고 있어 피해 발생의 가능성은 점점 높아지고 있다.

해외에서는 이미 2003년부터 피싱의 심각성이 문제화되기 시작했고 국내에서도 올해에 들어 피해 사례가 보고되고 있다. 한국정보보호진흥원(KISA)에서 발표한 자료에 따르면 2004년 10월 현재까지 KISA에 신고된 피싱 관련 사건 사례는 모두 114건이다. 아래의 <표 2>은 2004년 발생한 위장사이트 사고처리현황에 대한 월별 통계이다. 2004년 하반기에 들어서 피싱과 관련된 사고 발생 건수가 급격하게 늘어난 것을 볼 수 있는데 이는 국내에서도 본격적으로 이러한 신종 사기 수법에 의한 피해의 발생 빈도가 높아지고 있다는 것을 알 수 있다.


현재까지 밝혀진 바로는 대부분의 위장 사이트들이 해외의 은행이나 쇼핑몰이기 때문에 현재까지는 국내에서 피싱에 의한 피해의 발생 가능성이 상대적으로 낮다고 할 수 있다. 그러나 최근에는 피싱을 위한 제작 툴까지 생겨나는 등 국내도 더 이상 피싱 기법을 이용한 정보 유출로부터 안전을 보장할 수 없는 상태이다. 현재까지 알려진 피싱의 주된 형태는 앞에서 살펴본 바와 같이 금융기관 또는 사이트 운영자 등을 사칭하여 불특정 사용자들 또는 특정 사용자들에게 메일을 전파하는 방법을 이용하거나, 특정 사이트에서 링크를 이용해 피싱 사이트로 접속을 유도하는 방법 등이 주로 사용이 되고 있다. 이렇게 수집된 개인 금융 정보는 악의적인 목적으로 사용되고 있다.

아래는 외국에서 발생한 실제 피싱 메일로 특정 은행을 사칭하여 피싱 메일을 수신한 사용자로 하여금 가짜 은행 사이트로 접속을 유도하는 메일이다.


아래는 피싱 메일이 특정 인터넷 유명 쇼핑몰을 사칭하여 메일에 첨부된 링크를 통하여 개인정보를 업데이트하도록 유도하고 있다.


외국에서는 빈번하게 피싱 피해 사례가 발생하고 있는 실정이었으나 최근에는 국내에서도 외국계 모 은행의 홈페이지를 사칭하여, 정보를 획득하려는 시도가 있어 국내도 피싱에 의한 피해가 발생할 가능성이 높아지고 있다. 그리고 또 다른 피해사례로는 국내 유명한 모 포탈사이트의 음악 메일로 사칭하여 특정 사용자의 아이디와 패스워드를 확보한 후 이메일을 훔쳐본 사건이 있었다. 이는 개인 금융정보뿐만 아니라 개인 신상과 관련된 모든 정보들을 다루는 대부분의 사이트들을 사칭하여 피싱 메일의 제작이 가능하다는 것을 보여주고 있으며 이러한 피해사례는 앞으로 증가할 것으로 보여진다. 

3. 다양한 보안 위협에 따른 대처 방안

이러한 다양한 보안 위협에 대응하기 위해서는 어떠한 방법을 사용해야 되는 것일까? 그러나 이러한 모든 보안 위협에 대해서 개인 사용자가 하나하나 대처하기에는 그 범위가 너무나도 광범위해지고 기하급수적으로 늘어나고 있는 것이 실정이다. 그러나 아래와 같은 기본적인 보안 수칙만 잘 지켜서 사용한다면 안전한 컴퓨터 생활을 즐길 수 있을 것이다. 그리고 안철수연구소와 같은 보안 업체의 웹 사이트를 통해 정보 보안에 대해 지속적인 관심을 가지는 것도 중요하다.


1) 백신을 항상 최신엔진으로 업데이트하여 사용한다.
최근 악성코드는 앞서 말한 바와 같이 양적으로 증가하고 있어 하루에도 적게는 수십 건에서 많게는 수백 건에 이르는 신종 악성코드가 등장하고 있다. 이러한 많은 악성코드의 등장으로 인해 안철수연구소 역시 하루에도 서너번씩 신종 악성코드를 진단 및 치료 할 수 있는 최신엔진을 업데이트하고 있는 실정이다. 그러므로 컴퓨터를 부팅하였다면 제일 먼저 최신엔진이 적용되었는지 확인해보고 적용되지 않았다면 스마트업데이트 또는 홈페이지를 통해 최신엔진을 적용하도록 하자.

2) 백신의 실시간 감시 기능을 활성화 하도록 하자
백신을 최신엔진으로 업데이트 하였다고 하여 악성코드로부터의 감염 위험에서 안심할 수 있는 것은 아니다. 물론 최신엔진으로 업데이트 되어 있으므로 악성코드를 진단 및 치료를 할 수는 있으나 감염된 이후에 진단 및 치료를 하는 것은 어떻게 보면 소 잃고 외양간 고치는 격이 아닌가 싶다. 그러므로 최신엔진 업데이트와 함께 '실시간 감시 기능'을 활성화 시켜 놓도록 하는 것이 중요하다. 여기서 말하는 실시간 감시 기능이란 시스템 부팅된 뒤 백신이 시스템을 지속적으로 감시하면서 사용자가 악성코드를 실행하거나 외부에서 악성코드가 사용자 모르게 유입될 경우에 이를 실시간으로 진단하여 치료를 할 수 있도록 하는 기능을 말한다.

3) 일주일에 한번 시스템의 모든 파일들을 검사 하도록 하자
특정 악성코드의 경우에는 컴퓨터 시스템에 감염만 되고 활동을 하지 않는 경우 있다. 이러한 경우는 감염된 시스템의 사용자가 특정한 작업을 한다거나 감염된 컴퓨터의 환경이 특정 시점으로 변경되어야만이 실행되는 잠복기간을 가지는 것을 예로 들 수 있다. 그러므로 일주일에 한번 정도는 사용하는 시스템의 모든 파일들을 최신엔진으로 검사하여 예상치 못한 악성코드의 실행을 예방할 수 있도록 하자. 

4) 개인 정보 또는 개인 금융정보 문의 메일에는 회신하지 않는다.
개인 정보 또는 개인 금융정보와 관련된 문의 또는 변경 안내메일을 수신할 경우에는 해당 메일에 대한 회신을 하지 않도록 한다. 그리고 개인 금융정보 또는 개인 정보를 묻는 메일에 있는 특정 링크를 통해 해당 업체의 사이트로 접속하지 않도록 한다. 일반적으로 개인정보 또는 금융정보 변경과 관련된 사항은 메일로 사용자들에게 문의를 하는 경우는 없으며 이러한 메일을 수신하게 될 경우에는 전화 등을 이용하여 해당 업체가 실제로 메일을 이용하여 문의한 사항이 있는지 확인 한다.

5) 잘 알려지지 않은 웹 사이트는 접속하지 않는다.
광고를 목적으로 제작되는 애드웨어와 스파이웨어는 잘 알려지지 않은 웹 사이트를 통해서 무작위로 배포되는 경우가 상당히 많다. 특히 엑티브엑스(ActiveX)를 통하여 설치되는 사례가 많으므로 잘 알려지지 않은 사이트에서 배포하는 엑티브엑스의 경우에는 해당 액티브 X 컨트롤를 배포하는 웹 사이트가 어디이고 어떠한 용도로 배포하는지 확인하도록 한다. 그리고 무료로 배포하는 프로그램을 설치할 경우에는 해당 프로그램에 광고기능이나 자신의 컴퓨터 사용 경향을 수집하는 기능이 있는지 확인하도록 한다. 또한 스파이웨어 진단 프로그램을 설치하여 주기적인 검사를 통하여 피해를 예방하는 것이 중요하다.

6) 사용하는 운영체제의 보안 패치를 설치한다.
운영체제의 보안 패치는 사용하는 운영체제의 취약한 부분을 없애주는 역할을 한다. 특정 악성코드나 스파이웨어의 경우에는 운영체제의 취약한 부분을 이용하여 감염이 되는 경우가 많다. 이러한 악성코드나 스파이웨어의 감염으로부터 예방하기 위해서는 사용하는 운영체제에 맞는 보안 패치를 주기적으로 설치하여 악성코드에 감염되는 것을 사전에 예방하는 것이 중요하다. 윈도우 보안 패치와 관련된 사이트는 아래를 참고하면 된다.


4. 결론
이제까지 본 글에서 언급한 것과 같이 악성코드, 스파이웨어와 같은 보안 위협은 지속적으로 증가하고 있다. 이러한 보안 위협들 역시 컴퓨터 기술이 발전함에 따라 기술적으로 지속적으로 발전하고 인터넷을 통한 새로운 문화가 창조되고 만들어질 때마다 스파이웨어와 같은 새로운 보안 위협들을 등장하고 있다. 이러한 변화들에 따라 새로운 보안 위협에 어떻게 대응할 것인가에 대한 많은 문제들이 제기되고 있는 실정이다. 
특히 몇 주전에 발생한 사용자가 입력하는 키보드 입력값을 외부로 유출하는 트로이목마를 이용한 인터넷 뱅킹 사건은 우리에게 많은 교훈을 주고 있다. 평소에 트로이목마와 같은 악성코드를 치료할 수 있는 백신을 설치하여 주기적인 최신 엔진 업데이트와 검사를 하는 기본적인 보안 수칙을 알고 지키고 있었다면 과연 이번과 같은 큰 금전적인 피해를 입었을까?
물론 온라인 상에서 금전 거래가 이루어지는 모든 웹 사이트와 업체에서도 정보 보안을 중요시하고 고객의 안전을 지키기 위해서 많은 노력을 기울여만 한다. 그러나 무엇보다도 자신의 중요한 개인 정보를 가지고 있는 개인용 컴퓨터의 보안은 스스로가 지킨다는 생각에 정보 보안에 대한 많은 관심을 가지고 이를 실천한다면 인터넷이라는 가상 공간은 새로운 정보로만 가득한 진정한 지식의 보고가 되리라 생각한다.

2012년 8월 13일 월요일

모던한 데이브레이크의 "SPACEenSUM"

오늘 퇴근 길에 교보 문고에 잠시 들려 데이브레이크의 "SPACEenSUM" 앨범을 구매 했습니다. 지난 번에 갔을 때는 예전 앨범들만 있어서 그 것들만 사왔느데, 오늘 들려보니 새 앨범도 있더군요.

사실 데이브레이크는 탑밴드 시즌 2를 통해서 알게된 밴드였습니다. 개인적으로 생각하는 탑밴드의 가장 큰 장점은 국내 인디에서 활동하는 많은 좋은 밴드들을 방송이라는 오버그라운드에 소개해 많은 사람들의 관심을 유도 했다는 점을 들 수가 있을 것 같습니다. 톡식과 브로큰 발렌타인 그리고 게이트 플라워즈라는 좋은 밴드들을 알게 되었다는 점 역시 큰 수확이었습니다. 

브로큰 발렌타인과 게이트 플라워즈의 경우에는 발매한 음반들 모두를 구매했고, 브로큰 발렌타인의 단독 공연에도 갔었는데, 방송에서 보는 것 이상의 실력을 보여주더군요. 그리고 톡식 역시 브로큰 발렌타인 공연에 게스트로 참여 했었느데, 인간의 본능을 건드리는 사운드라고 할 정도로 묘한 매력을 풍기는 밴드더군요.

그래서 그렇게 알게 된 밴드가 데이브레이크라는 밴드였습니다. 탑밴드 시즌 2 역시 틈틈히 시간 날 때 봤었는데, 개인적으로 좋아하는 바닐라 유니티가 예선전에서 탈락한 것은 정말 안타깝더군요. 보기 보다 더 괜찮은 밴드인데 말이에요.

그래서 데이브레이크의 새 앨범을 드디어 구매했습니다. 새 앨범에서 개인적으로 좋아하는 곡들은 "두개의 심장", "회전 목마", "Sunny Sunny"과 "모노 트레인" 들입니다. 그런데 이 곡들의 뮤직 비디오는 없고 "Silly" 라는 곡만 있더군요. 그래서 그 곡의 뮤직 비디오만 블로그에 하나 올려 봅니다.



어제 인천 펜타포트 록 페스트벌에 나왔었는데, 전 토요일에만 갔다와서 데이브레이크의 공연을 보지는 못 했습니다. 하지만 다음에 데이 브레이크의 단독 라이브 공연을 한다면 한 번 직접 가서 보고 싶다는 생각이 드는 밴드이네요.

악성코드와 데이터 복구

온더넷이라는 잡지에 2005년 2월에 실렸던 글입니다. 지금 다시 찾아보니 온더넷이라는 잡지가 폐간 되었는지 찾을 수가 없네요..

원고 자체는 제목에서 알 수 있듯이 유명한 시스인터널즈에서 공개한 무료 툴들과 윈도우 XP에 포함되어 있는 기본 시스템 툴들을 이용해 수동 조치 방법들과 함께 윈도우 XP에 기본 내장된 백업 및 복구 기능을 이용해서 악성코드에 감염된 시스템을 복원하는 방법들에 대해서 다루고 있습니다.

지금은 시스인터널즈는 마이크로소프트에 인수되었고, 윈도우에 포함된 백업과 복구 기능은 7년이라는 세월의 흐름이 설명하듯이 지금은 아주 편리해져서 PC에 대해 잘 모르는 일반인들도 손쉽게 백업 설정과 복구를 할 수 있습니다.

저도 이제 나이가 들었는지, 7년전 일이라 잘 기억은 나지 않습니다만, 아마 담당 기자님께서 원고 요청시에 복원이라는 부분에 주제를 맞추어 주시지 않았나 생각 되네요..

그리고  "3. 백신을 이용한 악성코드 진단 및 치료"은 일반적으로 백신 사용시에 현재까지도 기본적인 지침이 되는 부분이니 알아두시는 것도 좋을 것 같네요.

아... 그리고 중간에 회사 홈페이지가 개편 되기전이라 ASEC Report 웹 페이지 링크만 현재 웹 페이지 주소로 수정 했습니다. 그래서 예전 통계 및 데이터가 원고 작성 당시와는 많이 다릅니다.

+---------------------

인터넷의 대중화와 개인용 컴퓨터 성능의 향상은 모든 사람들에게 인터넷이라는 새로운 세계에 대한 많은 관심과 호기심을 가지게 되었다. 이러한 비약적인 발전은 일상생활 깊이 스며들어 더 이상 인터넷과 컴퓨터 없이는 살 수 없게 되었다. 하지만 이러한 발전과 함께 이를 악용한 부정적인 병폐도 같이 발생하고 있는데 이러한 부정적인 영향 중 하나가 인터넷을 통한 시스템 해킹과 악성코드의 유포라고 볼 수 있다. 특히 악성코드의 유포는 인터넷이라는 정보의 바다를 항해하는 모든 이들에게는 무서운 바다괴물과도 같은 존재가 아닐까 싶다. 특히 악성코드의 감염으로 인한 피해는 작게는 컴퓨터 사용의 불편에서부터 크게는 컴퓨터 자체를 못 쓰게 되거나 중요한 데이터 삭제 등으로 이어질 수 있다. 그렇다면 이러한 무서운 병폐를 낳는 악성코드가 무엇이며 이러한 악성코드에 감염이 되었을 경우 나타날 수 있는 증상들이 무엇인지 알아보자. 이와 함께 이를 예방할 수 있는 방법들과 예기치 못하게 악성코드에 감염되었을 경우 어떠한 방법으로 데이터를 복원 할 수 있는지도 함께 알아 보도록 하자


1. 악성코드 정의와 분류 그리고 최근 동향

악성코드란
악성코드는 Malicious Code, Malware, Malicious Program 등으로 표기하며 최근에는 Malicious Software 라는 용어를 사용하기도 한다. 이러한 영문 표기법을 한국어로 번역한 것이 악성코드이며 다음과 같이 정의하고 있다.

악성코드는 '악의적인 목적을 위해 작성된 실행 가능한 코드'로 정의한다. 실행 가능한 코드는 프로그램, 매크로, 스크립트 뿐만 아니라 취약점을 이용한 데이터 형태들도 포함하고 있으며 형태에 따라서 바이러스, 웜, 트로이 목마로 분류되고 있다.

악성코드의 분류
악성코드의 세부적인 분류는 일반적으로 자기 복제와 감염 대상 유무에 따라서 하위 분류인 바이러스, 웜, 트로이 목마로 구분되며 이들의 차이는 아래 [표1]과 같다.


바이러스 (Virus)
바이러스는 일반적으로 감염대상이 되는 프로그램 또는 코드에 바이러스 자신의 코드 및 변형 코드를 감염시키며 컴퓨터 시스템 내부에서 확산된다. 

웜 (Worm)
최근 들어서 메일로 전파되는 웜들로 인해 언론매체를 통해 비교적 많이 소개되었던 웜은 일반적으로 다음과 같이 정의하고 있다. 웜은 컴퓨터 내부의 기억장소에 코드 형태 또는 컴퓨터 내부 실행파일 형태로 존재하며 실행 되면 파일이나 코드 자체를 네트워크와 전자우편 등을 통해 다른 시스템으로 자기 복제를 시도하는 형태를 말한다. 

트로이 목마 (Trojan Horse)
트로이 목마는 자기 자신을 복제하지 않지만 악의적 기능을 포함하는 프로그램이나 악의적 목적에 적극적으로 활용되는 프로그램이나 데이터를 통칭하고 있다. 트로이 목마는 자기 자신을 복제하지 않는다는 점에서는 바이러스와 웜과는 그 성격 자체가 다르다고 볼 수 있다. 

최근 동향
최근 안철수연구소로 신고되는 악성코드들을 살펴보면 양적인 측면과 질적인 측면에서 크게 증가하고 있다. 특히 양적인 면에서는 예년과 비교해 3 ~ 4배를 훌쩍 뛰어 넘는 수치를 기록하고 있다. 이러한 동향은 안철수연구소의 시큐리티대응센터(ASEC)에서 발간한 악성코드와 시큐리티 동향 보고서인 ASEC Report 를 살펴보더라도 잘 나타나고 있다. 이러한 양적인 증가 외에도 악성코드들의 질적인 측면에서도 다양한 공격기법과 감염기법들을 통하여 해킹과 악성코드의 경계선 자체가 점점 허물어지고 있는 실정이다. 특히 최근에 등장하는 악성코드는 기존의 분류형태로 나누기가 어려운 경우가 많은데 그 예가 웜의 형태로 자신을 복제를 시도하지만 감염된 시스템의 파일들에 악의적인 코드를 감염 시킨다던지 아니면 웜의 형태로 자신을 복제하지만 특정 포트를 사용하여 외부의 불법적인 접근을 유도하는 통합적인 기능들을 가지는 악성코드들이 많이 발견되고 있어 컴퓨터 사용자들의 주의를 많이 필요로 하고 있다. 

2. 악성코드 감염 피해와 증상

위에서 언급한 바와 같이 악성코드에는 자기 복제와 감염 형태에 따라 크게 바이러스, 웜과 트로이 목마로 나눌 수가 있다. 이러한 분류에 따라서 컴퓨터에 감염되는 경로와 감염시 나타나는 피해 증상도 조금씩 차이점을 보이고 있다. 이러한 차이점 외에도 감염시 겉으로는 감염 증상이 드러나지 않는 경우도 많으나 사용자가 조금만 주의를 기울여서 컴퓨터를 확인하다면 악성코드 감염으로 추정되는 이상 증상들을 조기에 파악할 수 있다. 그렇다면 악성코드 형태별 감염 경로와 피해 증상 들을 살펴보도록 하자

바이러스 감염 경로와 피해
일반적으로 바이러스는 자신을 복제하지는 않지만 정상적인 시스템 파일 또는 사용자가 직접 작성한 파일 들의 특정 부위에 바이러스 코드를 삽입하는 형태를 보인다. 바이러스 감염에 의한 파일의 변화를 [그림 1]에서 잘 표현하고 있다. 이러한 바이러스는 대부분은 자체적인 전파기능이 없으므로 인터넷에 다운받은 확인되지 않은 파일을 실행하거나 기존에 바이러스에 감염된 파일을 사용자에 의해서 플로피 디스켓 또는 USB 드라이버와 메일들을 통해서 다른 사용자에게 전달되어 실행 될 경우 감염될 수 있다.


이러한 감염 기법으로 인해 일반적으로 바이러스에 감염이 될 경우 바이러스의 감염 위치에 따라 다른 이상 증상들이 발생할 수 있다. 시스템의 부트섹터 감염시 며칠전까지도 정상적으로 부팅이 되던 윈도우 시스템이 정상적으로 부팅이 되지 않을 수 있으며 파일 자체가 감염이 될 경우에는 사용자가 실행한 특정 프로그램 또는 파일들이 정상적으로 실행되지 않거나 사용자가 예상하지 못한 오류들이 발생할 수 있다. 

웜 감염 경로와 피해
웜은 웜 자신을 시스템에 복제하고 다른 시스템으로의 확산을 시도한다. 이러한 웜의 주된 감염 경로는 전자메일과 네트워크라고 볼 수 있다. 전자메일의 경우에는 감염된 시스템에서 메일 주소를 수집하여 발신인과 수신인으로 이용하여 웜을 첨부파일로 하여 발신하게 된다. 웜이 첨부된 전자메일을 수신하게 될 경우에는 발신인이 잘아는 사람으로 되어 있어 별다른 의심 없이 첨부된 웜을 실행하게 되는 경우가 많다. 네트워크로 전파되는 웜의 경우에는 크게 두 가지로 나누어 볼 수 있다. 첫번째는 윈도우 취약점을 이용하는 경우이다. 취약점이 존재하는 윈도우 시스템을 네트워크 스캐닝을 통하여 찾게 되면 웜은 윈도우 취약점을 이용하여 감염 대상이 되는 시스템에 복제를 하게 된다. 그리고 두번째는 윈도우 시스템의 사용자 계정에 사용하는 암호의 취약점이다. 사용자 계정의 암호는 대부분의 사용자들이 윈도우 시스템에 로그온을 편하게 하기 위해서 암호를 사용하지 않는다던가 암호를 사용하더라도 '1111' 또는 'abcd' 등 간단하거나 다른 사람들도 쉽게 유추 할 수 있는 문제로 발생한다. 사용자 계정 암호의 취약점으로 인해 웜은 사용자 계정에 암호를 순차적으로 대입하는 공격법을 사용하여 사용자 계정과 동일한 권한을 획득하게 된다. 웜은 네트워크를 통해 관리목적 공유폴더로 접속시 사용자 계정의 암호로 로그온하여 웜을 복제하게 되는 것이다. 웜은 지속적으로 자신을 다른 시스템으로 복제하기 위해 감염된 시스템의 자원을 대부분을 사용하게 된다. 이 과정에서 컴퓨터 사용자는 자신이 웜에 감염되었다는 것을 인지하지 못 한채 단지 시스템이 느려지거나 네트워크가 많이 느려졌다고만 생각할 수 있다. 

트로이 목마 감염 경로와 피해
트로이 목마는 자체적인 전파기능이 없으므로 인터넷에서 배포되는 확인되지 않는 파일 그리고 악의적인 목적을 가진 제작자가 특정 사용자들에게 전자메일을 유포해 감염되는 경향이 많다. 트로이 목마를 실행하게 되면 사용자가 원하는 기능들이 실행되거나 아니면 시스템의 오류 메시지를 표시하면서 오류가 발생하는 것으로 위장하는 경우가 많다. 그러나 이 과정에서 트로이 목마는 해당 시스템에 몰래 설치되며 시스템의 특정 포트(Port)를 오픈하여 외부에서 몰래 접속 할 수 있는 환경을 만들게 된다. 해당 포트를 통해 악의적인 공격자는 감염된 시스템의 사용자 정보들을 유출하거나 시스템을 원격 제어할 수 있게 된다. 트로이 목마는 개인 정보를 유출한다는 면에서 앞서 언급한 바이러스와 웜 보다 더 위험하다고 볼 수 있다. 작게는 자주 방문하는 웹 사이트의 사용자 암호가 변경되어 접속이 되지 않을 수도 있으며 크게는 온라인 뱅킹을 통해 사용자도 모르게 통장의 잔고 모두가 다른 계좌로 이체되어 버릴 수도 있게 된다.

3. 백신을 이용한 악성코드 진단 및 치료

이러한 다양한 악성코드에 감염이 되었다면 어떠한 방법으로 이를 치료할 수 있을까? 물론제일 좋은 방법은 악성코드에 감염되지 않도록 사용자가 주의하는 것일 것이다. 그러나 예기치 않게 악성코드에 감염이 되었다면 V3와 같은 백신으로 진단 치료를 하는 방법을 생각해 볼 수 있을 것이다. 그렇다면 백신을 어떠한 방법으로 설정을 하고 컴퓨터 시스템을 검사하는 것이 좋은 지 알아보도록 하자.

백신을 최신엔진으로 업데이트하도록 하자
최근 악성코드는 앞서 말한 바와 같이 양적으로 증가하고 있어 하루에도 적게는 수십 건에서 많게는 수백 건에 이르는 신종 악성코드가 등장하고 있다. 이러한 많은 악성코드의 등장으로 인해 안철수연구소 역시 하루에도 서너번씩 신종 악성코드를 진단 및 치료 할 수 있는 최신엔진을 업데이트하고 있는 실정이다. 그러므로 컴퓨터를 부팅하였다면 제일 먼저 최신엔진이 적용되었는지 확인해보고 적용되지 않았다면 스마트업데이트 또는 홈페이지를 통해 최신엔진을 적용하도록 하자.

백신의 실시간 감시 기능을 활성화 하도록 하자
백신을 최신엔진으로 업데이트 하였다고 하여 악성코드로부터의 감염 위험에서 안심할 수 있는 것은 아니다. 물론 최신엔진으로 업데이트 되어 있으므로 악성코드를 진단 및 치료를 할 수는 있으나 감염된 이후에 진단 및 치료를 하는 것은 어떻게 보면 소 잃고 외양간 고치는 격이 아닌가 싶다. 그러므로 최신엔진 업데이트와 함께 '실시간 감시 기능'을 활성화 시켜 놓도록 하는 것이 중요하다. 여기서 말하는 실시간 감시 기능이란 시스템 부팅된 뒤 백신이 시스템을 지속적으로 감시하면서 사용자가 악성코드를 실행하거나 외부에서 악성코드가 사용자 모르게 유입될 경우에 이를 실시간으로 진단하여 치료를 할 수 있도록 하는 기능을 말한다.

일주일에 한번은 시스템의 모든 파일들을 검사 하도록 하자
특정 악성코드의 경우에는 컴퓨터 시스템에 감염만 되고 활동을 하지 않는 경우 있다. 이러한 경우는 감염된 시스템의 사용자가 특정한 작업을 한다거나 감염된 컴퓨터의 환경이 특정 시점으로 변경되어야만이 실행되는 잠복기간을 가지는 것을 예로 들 수 있다. 그러므로 일주일에 한번 정도는 사용하는 시스템의 모든 파일들을 최신엔진으로 검사하여 예상치 못한 악성코드의 실행을 예방할 수 있도록 하자. 

4. 악성코드 감염시 수동 조치

모든 악성코드를 최신엔진으로 업데이트 된 백신으로 치료가 가능하다면 컴퓨터 사용자들은 편안하고 안전하게 컴퓨터를 사용할 수가 있을 것이다. 그러나 하루에도 발생하는 악성코드는 앞서 말한 바와 같이 적게는 수십 건에서 많게는 수백 건에 이르고 있다. 그러므로 최신엔진 업데이트가 아무리 빨리 이루어진다고 하더라도 피해를 입는 컴퓨터 사용자가 발생하기 마련이다. 그렇지만 다음의 몇 가지 사항만 확인한다면 사용하는 컴퓨터에 악성코드 감염되었는지 의심해 볼 수 있다. 그리고 악성코드에 감염 되었다면 직접 응급 조치하여 감염에 따른 피해를 최소화를 할 수 있으리라 생각된다. 그럼 이러한 응급 조치 방법들에는 어떠한 것들이 있는지 알아보도록 하자.

의심되는 프로세스 확인 및 강제종료
악성코드 역시 다른 시각에서 본다면 윈도우 시스템에서 실행이 가능하도록 만들어진 윈도우 프로그램으로도 볼 수 있다. 다만 정상적인 프로그램과 달리 악성코드는 감염된 시스템에서 악의적인 기능들을 수행한다는 것이다. 이러한 관점에서 본다면 악성코드 역시 윈도우 시스템 내에서 프로세스(Process)를 생성하고 다른 윈도우 프로그램과 동일한 과정으로 윈도우 시스템에서 실행된다. 그러므로 악성코드 역시 실행 중인 프로세스를 강제종료하고 해당 파일을 삭제한다면 손 쉽게 악성코드 감염의 피해를 해결 할 수도 있을 것이다. 그렇다면 어떻게 악성코드로 의심되는 프로세스를 확인하고 강제종료 할 수 있을까? 악성코드는 일반적인 몇 가지 특징들을 가지고 있는데 이러한 것들을 알고 있다면 조금 더 쉽게 악성코드로 의심되는 프로세스를 파악 할 수 있다.

악성코드의 일반적인 특징
대부분의 악성코드는 감염된 시스템의 사용자들이 감염되었다는 것을 쉽게 알아차리지 못하도록 하기 위해 몇 가지 속임수를 쓰고 있다. 이러한 악성코드의 속임수들은 여러 종류가 있는데 일반적으로 다음과 같은 것들이 있다.

1) 윈도우 폴더 또는 윈도우 시스템 폴더에 파일을 생성한다.
윈도우 폴더는 윈도우 95/98/ME/XP는 C:\Windows이고 윈도우 NT/2000은 C:\WinNT 폴더를 나타낸다. 그리고 윈도우 시스템 폴더는 윈도우 95/98/ME는 C:\Windows\System, 윈도우 NT/2000은 C:\WinNT\System32, 윈도우 XP는 C:\Windows\System32 폴더를 나타낸다. 해당 폴더들은 윈도우 시스템이 구동 될 때와 윈도우 시스템에 설치하는 프로그램들을 실행하기 위한 파일들이 존재하므로 많은 폴더와 파일들이 존재한다. 그러므로 악성코드 제작자들은 해당 폴더들을 이용함으로써 컴퓨터 사용자들이 해당 폴더들에서 악성코드로 의심되는 파일을 찾아내기 어렵도록 하고 있다.

2) 윈도우 시스템에서 사용되는 정상적인 파일명으로 보이도록 한다.
악성코드에서 사용하는 파일명들은 윈도우 시스템에서 사용되는 정상 파일명 또는 일반적인 프로그램들에서 사용하는 정상 파일명으로 위장하는 경우가 많다. 예를 든다면 svchost.exe 파일은 윈도우 시스템에서 사용하는 정상 파일명이다. 그런데 svchost.exe 파일과 유사하게 svchos1.exe로 된 파일이 있다면 의심스러운 파일로 생각해 볼 수 있다. 이러한 경우와 같이 얼핏 보아서는 정상 파일명으로 보일 수 있으나 자세히 보면 정상 파일명과 철자가 틀린 경우처럼 사용자들에게 정상 파일명과 유사하게 보이는 속임수를 쓰고 있다.

3) 정상 파일명을 가지고 있으나 다른 폴더에 존재한다.
svchost.exe 파일은 윈도우 NT/2000/XP 에서 존재하며 윈도우 시스템 폴더(C:\WinNT\System32 또는 C:\Windows\System32)에 존재하는 윈도우 시스템 관련 파일이다. 그러나 이 파일이 윈도우 폴더(C:\WinNT 또는 C:\Windows)에 있다면 정상적인 위치에 있는 것이 아니므로 충분히 수상한 파일로 의심해 볼 수 있다. 이와 같이 정상 파일명을 가지고 있더라도 정상적인 폴더에 있는 것이 아니라 다른 폴더에 위치하여 사용자가 프로세스명 또는 파일명만을 보고서는 악성코드로 의심하지 못하도록 하고 있다.

위에서 언급한 3가지 악성코드의 일반적인 특성들을 바탕으로 악성코드로 의심되는 프로세스를 확인할 수 있는 방법과 프로세스를 강제종료 할 수 있는 방법들을 알아 보도록 하자.
프로세스를 확인하고 강제종료 할 수 있는 방법은 윈도우 시스템에 있는 기능을 활용할 수도 있으며 잘 알려진 공개용 소프트웨어를 활용할 수도 있다. 우선 윈도우 시스템에 존재하는 기능을 통해서 할 수 있는 방법을 알아보도록 하자. 그러나 한가지 주의할 점은 윈도우 시스템에서 사용하는 정상적인 프로세스를 강제로 종료 할 경우에는 윈도우 시스템에 알 수 없는 오류가 발생할 수 도 있으므로 주의하도록 하자.

윈도우 시스템의 작업 관리자를 이용하는 방법
윈도우 작업 관리자는 윈도우 NT/2000/XP에 포함되어 있으며 현재 실행 중인 프로그램과 프로세스들의 목록 확인이 가능하다. 그리고 개별적인 프로그램과 프로세스를 강제 종료할 수 있다.

1) 윈도우 NT/2000/XP 시스템에서 '시작'을 클릭한 후 '실행'에서 'taskmgr.exe'를 입력한다. 이 방법 외에 키보드에 있는 '[Ctrl]+[Shift]+[Esc]' 특수 키의 조합으로도 실행할 수 있다. 


2) 윈도우 작업 관리자가 실행되면 상단에 있는 '프로세스'를 클릭한다 프로세스를 클릭한 후 현재 실행되고 있는 프로세스 중 의심되는 프로세스가 있는지 확인하다. 만약 의심되는 프로세스가 있다면 해당 프로세스를 클릭한 후 '프로세스 끝내기'를 클릭하여 해당 프로세스를 강제 종료시킨다.


3) 의심되는 프로세스를 강제 종료할 때 다음과 같은 '작업 관리자 경고'가 발생 할 수 있다. 이는 일반적인 윈도우 시스템의 경고 메시지임으로 참고하도록 하자.


공개용 소프트웨어를 활용한 의심되는 프로세스 확인 - 01
현재 실행 중인 프로세스를 확인할 수 있는 공개용 소프트웨어들도 많이 있다. 그 중에서 Sysinternals(http://www.sysinternals.com)에서 공개용으로 배포하는 프로세스 익스플로러(Process Explorer)를 활용해보도록 하자. 프로세스 익스플로러는 윈도우의 시스템 관리자에 비해 더 많은 정보를 사용자에게 보여준다는 것이 장점이다. 윈도우 9X 사용자들은 윈도우 9X용 프로세스 익스플로러를 사용하도록 하자.

1) 프로세스 익스플로러를 실행한 후 의심되는 프로세스가 있는지 확인한다. 만약 의심되는프로세스가 존재한다면 해당 프로세스를 마우스로 클릭하여 하일라이트 하도록 한다. 그리고 오른쪽 마우스 버튼을 클릭하여 나타나는 메뉴 중에서 'Kill Process'를 클릭하여 프로세스를 강제 종료하도록 한다.


2) 메뉴 중에서 'Properties'를 클릭하면 해당 프로세스의 실행 파일 경로 등에 대한 상세한 정보를 볼 수 있다.


공개용 소프트웨어를 활용한 의심되는 프로세스 확인 - 02
프로세스 익스플로러를 이용하여 의심되는 프로세스를 확인 할 수 도 있으나 네트워크 트래픽 발생으로 인해 인터넷이 느려졌다고 여겨지는 경우에는 프로세스 익스플로러 만으로는 감염 증상을 확인하기가 어려운 것이 사실이다. 그러므로 특정 프로세스가 유발하는 네트워크 트래픽이나 사용하고 있는 포트를 확인하여 시스템의 네트워크 상태를 파악하여야 한다. 네트워크 상태를 확인하기 위해 Sysinternals(http://www.sysinternals.com)의 Tcpview를 사용해보도록 하자. Tcpview는 윈도우 버전에 상관없이 사용이 가능하며 현재 사용중인 포트들이 어떠한 것들이 있는지 그리고 네트워크 트래픽 상태에 따라 다양한 색상으로 표시함으로 사용자가 확인하기가 쉽다.

1) Tcpview를 실행 한 후 현재 네트워크에서 특정 포트를 사용하는 의심되는 프로세스 또는 과다한 네트워크 세션 연결을 시도하는 프로세스가 있는지 확인 한다. 의심되는 프로세스가 있다면 해당 프로세스를 클릭하여 하일라이트한 후 마우스 오른쪽 버튼을 클릭하여 나타나는 메뉴들 중에서 'End Process'를 클릭하여 의심되는 프로세스를 강제 종료한다.


2) 나타나는 메뉴들 중에서 'Process Properties'를 클릭하면 해당 프로세스의 실행 파일 경로와 관련한 상세한 정보들을 확인 할 수 있다.


악성코드로 의심되는 파일 삭제 
악성코드로 의심되는 프로세스를 강제 종료하였다면 이제는 해당 파일을 찾아서 지우는 방법을 알아보도록 하자. 파일을 삭제하는 방법은 윈도우 탐색기를 이용해서 삭제하는 방법과 도스 모드인 커맨드 라인을 통해서 삭제할 수 있는 방법이 있다. 그러나 우선 한가지 명심해야 할 사항은 악성코드 중에서는 윈도우 시스템에 있는 '숨김 속성'과 '보호된 운영체제 파일 숨기기' 기능을 이용하여 정상적인 방법으로는 보이지 않도록 하는 경우가 많다. 그러므로 윈도우 탐색기에서 이 두 가지 사항을 해제해주어야지만 악성코드로 의심되는 파일이 눈으로 확인이 가능하다.

윈도우 탐색기에서 의심스러운 파일 검색 및 삭제하기
1) 윈도우 탐색기를 실행한 후 상단에 있는 '도구'를 클릭한다.


2) '도구'를 선택 한 후 나타나는 메뉴 중에서 '폴더 옵션'을 선택한다. 그리고 아래 그림과 같이 '보호된 운영 체체 파일 숨기기'의 체크를 해제한다. 그리고 '숨김 파일 및 폴더 표시'에 체크 한 후 '시스템 폴더 내용 표시'에 체크를 해제한다. 여기에다 '알려진 파일 형식의 파일 확장명 숨기기'에 체크를 해제하게 되면 해당 파일이 가지고 있는 실제 확장자까지 확인이 가능하다. 그리고 확인을 클릭하면 한다.


3) 악성코드로 의심되는 파일이 존재하는 폴더로 이동한 후 실제로 해당 파일이 존재하는지 확인한 후 해당 파일을 삭제하면 된다. 


도스 모드에서 의심스러운 파일 검색 및 삭제하기
1) '시작'을 클릭한 후 '실행'에서 'cmd'를 입력하고 엔터를 누른다. 'cmd'는 윈도우 커맨드 라인 프롬프트를 실행시키는 명령이다. 해당 명령은 윈도우 NT/2000/XP에서 가능하며 윈도우 9X 계열에서는 'commad'을 입력하도록 한다.


2) 엔터를 누르면 다음 그림과 같은 도스 명령창이 실행 된다. 도스 명령창에서 의심스러운 파일이 존재하는 폴더로 이동하도록 한다. 도스명령에서 폴더를 이동하는 명령은 'cd 이동할 폴더명'이다. 해당 폴더로 이동하였다면 'attrib 의심스러운 파일명'을 입력한다. 'attrib'은 특정 파일이 가지고 있는 파일 속성값을 표시해주는 명령어이다. 만약 의심스러운 파일이 해당 폴더에 존재한다면 다음 그림과 같이 표시될 것이다. 


참고로 파일명 앞에 나타는 'SHR'은 다음 뜻을 나타낸다.

S - 시스템 파일 속성 
H - 숨김파일 속성 
R - 읽기전용 파일 속성

2) 의심스러운 파일이 존재하는지 확인을 하였다면 이제 해당 파일의 숨김속성 등을 해제하고 삭제할 차례이다. 여기서 사용할 명령은 'attrib -S -H +A 의심스러운 파일명'으로 해당 파일의 시스템 파일 속성과 숨김 파일 속성을 해제하고 보관 속성을 추가하였다. 여기까지 하였다면 다시 'attrib 의심스러운 파일명'을 입력하여 속성이 'A'와 'R'이 나타나는지 확인한다.


3) 속성이 변경된 것을 확인하였다면 의심스러운 파일에 대한 삭제명령을 내릴 차례이다. 'del 의심스러운 파일명'을 입력하고 엔터를 입력하면 해당 파일을 삭제하게 된다.


4. 데이터 백업과 복구

악성코드에 감염으로 의심되는 경우 직접 악성코드의 프로세스를 강제종료하고 삭제할 수 있는 방법들을 살펴보았다. 이러한 수동 조치 방법들 통해 응급 조치를 취하는 것도 중요하지만 평소 중요한 파일들을 백업(Bacup) 해두는 것이 중요 데이터를 보호할 수 있는 가장 좋을 방법일 것이다. 물론 악성코드 감염 되지 않도록 주의를 기울이는 것이 가장 좋은 방법인 것은 두 말 할 필요도 없을 것이다. 중요한 데이터를 백업할 수 있는 방법으로는 주기적으로 시디 라이터기를 이용하여 시디롬으로 또는 USB 메모리 드라이버를 이용하여 백업할 수 있는 방법들이 있다. 그 외의 방법으로는 윈도우 시스템에 포함되어 있는 백업 및 복원 기능을 이용할 수도 있다. 그렇다면 윈도우에 있는 백업과 복원 기능을 어떻게 활용할 수 있는지 알아 보도록 하자.

윈도우에 있는 백업과 복원 기능 활용하기
윈도우 2000과 XP에는 백업이라는 기능이 있어 손쉽게 데이터를 백업하고 복원 할 수 있다. 그렇다면 윈도우에 있는 백업 기능을 이용하여 중요 데이터들을 백업하고 다시 이를 복구하는 절차를 알아보도록 하자. 그러나 한가지 주의할 점은 악성코드에 감염되기 이전 정상적인 상태에서 백업이 이루어져야 한다는 것이다. 그렇지 않을 경우에는 악성코드 마저 백업되어 다시 복원 될 수도 있기 때문이다.

윈도우 시스템으로부터 데이터 백업하기 
1) 윈도우에 있는 백업기능을 실행하기 위해서는 시작을 클릭한 후 실행에서 'ntbackup'을 입력한 후 엔터를 입력한다.


2) 'ntbackup'을 실행하면 다음 그림과 같이 윈도우에 있는 백업 유틸리티가 실행된다. 백업 유틸리티는 사용자의 편의를 위해 '마법사 모드'와 '고급 모드' 두 가지 환경이 제공된다. 여기에서는 편의상 윈도우 XP의 '백업 및 복원 마법사'로 백업을 해보도록 하자. 그리고 윈도우 2000에서는 '마법사 모드'가 존재하지 않고 '고급모드'만 있다는 것을 알아두자.



3) '백업 및 복원 바법사'가 실행되었다면 '다음'을 클릭하여 '파일 및 설정 백업'을 클릭하도록 한다.



3) '백업할 데이터'에서는 어떠한 파일들을 백업할 것인지 설정할 수 가 있다. 이 중에서 사용하는 시스템의 모든 파일들을 백업할 수 있는 '현재 컴퓨터의 모든 정보'를 설정하도록 하자. 이 옵션을 설정하게 되면 윈도우 시스템 파일들을 포함하여 모든 파일들이 백업되므로 악성코드 감염으로 데이터가 손상되어도 시스템 전체 복원이 가능해진다. 그러나 한가지 주의할 점은 윈도우 시스템에 있는 데이터 전체가 백업 되는 것이므로 하드디스크에 충분한 여유 공간이 있는지 확인하도록 하자.


4) '백업 종류, 대상 및 이름'에서는 백업한 자료들을 어디에 저장할지 지정하여야 한다. '찾아보기'를 클릭하여 백업 파일을 저장할 폴더를 선택한다. 그리고 '백업 이름'을 백업한 날짜로 지정해주게 되면 백업 파일을 이용해 복원을 할 때에도 선택적으로 특정 시점으로 복원할 수 있게 된다는 것도 기억해두도록 하자.


5) 이제 백업을 시작할 준비가 다 되었다. 마침을 누르면 윈도우 시스템에서 자동으로 백업을 시작하게 된다.



윈도우 시스템에 데이터 복원하기 
이제까지는 윈도우 시스템에 있는 '백업 및 복원 바법사'를 이용하여 백업하는 절차를 알아 보았다. 그렇다면 이제는 백업된 데이터를 다시 복원하는 절차를 알아 보도록 하자.

1) 시작을 클릭한 후 실행에서 'ntbackup'을 입력하고 엔터를 입력하여 '백업 및 복원 바법사'를 실행하도록 한다.

2) '백업 및 복원 바법사'가 실행되었다면 이제는 백업과는 반대로 '파일 및 설정 복원'을 클릭하고 다음을 클릭한다.



3) '복원할 데이터'에서는 '찾아보기'를 이용하여 복원할 백업 파일을 지정해준다. 백업할 파일 존재하는 폴더 또는 시디롬 드라이버를 지정해주면 백업 된 파일들이 모두 나타난다. 이 중에서 한가지를 선택한 후 다음을 선택한다.


4) 여기까지 진행 되었다면 백업된 파일을 복원할 준비는 다 되었다. 마침을 클릭하면 윈도우 시스템에서 백업된 파일들을 자동으로 모두 복원해주게 된다.



윈도우 XP의 시스템 복원 기능 활용하기
이제까지 설명한 데이터 백업과 복원 방법 외에도 윈도우 XP에는 시스템 복원 기능이 있다. 시스템 복원 기능은 윈도우 XP 시스템이 자동으로 복원 지점을 설정하여 윈도우 시스템에 문제가 발생하였을 경우 사용자가 윈도우 시스템을 특정 시점으로 복원할 수 있도록 도와주는 기능이다. 그렇다면 윈도우 XP의 시스템 복원 기능을 활용하도록 해보자. 물론 이 방법도 평소 정상적인 시스템 상태에서 이루어져야 한다는 것도 잊지 않도록 하자.

1) 시스템 복원 기능 활성화하기
시스템 복원 기능을 사용하기 위해서는 먼저 해당 기능을 활성화 해주어야 한다. '시작'을 클릭한 후 '제어판'을 클릭한다. '제어판'에서 '시스템'을 클릭하여 실행하도록 한다.


2) '시스템 등록 정보'가 실행되면 상단의 '시스템 복원'을 클릭한 후 '사용 가능한 드라이브'가 모니터링 중인지 확인한다. 만약, '모든 드라이브에 시스템 복원 사용 안 함'에 체크가 되어 있다면 체크를 해제하여 시스템 복원 기능을 활성화 한다.




3) 그렇다면 이제는 윈도우 시스템이 자동으로 시스템 복원 지점을 설정한다. 만약 윈도우 시스템이 부팅이 되지 않거나 악성코드로 인해 시스템에 문제가 발생했다면 문제가 발생하기 이전 시점으로 시스템을 복원 해보도록 하자. 우선 윈도우를 '안전 모드'로 부팅하도록 하자. '안전 모드' 부팅은 윈도우 부팅 전 'F8' 펑션키로 가능하다. 윈도우 부팅시 'F8'을 눌렀다면 다음과 같은 메시지들을 만나게 될 것이다.

안전모드
안전모드 (네트워킹 사용)
안전모드 (명령 프롬프트 사용)

이 중에서 '안전모드' 또는 '안전모드 (네트워킹 사용)'를 선택하여도 상관 없다. 두 안전모드의 차이점은 네트워크를 사용할 수 있는가의 차이점이다.

4) '안전모드'로 선택하여 안전모드로 윈도우에 로그온 하였다면 안내창이 생성된다. 안전모드로 계속 작업을 할 경우에는 [예]를 그렇지 않고 우리와 같이 '시스템 복원' 기능을 활용하기 위해서는 [아니오]를 클릭한다. [아니오]를 클릭하면 다음 그림과 같이 시스템 복원 시작을 알리는 창이 생성된다. 여기서 수행할 작업에 '이전 시점으로 내 컴퓨터 복원'에 클릭되어 있는지 확인하고 다음을 클릭한다.


5) 이제는 어떠한 복원 지점을 선택할지 클릭하여야 한다. 복원할 지점은 윈도우 시스템에 문제가 발생한 것으로 추정되는 이전 시점으로 설정하면 된다. 날짜를 설정하면 해당 날짜에 백업 유틸리티로 백업을 한 적이 있다면 시스템 검사점과 동시에 나타나며 그렇지 않을 경우에는 시스템 검사점만 나타난다. 윈도우에서 지정한 시스템 검사점으로 복원할 경우에는 '시스템 검사점'을 선택한 후 다음을 클릭한다.


6) 복원 지점에 대한 확인 화면이 등장한다. 자신이 선택한 복원 지점이 맞는지 확인한 후 다음을 클릭한다. 이제는 윈도우가 자동으로 지정한 날짜로 시스템 복원을 진행한 후 리부팅 하게 된다. 


5. 맺음말

이제까지 악성코드는 어떠한 것이며 악성코드로 인해 어떠한 피해가 발생할 수 있는지를 살펴보았다. 이와 더불어 컴퓨터에 문제가 발생하였을 경우에 어떻게 대처를 하는지 그리고 어떻게 복원할 수 있는지도 알아 보았다. 이러한 응급 조치 방법을 알아 놓는다면 시스템이 악성코드에 감염되어 문제가 발생할 수 있을 때 복원하기가 쉬울 것이다. 하지만 이러한 응급 조치 방법과 더불어 평상시 사용자 스스로가 컴퓨터가 악성코드에 감염되지 않도록 관리하고 세심한 주의를 기울여 살펴본다면 이러한 응급 조치를 통해 시스템을 복원해야 되는 시간과 노력을 기울이지 않아도 되리라 생각된다. 그러므로 컴퓨터에 백신을 설치하고 주기적으로 검사하는 예방만이 중요한 데이터가 많은 컴퓨터를 포맷하거나 포기하여야 하는 큰 손실로부터 벗어날 수 있다고 생각한다.

2012년 8월 11일 토요일

스티브 잡스에 대한 이런 저런 생각들....

작년 10월 애플의 CEO였던 스티브 잡스의 전기가 출판 되었습니다. 제가 자서전이라고 표현하지 않은 점은 저자가 스티브 잡스 본인이 아니며, 월터 아이작슨이라는 작가가 스티브 잡스와의 인터뷰 내용과 함께 주변 인물들로부터 스티브 잡스에 대한 이야기들을 듣고 이를 바탕으로해서 3인칭 작가 시점으로 글을 썼기 때문입니다.


저 역시 작년 가을에 전기가 출판되자 마자 회사 복지카드로 구매를 했다가 서재 책상위 한 모서리에 고이 모셔 두다 올해들어 퇴근 후 침대에 누워 조금씩 읽기 시작해 약 3개월만에야 다 읽을 수 있었습니다. 

처음 책을 받아 보았을 때 책의 두께에 사실 조금은 놀라버렸습니다. '이 것을 언제 다 읽어보나' 하는 생각이 들었는 데다 작년 가을 당시에는 홍콩에서 개최 예정이었던 AVAR(Association of anti Virus Asia Researchers) 컨퍼런스에서 논문 발표도 준비하고 AhnLab CORE와 AhnLab SecurityFair 세미나도 준비해야 되어 시간적으로, 정신적으로 여유가 없었습니다. 그래서 한동안 이 책에 손이 가지 못했던 것이 아닌가 하는 생각이 듭니다.

약 3개월에 걸쳐 책을 다 읽고 나니 이런 저런 생각들이 많이 들었습니다. 

먼저 작가에 의해 묘사된 스티브 잡스는 인간적으로는 그의 회사 제품 만큼 매력적인 인물로 보여졌다는 생각은 들지는 않았습니다. 고집이 세고 독단과 독선적인데다, 가끔은 지나칠 정도의 냉정함들.. 이런 모습들이 저에게는 그렇게 좋게 다가오지는 않았습니다.

그의 인생을 천천히 살펴보면 그리 순탄하고 편한 길들만을 걸어 오지 않은 것은 사실인 것 같습니다. 그런것들로 인해 잡스의 사고방식과 성격이 그렇게 만들어지게 되었나하는 생각도 들면서, 한편으로는 만약 한국에 태었났다며 어떻게 되었을까 하는 생각도 들었습니다.

그 당시 한국 상황은 한국 전쟁 직후라 좋지 않은 사회 상황에다, 입양아라는 사회적인 선입견 그리고 다양성을 인정한다는 미국 사회에서도 좋지 못한 이야기들을 들었던 독단적이고 독선적인 성격들.. 거기다 선불교와 채식에 대한 과도한 집착들...

이런 점들이 모두 합쳐지게 된다면 과연 스티브 잡스는 한국 사회에서 정상적인 사회 생활 자체를 할 수 있었을까 하는 의문이 듭니다. 아마도 스티브 잡스는 입양아라는 선입견에다 사회 부적응자라는 낙인이 찍힌채 쓸쓸하게 살아가지 않았을까 하는 생각이 듭니다. 그렇게 되었다면 지금 우리가 사용하는 여러 제품들이 나올 수 없었겠지요.

물론 그의 모든 면이 좋지 못한 것은 아닙니다. 가장 기억에 많이 남는 단어인 "현실 왜곡장"은 부정적이거나 관심이 없는 일들을 무시하게되는 부정적인 면도 있지만, 다른 사람들에게 자신의 한계를 극복하고 할 수 있다는 자심감을 심어주는 좋은 촉매제의 역할도 하게 됩니다. 그 점이 현재의 애플을 만들고, 멋진 제품들이 나오게 큰 영향을 미치지 않았나 생각 됩니다.

그리고 그의 전기를 통해 사실 저의 어릴적 생각도 많이 났었습니다. 제가 처음으로 만지고 배웠던 PC가 87년 애플2 였습니다. 다만 그 이후 애플 제품들은 저에게 잊혀졌고 대학 시절 출판 관련 디자인 일을 하는 친구의 맥을 잠시 살펴본 것이 전부였습니다. 물론 한 참이 흐른후 아이폰과 아이패드가 출시되면서 저도 애플을 좋아하는 사람의 부류에 포함은 되었지만요.

아이폰5가 다음 달인 9월에 출시된다는 이야기가 있습니다. 스티브 잡스가 없는 애플에서 만든 제품이 얼마나 많은 인기를 얻게 될지 기대가 됩니다. 저 역시 점점 느려지는 아이폰3GS를 볼때마다 아이폰5가 더 기다려 집니다.

2012년 8월 9일 목요일

‘정보의 바다’에 판치는 해킹 프로그램 ‘트로이의 목마’

2003년 1월 즈음에 "신동아"에 기고했던 "당신 컴퓨터의 비밀이 샌다
‘정보의 바다’에 판치는 해킹 프로그램 ‘트로이의 목마’" 썼던 악성코드 관련 원고 입니다.

입사 이후 수습 기간이 끝나고 서서히 업무 파악하고 적응한지 7개월 정도 되던 시점에 외부에서 원고 청탁이 있었던 것으로 기억합니다. 그래서 알고 있던 지식들을 정리한다는 생각으로 조금씩 썼었는데 지금 다시 읽어보니 A4 분량으로 10페이지가 넘어가는 분량이네요.

그 당시 악성코드 분석과 테스트가 지금과 같이 VMware와 같은 가상화 소프트웨어를 이용하던 시기가 아니고, 윈도우 98이 메인 분석과 테스트 운영체제 였습니다. 그리고 윈도우 XP가 2001년 10월 26일 이미 판매되고 있는 시점이었지만, 아직 기업과 개인들에게는 대부분 윈도우 98이 사용되고 있었습니다.

그래서 원고 내용 대부분이 윈도우 98에 초점이 맞추어져서 설명 되어 있습니다. 물론 담당 기자님께서 딱딱한 기술적인 내용들을 재미있게 정리해주셔서 지금 보아도 그리 많이 어색하지 않네요.

그리고 담당 기자님께서 그 당시 실제 악성코드에 감염되어, 실제로 겪었던 일들을 초반에 소설처럼 쓰셨던 것으로 기억 나네요.

+-----------------

당신 컴퓨터의 비밀이 샌다
'정보의 바다'에 판치는 해킹 프로그램 '트로이의 목마'

컴퓨터는 그 앞에 앉은 사람만이 조작할 수 있다고 믿는가.

사무실 출입문 통제장치와 감시 카메라만으로 비밀자료 가득한 컴퓨터를 지킬 수 있다고 생각하는가. 당신이 퇴근한 사이 수십, 수백 킬로미터 밖에 있는 경쟁사의 해커가 당신의 컴퓨터를 켜고 이메일과 기밀보고서를 열어본다면? 생각 없이 다운 받은 프로그램에 숨은 '트로이의 목마'를 통해 지금 누군가가 당신의 컴퓨터를 사용하고 있다.

마감시간에 쫓겨 열심히 일하고 있던 3년차 기자 S모씨. 사무실 컴퓨터를 마주하고 워드프로그램으로 기사를 작성하는 중이었다. 풀리지 않는 마지막 문장을 가다듬기 위해 담배를 피우려 잠시 자리를 비웠던 S기자는 자신이 쓰지 않은 한 문장이 기사 밑에 들어 있는 것을 발견했다.

'논문을 쓰시나 보죠?'

동료들의 장난이라고 생각한 S기자는 주위 사람들에게 물었지만 "웬 뜬금 없는 소리냐"는 면박만이 돌아왔다. 그러고 보니 내용도 이상했다. 기사를 쓰고 있는 줄 뻔히 아는 동료들이 논문 운운할 리가 없지 않은가. 이상한 일이라고 생각했지만 시간에 쫓긴 S기자는 기사를 끝내기 위해 자리에 앉았다. 그 순간 S기자는 모골이 송연해졌다.

'아하, 기자이신 모양이군요.'

키보드를 건드리지도 않았는데 누가 치기라도 하는 것처럼 글자들이 하나씩 화면에 떠오르는 것이 아닌가. 흡사 귀신의 장난 같았다. 이게 도대체 무슨 일이란 말인가.

'많이 놀라셨나요? 뭐라고 말 좀 해보세요.'

놀란 마음을 가까스로 진정시킨 S기자는 자판을 두드렸다.

'당신 누구요? 지금 무슨 장난을 치고 있는 겁니까? 남의 컴퓨터에 함부로 들어오는 것은 범죄 아닙니까?'

'평소에 바이러스 체크를 잘 안 하시나 보죠? 조심하시는 게 좋을 겁니다.'

그걸로 끝이었다. 남의 컴퓨터에 마음대로 글을 써대던 유령 같은 불청객은 그 말만을 남기고 다시는 나타나지 않았다. 서둘러 회사의 전산담당자를 불러 구멍난 보안시스템을 재점검했지만 찜찜한 기분은 가시지 않았다.

인터넷 바다의 '식인상어'

워드프로그램에 글을 쓸 수 있다는 것은 자신의 컴퓨터 화면을 단순히 들여다보는 것이 아니라 마음대로 조작하고 사용할 수 있다는 소리였다. 그뿐인가. 메일 박스를 열어보는 것은 물론 자기 이름으로 메일을 보낼 수도 있고, 인터넷 히스토리 파일을 열어 자신이 어느 사이트를 돌아다녔는지도 확인할 수 있을 터였다. 혹시 자신의 계좌로 등록한 인터넷 뱅킹을 마음대로 사용할 수 있을지도 모를 일이었다.

컴퓨터로 모든 것을 해결하는 그에게 자신의 컴퓨터를 누군가가 자기처럼 쓸 수 있다는 것은 단순히 기분나쁜 차원에서 끝날 일이 아니었다. 마음만 먹으면 한 개인을 완전히 파멸시킬 수도 있는 무서운 일이었다. S기자의 등줄기에 식은땀이 흘러내렸다.

대부분의 컴퓨터 사용자에게 이제 인터넷은 필수불가결한 요소가 된 지 오래다. 인터넷 바다에 연결돼 있는 컴퓨터 한 대만 있다면 입출금을 위해 은행에 갈 필요도, 증권거래를 위해 객장에 나갈 일도 없다. 외국 지사에 있는 직원들과 실시간으로 화상회의를 하거나 이메일을 이용해 중요한 문서들을 전달하는 것도 일상사가 되었다.

그러나 바다에 식인상어가 있듯 인터넷에도 당신을 노리는 이들이 즐비하다. 해킹은 더 이상 신문방송에서만 접할 수 있는 남의 일이 아닌 것이다. 초고속통신망에 연결되어 있다는 것은 내 컴퓨터가 정보를 얻을 수 있다는 뜻도 되지만 외부에서 내 컴퓨터에 접속할 수 있다는 이야기도 되기 때문이다. 해킹 기술이 소수 전문가들의 것이었던 예전과 달리 이제는 개인 사용자도 언제 어디서 해킹으로 피해를 입게 될지 모르는 상황이다.

최근 해커들의 공격기법 분석에 따르면 전에는 주된 공격 대상이 기업이나 대학 전산망에 국한되어 있었지만, 최근에는 수천 수만의 독립된 개인 컴퓨터를 드나들거나 이를 향후 다른 해킹 공격의 경유지로 사용하고 있다. 개인 사용자들을 공격의 중간 지점으로 활용하는 다양한 분산서비스거부공격(Distributed Denial of Service)과 웜/바이러스들이 쏟아져나오고 있는 것.

S기자가 당한 '원격조작'의 경험은 이른바 '트로이의 목마(Trojan Horse)' 프로그램을 통한 해킹이다. 백 오리피스 등 이러한 방식의 공격은 방법이 널리 알려져 있고 사용법이 간단해 누구나 쉽게 이용할 수 있다. 방법은 생각보다 간단하다. 해킹하고 싶은 상대방에게 트로이의 목마 프로그램이 저절로 가동되도록 설정해 이메일을 보내면, 상대방이 메일을 여는 순간 프로그램이 하드에 자동으로 다운되는 것이다.

S기자가 만난 해커의 경우는 컴퓨터를 특정해 공격한 것이 아니라 불특정 다수에게 해킹 프로그램을 뿌렸거나 이미 뿌려진 해킹 프로그램을 통해 침입한 것으로 보이지만, 트로이의 목마 프로그램이 특정인을 상대로 사용될 경우 피해는 훨씬 더 심각해진다. 대상에게서 필요한 모든 정보를 빼낼 수 있기 때문이다. 해커를 고용해 경쟁업체 컴퓨터에 침입해 정보를 빼내거나, 원한을 품고 잠입하는 경우 문제는 전화도청과는 비교할 수 없을 정도로 심각해진다.

눈치 빠른 독자들은 이미 알아챘겠지만 '트로이의 목마'라는 프로그램 이름은 호메로스의 일리아드에 나오는 '트로이의 목마'에서 나온 말이다. 휴전과 친선의 의미로 만들었다고 믿었던 커다란 목마에서 그리스 군사들이 나와 승리의 기분에 취한 트로이 성을 함락시켰듯, 트로이의 목마 프로그램도 상대편이 눈치채지 못하게 몰래 숨어든다는 뜻으로 이름 붙여진 해킹 프로그램인 것이다.

트로이의 목마 프로그램은 대개 합법적인 프로그램으로 위장하거나 실행 가능한 코드 형태로 다른 프로그램의 내부에 숨어 있다. 유용한 기능을 수행하는 것처럼 보이는 독립된 프로그램 속에 흩어져 숨어 있다가, 사용자가 의심없이 그 프로그램을 실행하면 본색을 드러내 해커가 컴퓨터에 침입할 수 있는 통로를 만들어준다.

적을 알고 나를 알아야 전쟁에서 승리할 수 있는 법. 트로이의 목마로부터 당신의 컴퓨터를 지키기 위해서는 우선 트로이의 목마가 어떻게 활동하는지 정확히 알아둘 필요가 있다.

서버는 첩자, 클라이언트는 리모컨 

트로이의 목마 프로그램은 대부분 동일한 유형의 형태를 가지고 있다. 그 구조를 흔히 서버와 클라이언트 구조라고 말하는데, 이는 우리가 웹 서버나 기타 다른 여러 서버에 접속을 하여 서비스를 요청하고 그 해당 서버는 서비스를 제공해주는 것과 동일한 형태를 갖고 있다.

여기서 서비스를 받고자 요청하는 컴퓨터가 클라이언트이고, 서비스를 제공하는 컴퓨터가 바로 서버다. 웹 서핑을 하거나 이메일을 주고받는 등 인터넷을 통해 이루어지는 모든 네트워크 행위는 한마디로 '서버와 클라이언트 사이에서 일어나는 일'이라고 정리할 수 있다.

트로이의 목마 프로그램에서 서버 파일은 해킹을 하려고 하는 컴퓨터에 몰래 잠입해 실질적으로 실행이 되는 프로그램을 말한다. 만약 개인 컴퓨터에 컴퓨터 바이러스 백신이나 개인용 방화벽이 설치되어 있지 않은 상태에서 이 서버 파일이 실행된다면, 서버 파일은 어떠한 제약없이 마음대로 활동할 수 있다. 이 서버 파일이 실행되고 있는 컴퓨터는 해커에게 자신의 주인과 동일한 모든 권한을 제공한다. 키보드 앞에 앉아 있는 사람과 인터넷을 통해 원격조정하는 해커를 구별할 수 없게 되는 것이다. 즉 서버 파일은 트로이의 목마 안에 숨어 있던 그리스 군인들과 동일한 역할을 맡는 셈이다.

원격지에 있는 해커는 서버 파일에게 서비스를 요청하는 클라이언트 파일을 갖고 있다. 이 클라이언트 파일이 해킹당하는 컴퓨터를 조정하는 일종의 리모컨 역할을 하는 것. 그러므로 아무리 멀리 떨어진 지역에 있는 컴퓨터라해도 서버 파일이 실행 되고 있다면 그 거리에 상관없이 클라이언트 프로그램을 이용해 마음대로 조정할 수가 있게 된다.

컴퓨터와 컴퓨터 사이에 통신이 이루어져 데이터를 전송하기 위해서는 컴퓨터에 포트(Port)라는 가상의 출입구가 열려 있어야 한다. 우리가 인터넷에서 웹 서핑을 하는 경우에는 해당 서버의 80번 포트로 연결을 요청하게 되고 이 포트를 통해 여러 서비스를 받을 수 있다. 한편 이메일을 보낼 때는 해당 메일 서버의 25번 포트에 접속하여 서비스를 받는다.

이처럼 서버는 일정한 출입구가 열려야만 서비스를 제공할 수 있다. 트로이의 목마 프로그램의 서버 파일 역시 동일한 특성을 갖고 있다. 서버 파일이 실행되면 원격지에 있는 해커들이 개인 사용자의 컴퓨터에 침입할 수 있도록 이 가상의 출입구인 특정한 포트를 제 마음대로 열고 닫는다. 출입구가 열리면 해커는 해당 컴퓨터의 CD롬 드라이브를 여닫거나 윈도를 사용하고 있는 사용자를 로그오프 시켜버리는 등 컴퓨터를 마음대로 조정할 수 있다. 물론 S기자의 경우처럼 해당 컴퓨터의 사용자와 실시간으로 메시지나 채팅을 주고받을 수도 있다.

그러나 이러한 다양한 가능성 중에서 개인 사용자들이 주의를 기울여야할 가장 위험한 기능은, 트로이의 목마 프로그램이 개인 사용자가 현재 입력하고 있는 모든 키보드 입력 값을 실시간으로 원격지에 있는 해커들에게 전송하거나 키보드 입력 값을 저장하여 그 저장된 정보를 해커들에게 이메일로 전송할 수도 있다는 사실이다. 보통 스크린에는 '****'로 처리되어 나타나지 않는 비밀번호나 사이버 증권거래 암호까지도 해커가 확인할 수 있는 것은 이 때문이다.

창과 방패 

그렇다면 트로이의 목마 프로그램의 서버 파일을 개인 컴퓨터에 설치하기 위해서는 어떤 방법이 사용될까. 쉽게 말해 컴퓨터가 프로그램을 다운받을 수 있는 모든 경로가 다 해당된다.

첫째는 직접 감염 방식. 트로이의 목마 서버 파일은 그 크기가 상당히 작아서 일반 플로피 디스켓에도 얼마든지 저장이 가능하다. 이렇게 저장이 된 서버 파일을 해커가 직접 상대방의 컴퓨터에 설치하면 가장 확실한 방법이 될 것이다. 남은 일은 원격지에서 해당 컴퓨터를 들여다보거나 직접 조작하는 것뿐이다.

둘째는 앞에서 설명한 바 있는 이메일을 이용한 감염 방법이다. 인터넷에서 쉽게 구할 수 있는 이메일 주소를 통해 불특정 다수에게 트로이의 목마 프로그램의 서버 파일을 뿌리는 방법이 자주 사용된다. 물론 서버 파일은 개인 사용자의 호기심을 유발할 수 있는 프로그램의 명칭으로 변경하거나 유용한 프로그램 내부에 삽입해 보내게 된다. 특별히 보안자료를 열어보고 싶은 컴퓨터가 있는 경우에는 그 사용자에게만 메일을 보내는 방법으로 공격상대를 한정할 수도 있다.

셋째는 와레즈 사이트 등에 불법적으로 게시해놓은 정품 소프트웨어의 설치 파일 사이에 트로이의 목마의 서버 파일을 삽입하는 방식이 있다. 이 경우에도 개인 사용자는 아무런 의심 없이 불법 게시된 정품 소프트웨어를 설치하지만, 이때 그 뒷면에 같이 포함돼 있는 트로이의 목마 서버 파일도 설치됨으로써 침입경로를 만들어주는 것이다.

이제 적의 정체와 공격루트를 알았으니 방어전략을 수립할 차례다. 트로이의 목마 프로그램으로부터 자신의 컴퓨터를 보호하여 해커의 원격조정을 막을 수 있는 가장 좋은 방법은 컴퓨터 바이러스 백신 프로그램과 개인 사용자를 위해 개발된 개인용 방화벽 프로그램을 설치하는 것이다.

대부분의 백신 프로그램은 바이러스뿐 아니라 트로이의 목마 같은 해킹 프로그램 역시 진단하고 삭제할 수 있는 기능들을 포함하고 있다. 한편 개인용 방화벽 프로그램은 외부에서 개인 사용자가 잘 알지 못하는 특정 출입문을 열기 위해 접속을 시도하거나, 반대로 컴퓨터가 사용하지 않는 출입문을 열려 할 때 이를 모두 감지해 사용자에게 통보하고 막는 기능을 갖고 있다.

최선의 방어는 '업데이트' 

<그림1> 트로이의 목마에 감염된 컴퓨터를 netstat 명령으로 점검하면 5000번을 넘는 포트의 상태가 "listening"으로 나타난다. 


그러나 방패가 있으면 더욱 강력한 창이 등장하는 법. 최근 트로이의 목마 프로그램은 컴퓨터 바이러스가 발전함에 따라 점점 지능적으로 진화하고 있어 수동적으로 제거하기가 힘들다. 심지어는 컴퓨터 바이러스 백신과 개인용 방화벽 같은 방어 프로그램 관련 파일을 컴퓨터에서 삭제해버리는 트로이의 목마 프로그램도 있다. 따라서 백신에 의해 안전하다고 확인된 파일이라 해도 실제로는 트로이의 목마일 가능성이 얼마든지 있다. 결국 개인 사용자들은 의심이 가는 파일을 받았을 경우 일단 백신회사로 보내 분석을 의뢰하는 것 이외에는 방법이 없는 셈이다.

물론 바이러스 백신과 개인용 방화벽의 지속적인 엔진 업데이트와 버전 업 등을 통해 방어무기를 최고상태로 다듬어두어야 하는 것은 두말할 나위가 없다. 또한 트로이의 목마 프로그램은 윈도 운영체제의 취약점을 이용하여 침투하는 경우가 있으므로 항상 윈도 운영체제의 최신 패치를 설치해 취약점을 제거하는 노력도 필요하다.

자가진단 : 지금 내 컴퓨터에는?

혹시 내 컴퓨터가 백신 프로그램도 모르는 최신형 트로이의 목마에 감염되어 있는 것은 아닐까. 백신을 사용해본 사람이라면 한번쯤 느껴봤을 만한 의구심이다.

이제부터는 간단하게 자신의 컴퓨터가 트로이의 목마의 공격을 받고 있는 것이 아닌지 진단할 수 있는 방법을 살펴보기로 하자. 조금 딱딱한 내용일 수도 있지만 컴퓨터를 켜고 실제로 따라하다 보면 어렵지 않게 결과를 확인할 수 있다.

<그림2> 트로이의 목마에 감염된 컴퓨터의 레지스트리 화면에는 이상한 철자의 프로그램이 등록되어 있다. 


1. 윈도에서 "netstat" 명령어를 이용하는 방법

netstat 명령은 현재 윈도 운영체제가 네트워크상에 열어둔 모든 포트를 확인하라는 명령어이다. 쉽게 말해 어느 문이 열려 있는지, 혹 나도 모르게 뚫린 구멍은 없는지 살펴보라는 뜻. 이 명령어를 이용해 특정한 숫자의 포트가 열려 있음을 확인했다면 트로이의 목마 프로그램에 감염되어 있는 게 아닌가 의심해볼 필요가 있다. 다음은 netstat 명령어 옵션들이다.

netstat a : 연결된 혹은 연결을 기다리고 있는 모든 포트 상태를 보여준다.
netstat n : 호스트 서버 이름 대신에 IP 주소를 보여준다.
netstat p, s : 주로 함께 사용하는데 프로토콜의 출력 상태를 나타낸다.
established : 현재 연결되어 있는 상태라는 뜻.
listening : 연결 대기 상태라는 뜻.
time_wait : 이미 해당 컴퓨터와 연결이 종료되었거나 다음 연결을 위해 대기하고 있는 상태라는 뜻.
syn_sent : 접속하기 위해 패킷을 전송했다는 뜻.

위에서 언급한 옵션들 중에서 가장 중요한 것은 a와 n 옵션이며 같이 붙여서 -an이나 -na로 사용할 수도 있다. 무척 어렵게 느껴지지만 다음의 확인절차를 따라가다 보면 생각보다 간단할 것이다. netstat 명령어의 실행 방법과 확인 절차는 아래와 같다.

우선 윈도의 시작 버튼을 클릭한다. 다음 실행을 클릭하고 윈도98에서는 "command", 윈도XP나 윈도2000에서는 "cmd"를 입력하고 확인을 클릭한다. MS-DOS 창이 열리는 것이 보일 것이다. MS-DOS 창의 "C:/" 뒤에 "netstat (옵션을 줄 경우에는 한 칸을 띄운다)"을 입력하고 엔터키를 눌러보자. 다음 '그림1'처럼 결과화면에서 5000번 이상의 알 수 없는 포트에서 "listening"이라고 나오는지 확인하면 된다.

netstat 명령어를 통해 수시로 컴퓨터를 점검하고 확인하면 자기가 알지도 못하는 사이에 컴퓨터가 외부로 연결되어 있는지 감시할 수 있다. 만약 비정상적으로 높은 숫자의 포트에서 "listening"이 나타나는 경우에는 트로이의 목마 프로그램에 감염된 것일 수 있으므로 최신 백신 프로그램을 다시 다운받아 전체 컴퓨터를 진단하거나 관련회사에 문의하는 것이 좋다.

<그림3> 정상적인 컴퓨터에서는 win.ini 파일 화면의 "load"나 "run"부분 


2. 레지스트리를 이용하는 점검 방법

윈도에는 레지스트리라는 것이 있다. 한마디로 윈도 운영체제의 모든 정보를 담고 있는 정보보관소인 셈. 트로이의 목마 프로그램은 일반적으로 레지스트리의 특정 경로에 자신의 키 값을 등록해 윈도를 시작할 때 자동으로 실행되므로, 이 레지스트리를 확인하면 트로이의 목마 프로그램에 감염됐는지 여부를 알아볼 수 있다. 성 안 곳곳에 흩어져 숨어 있는 적군의 발자국을 찾아보는 것으로 이해하면 편하다. 역시 쉽지 않은 설명이지만 차근차근 따라오면 된다. 윈도98, 윈도2000, 윈도XP 등 운영체제의 종류에 상관없이 레지스트리 값을 하나하나 확인해 본인이 설치한 프로그램이 아닌 수상한 프로그램이 등록되어 있는지 확인하면 된다.
우선 윈도의 시작 버튼을 클릭한다. 실행을 클릭하고 "regedit"을 입력한 뒤 엔터를 누른다. '그림2'와 같이 아래에 언급하는 레지스트리 키 값을 확인하여 본인이 등록한 적이 없고 철자가 이상하게 다른 수상한 프로그램이 등록되어 있는지 확인한다. 만약 레지스트리의 특정 키 값에 수상한 프로그램이 등록되어 있다면 트로이의 목마 프로그램이 침입한 것으로 의심되므로 역시 최신 백신을 이용해 컴퓨터 전체를 진단해보아야 한다.

HKEY_LOCAL_MACHINEsoftwaremicrosoftwindowscurrentversionrun
HKEY_LOCAL_MACHINEsoftwaremicrosoftwindowscurrentversionrunservice
HKEY_LOCAL_MACHINEsoftwaremicrosoftwindowscurrentversionrunserviceonce
HKEY_LOCAL_MACHINEsoftwaremicrosoftwindowscurrentversionrunonce
HKEY_LOCAL_USERsoftwaremicro-softwindowscurrentversionrun
HKEY_LOCAL_USERsoftwaremicro-softwindowscurrentversionrunonce
HKEY_LOCAL_ USERsoftware microsoftwindowscurrentversionrunservice

3. 기타 확인 사항

윈도98에서는 win.ini 파일과 system. ini 파일을 통해서 트로이의 목마 프로그램 감염 여부를 확인할 수도 있다. 절차도 간단하다. 윈도의 시작 버튼을 클릭한 뒤 실행을 클릭해 창이 뜨면 "sysedit"을 입력하고 엔터를 누르면 몇 개의 창이 뜬다. 이중 "C:windowswin.ini" 창과 "C:windowssystem.ini" 창을 각각 살펴보면 된다.

당신만이 지킬 수 있다 

<그림4> 감염된 컴퓨터의 경우 system.ini 파일의 "shell" 부분에 "explorer.exe" 말고도 수상한 프로그램이 등록되어 있는 경우가 많다. 



그 다음 '그림3' 및 '그림4'와 비교해 수상한 프로그램이 등록되어 있는지 확인한다. 정상 컴퓨터의 win.ini 파일에서는 '그림3'과 같이 "load"나 "run" 부분이 비어 있다. 만약 여기에 개인 사용자가 등록하지 않은 수상한 프로그램이 설정되어 있다면 트로이의 목마에 감염된 것으로 의심해볼 수 있다. system.ini 파일의 경우에는 "shell" 값에 '그림4'처럼 "explorer.exe" 이외에 철자가 이상한 프로그램이 등록되어 있는지 확인해 트로이의 목마를 찾아낼 수 있다.

이상으로 간단하게 컴퓨터에서 트로이의 목마 프로그램을 진단할 수 있는 방법들을 살펴보았다. 하지만 가장 좋은 방법은 이미 언급했듯 컴퓨터 바이러스 백신과 개인용 방화벽 프로그램을 설치하고 항상 최신 엔진과 최신 버전으로 업데이트할 수 있도록 관리하는 것 뿐이다. 굳이 사용자가 확인하지 않아도 컴퓨터 스스로 시스템을 지속적으로 감시할 수 있게 설정해두는 것도 중요한 일이다. 이메일을 통해 날아온 수상한 첨부 파일을 함부로 열거나 인터넷 와레즈 사이트에 불법 게시되어 있는 소프트웨어를 무턱대고 다운받는 간 큰 사용자는 없을 것으로 믿는다.

이제 당신은 적군의 전투력과 전략, 공격 루트를 확인하고 그에 대응하는 방어 전략에 관한 정보를 숙지했다. 그러나 전투에서 가장 중요한 것은 역시 마음가짐이다. 상대가 강력할수록 경계태세를 늦추지 않는 자만이 성을 지킬 수 있다. 그러므로 방법은 단 하나, 늘 관심을 갖고 점검하는 것뿐이다.

트로이의 목마로부터 자신의 컴퓨터를 보호하는 일은 당신이 아니면 아무도 할 수 없다. 당신의 컴퓨터를 통해 회사의 기밀정보가 경쟁업체에 넘어가 막대한 타격을 입는다면, 그 궁극적인 책임은 바로 당신에게 있다.