2012년 8월 13일 월요일

악성코드와 데이터 복구

온더넷이라는 잡지에 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. 맺음말

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

댓글 없음:

댓글 쓰기