강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

악성 코드(malicious code) 대응지침

작성자 정보

  • 웹관리자 작성
  • 작성일

컨텐츠 정보

본문

악성 코드(malicious code) 대응지침

공재순 kong@certcc.or.kr
전완근 wkjeon@certcc.or.kr

개요

인터넷 이용자들 누구나 한번쯤은 바이러스나 웜, 트로이목마등 악성코드에 감염되어 당황했던 적이 있을 것이다. 바이러스에 대한 최신 정보를 인지하고 있더라도, 악성코드들에 대한 원천적인 대응책을 알지 못해서라든가, 각종 응용프로그램의 설정상의 문제 또는 악성코드들의 감염을 유도하는 방법이 교묘해지면서 또다시 감염되는 상황이 발생하곤 한다. 이러한 점에서, 특정 바이러스에 대한 치료방법이나 대응책과 더불어 기본적으로 지켜야 할 대응원칙들이 확인되어야 할 필요가 있다.

본 문서에서는 일반 사용자들이 바이러스, 웜, 트로이목마, 그 밖의 의심스러운 code로부터 시스템을 보호하기 위한 원칙적인 사항들을 소개함으로써 악성 코드들에 대한 대응방안을 제시하고, 재감염 되는 불행을 막는데 도움을 주고자 한다.


I. 주의예방법

1. 정기적으로 백신프로그램 및 응용 프로그램 보안 업데이트

o 운영체제 및 MS사 응용프로그램 업데이트

업데이트나 패치작업이 서버 시스템에만 필요한 것은 아니다. 그러나 일반 PC이용자들은 자신 이 설치한 운영체제나 응용프로그램에도 보안상 취약점이 생길 수 있다는 사실을 모르거나, 크 게 관심을 두지 않는 경우가 많은데, 보안상 악성코드들의 주요 공격목표가되는 Microsoft社의 OS나 응용프로그램들에 대한 보안권고 사항을 주시하여, 권고사항을 따라야한다.

Microsoft사 권고 및 패치사이트 : http://www.microsoft.com/security/

HFNetChk 나 MBSA(Microsoft Baseline Security Analyzer) 툴을 통한 패치여부 점검하고,
Microsoft사의 Protection Program을 참고하길 바란다.

http://www.microsoft.com/security/mstpp.asp

o 백신프로그램 업데이트

백신사들 마다 다소 차이는 있으나 매주 업데이트가 이뤄지고, 긴급한 경우 수시로 업데이트를 하기도한다. 정기적인 업데이틀 통해 검색엔진을 최신 버전으로 유지하고, 백신사에서 발표하는 경보를 주시해야 할 필요가 있다.

안철수연구소, 하우리 : 매주 수요일 정기업데이트
시만텍코리아, 트랜드마이크로 : 매주 목요일 정기업데이트 (미국시간으로 수요일)

※ 4개 백신업체 모두 긴급시 수시업데이트 및 실시간 업데이트 기능 제공

2. 잠재적으로 문제를 야기할 수 있는 설정들 점검

최근 제작되고 있는 악성코드들은 운영체제나 응용프로그램등에서 사용자의 편리를 위해 제공되는 기능들을 악용해, 사용자의 개입없이 자동으로 실행되도록 하는 경우가 많다. 그러므로, 잘못된 설정으로 인해 자신의 의지와 상관없이 악성코드에 의한 피해를 야기 할 수 있으므로 설정을 점검하여 다음과 같은 기능들을 비활성화 할 필요가있다.

1) WSH (Windows Scripting Host) 기능의 비 활성화

WSH(Windows Scripting Host)를 비활성화 시키거나 제거하는 것이 첨부되어 온 .vbs 바이 러스로부터 감염되는 것을 예방할 수 있는 주요 방법 중 하나이다. 특히 VBS(Visual Basic Script) 와 같은 형태의 E-mail의 첨부파일을 통해 주로 전파되는 악성코드에 의한 감염에 있어 서는 WSH가 제공하는 기능성이 큰 위험요소로 작용한다.
예를 들어 LoveLetter 웜과 같이 사용자의 개입 없이도, 자동으로 스크립트가 실행되도 록 제작된 것이 이런 기능을 이용한 것이다. WSH는 Windows의 선택적인 부분이고, 대부분의 사람들에게 필요하지 않은 기능이기 때문에 안전하게 제거할 수 있다.

  • Win98에서 WSH 기능 비활성화 방법

    ① 시작 → 설정 → 제어판 → 프로그램추가/제거 순서로 선택
    ② Windows 설치 탭 선택
    ③ 구성요소 → 보조프로그램 → 자세히 선택
    ④ 하단 부분에 Windows Scripting Host 항목체크 여부 확인

  • Win2000에서 WSH 기능 비활성화 방법

    ① 시작 → 검색 → 파일또는폴더 클릭
    ② 찾는 위치를 C 드라이브 또는 OS가 설치된 드라이브로 선택
    ③ wscript.exe 파일명 입력하고 검색 클릭
    ④ 꼭 필요한 사용자가 아니라면 wscript.exe 파일 삭제

    ☞ Wscript.exe 파일을 삭제하거나 이동시키면 .vbs 파일을 열려고할 때 해당 프로그램을 찾을 수 없다는 에러가 발생하게 될 것이나, 취소(cancel)버튼만 클릭해 주면 된다.
    사전에 이 문제를 해결하고자 한다면, .vbs와 연결되어 있는 파일을 지워버리면 된다.

    ※ 윈도우즈 탐색기 실행 → 도구 → 폴더옵션 → 파일형식 → VBScript 파일 삭제


2) 자동으로 스크립트를 실행시키는 연결 프로그램의 변경

윈도우즈 시스템에서는 실행가능 확장자를 가진 파일들은 연결프로그램에 설정되어 있는 프로그램을 실행시킨다. 컴퓨터 사용자의 실행여부에 관계없이 단독으로 실행될 수 있는 스크립트들의 연결 프로그램을 수정해 두면, 악성 스크립트코드의 실행을 미연에 막을 수 있다.

  • Win98 환경에서의 변경

    ① 내컴퓨터 → 보기 → 폴더옵션 → 파일형식 선택
    ② 등록된 파일형식 중 VBSscript , JScript 항목 선택
    ③ 파일형식 편집 → 기본값 설정 → 확인

  • Win2000 환경에서의 변경

    ① 내컴퓨터 → 도구 → 폴더옵션 → 파일형식 선택
    ② 등록된 파일 형식중 확장자가 다음과 같은 것을 확인
    VBS, VBE, JS, JSE, SHS, WSF을 찾아 고급 선택
    ③ 편집 → 기본값 설정 → 확인


3) 파일 확장자의 숨김 설정 해제

윈도우즈에서 기본적으로 제공하는 파일이름의 확장자 숨김 기능은 편리하기도 하지 만, 최근 트로이목마의 공격이나 E-mail 바이러스 등에 자주 사용되고 있어 위험한 요소로 작용되고 있다. 예를 들어 pretty.jpg 라는 이름을 가진 파일은 숨김기능이 설정된 상태에서는 단지 pretty라는 그림파일로 보일수 있지만, pretty.jpg.exe라는 프 로그램 실행 파일을 숨긴 것 일 수 있다.

  • Win98 환경에서의 해제

    윈도우즈 탐색기 실행 → 보기메뉴 → 옵션 → 모든 파일보기 체크 →
    "알려진 파일형식 확장명 숨기기" 체크 해제 → 확인

  • Win2000 환경에서의 해제

    시작 → 설정 → 제어판 → 폴더옵션 → 보기 → "숨김파일 및 폴터 표시"체 크→ "알려진파일확장명 숨김"해제 → 확인

그러나, 불행하게도 Microsoft사의 Windows의 중요결함으로 인해 확장자 .shs, .pif , .lnk 등으로 끝나는 경우에는 숨김기능을 해제하더라도 보이지 않는다.
Movie.avi.pif 파일과 life_stages.txt.shs 파일이 확장자가 숨겨져 Movie.avi와 life_stages.txt 파 일로 보일 수 있음을 주의해야 할 것이다.

4) 본적이 없었던 파일 확장자의 실행시 주의

E-mail의 첨부파일에 대해 파일 확장자나 파일형태에 따라, 세가지 등급으로 분류하고 있는데, 스크립트와 관련된 파일 확장자들이 Level 1 (Unsafe) 등급을 이루고 있다. 만약 MS-Exchange 메일서버와 Outlook 메일 클라이언트를 사용한다면, Level 1 등급의 파일이 첨부되어 있는 메일을 송수신할 때 경고 메세지로 알려줄 수 있으며, 저장하거나 전송하지 못하도록 설정할 수도 있다.

☞ Level 1 (Unsafe) 확장명
*.ade , *.adp , *.bas , *.bat , *.chm, *.cmd , *.com , *.cpl , *.crt , *.exe
*.hlp , *.hta , *.inf , *.ins , *.lnk , *.mdb , *.mde , *.msc, *.msi , *.msp *.mst , *.pcd , *.pif , *.reg , *.scr , *..sct , *.shb , *..shs ,*.url ,
*.vb, *.vbe , *.vbs , *.wsc , *.wsf , *.wsh

5) 드라이브/폴더 공유 해제

공유해야할 사항이 없다면, 가능한 공유설정을 하지 않는 것이 바람직하다. 공유가 꼭
필요한 경우라면 암호를 걸고 읽기 쓰기 권한을 제한적으로 부여하여, 네트워크 공유를 감염경로로 이용하면서 네트워크에 엄청난 부하를 일으켰던 Funlove, Nimda 등과 같 은 유형의 악성코드들의 공격을 예방할 수 있다.

① 탐색기에서 디렉토리나 드라이브를 선택 → 마우스 오른쪽 버튼클릭
② 등록정보 → "공유하지 않음" 에 체크
③ 공유를 해야하는 경우라면 "공유" 선택 → 사용권한 설정 → 암호설정 → 확인

6) MS-Word, Excel 등으로 문서작업시 매크로언어를 지원하지 않은 포맷이용

가능하다면 DOC나 XLS 포맷대신 RTF나 CSV(Comma-Separated Variable) DOC나 XLS 포맷대신 RTF나 포맷 대신 매크로 언어를 지원하지 않는 RTF(Rich Text Format)타입 또는 포맷을 사용함으로써, 매크로 바이러스에 감염되는 불행을 막을 수 있다.

※자세한 내용은 매크로바이러스 대응관련 기술문서 참조

3. 컴퓨터로 유입되는 모든 데이터를 검사하고 함부로 실행하지 말라

E-mail, Web페이지, 디스켓, 시디, LAN이나 인터넷이나 또는 자동 업데이트 되는 소프트웨어등에 의해 받아지는 값등, 여러 형태로 자신의 컴퓨터로 유입되는 것들에 주의를 기울 여야 할 필요가 있다. 특히, 100% 신뢰할 수 있는 사이트나 사람이 아니라면 한번 더 의심해보고 확인과정을 거쳐 파일을 실행하는 것이 좋다.

o 백신프로그램/방어용 프로그램등를 이용한 시스템 점검 및 모니터링

자신의 컴퓨터로 유입되는 메일이나 파일등이 악성코드로부터 안전한지 확인하고, 점검하는 것을 생활화 할 필요가 있다.

이러한 점검 및 모니터링에 유용하게 사용할 수 있는 보안도구들을 소개한다. 그러 나 맹신적으로 설치하게 되면, 이들 프로그램들에 의한 탐지메세지, 경고메세지등으로 인해 사용상 불편을 겪거나, 해킹 또는 바이러스에 감염된 것으로 오인하여 불필요한 조치를 강구하는등의 오류를 범할 수 있으므로, 설치하기 전에 자신의 필요사항, 제품의 장단점등을 잘 고려하여 사용해야 한다.

※ 백신프로그램, 방어용소 프트웨어의 소개는 아래 홈페이지를 참고


II. 치료 및 복구방법

대부분의 사람들이 바이러스나 악성코드에 감염되면 먼저 불안한 마음과 걱정이 앞선다. 무엇을 어떻게 해야 할지, 치료는 어떻게 하고, 포맷을 꼭 해야하는 것인지, 난감해 한 적이 있었을 것이다. 컴퓨터 바이러스에 감염되더라도 당황하지 말고 의연하게 대처한다면 생각보다 어렵지 않게 복구할 수 있다는 것을 알 수 있을 것이다.

1. HDD포맷과 FDISK 사용은 가급적 피해야

바이러스나 악성코드에 감염되었을 때, 쉽고 확실하게 없애기 위한 최상의 방법으로 하드디스크 포맷을 말하는 사람들이 많다. 그러나 이는 최상의 방법이 아니다. 왜냐하면 대부분의 바이러스는 비교적 쉽게 치료가 가능하고, HDD포맷하고 운영체제 및 응용프로그램들을 설치하는데는 많은 시간이 소비되며, 제대로 백업이 이뤄지지 않은 상태에서 Format 이나 FDISK를 하면 중요한 데이터가 손실될 수 있기 때문이다.

2. 바이러스 감염증상을 정확하게 구별하자

컴퓨터에 이상이 있을 경우 먼저 소프트웨어상의 문제인지 아니면 하드웨어상의 문제인지 구분할 줄 알아야 한다. 그러나, 전문가가 아닌 일반인이 정확하게 구분하는 것은 어려운 일이다. 하드웨어 혹은 관련뉴스그룹이나 백신사이트 등을 통해서도 알 수 있지만, 바이러스의 존재여부를 알 수 있는 가장 좋은 방법은 여러분들이 사용하고 있는 백신프로그램을 일단 한번 실행하여 보는 것이다.

3. 바이러스의 위치를 파악하라

감염된 파일을 삭제하고 관련 응용프로그램을 새로이 설치하거나 백업파일로부터 감염된 파일을 복구하는 것을 권고한다. 감염된 파일을 깨끗한 원본파일로 복원하기 위해서는 정기적으로 데이터를 백업해 놓아야한다. 또한 백신프로그램으로 모든 드라이브를 스캔할 때 감염된 파일의 이름과 위치를 복구시에 활용할 수 있도록 스캔 결과 파일을 반드시 생성하도록 한다.

4. 바이러스를 제거하라.

백신업체에서는 대부분의 경우, 신종 바이러스에 대해 24시간 이내에 치료가능한 백신 프로그램을 제공하고 있다. 이러한 점에서도 백신프로그램의 신속한 업데이트가 바이러스의 예방 및 치료의 중요한 요소임을 알 수 있다.

그러나 경우에 따라서는, 원본 파일이나 백업데이터가 있다면 감염된 파일을 삭제하거나 복구 하는 것이 백신으로 치료하는 것보다 더 안전할 수 있다. 백신프로그램으로 완전히 치료되지 못 하는 경우도 있기 때문이다. 감염된 파일에서 악성코드부분을 분리하여 삭제하는 것은 쉽지가 않아 완전히 치료하지 못할 경우 더 큰 문제를 일으킬 수 있기 때문에 치료는 감염된 파일에 대한 대체가 불가능 경우에만 하는 것도 좋은 방법이다.

o 메모리상주형인 바이러스를 치료하고자 할 경우

메모리상주형 바이러스를 치료하기 위해서는 일반적으로 깨끗한 부팅디스크로 부팅하여 DOS상태에서 탐지도구를 구동하여 치료하는 것이 바람직하다. 왜냐하면 바이러스가 메모리에 상주해 있을 때에 백신으로 치료하면, 감염된 파일에서는 해당 바이러스 코드는 사라져도, 다시 쉽게 파일들을 감염시키기 때문에 근본적인 해결책이 못되기 때문이다.

MS-DOS 모드로 부팅한 다음 백신프로그램이 설치되어 있는 디렉토리에서 백신프 로그램의 실행파일을 구동해 주면 된다.

※ 일반적으로 "C:Program Files백신프로그램명" 위치

o 실행중인 트로이목마를 치료하고자 할 경우

백신프로그램에 의해 검색되더라도 실행되고 있는 경우에는 치료나 삭제가 되지 않는다. 이를 치료하기 위해서는 구동되고 있는 트로이목마를 강제종료 시켜야만 한다. Ctrl+Alt+Delete를 눌러서 작업 관리자를 시작한 다음 응용 프로그램 탭을 클릭하고 백신프로그램에서 트로이목마로 검사된 파일명을 찾아 "작업 끝내기"를 클릭하면 종료되므로, 해당 파일을 삭제해 버리면 된다.

o 덮어 쓰기 바이러스(overwriting virus)에 감염된 경우

덮어쓰기 바이러스는 원래의 파일 정보를 바이러스가 파괴하고 자신이 차지하는 성질을 가지고 있다. 이러한 바이러스에 감염된 파일은 원래의 파일 정보가 손실되어 백신 프로그램이 바이러스를 제거하게되면 원래의 상태로 복원할 수 없게된다. 지난해에도 큰 피해를 입혔던 CIH 바이러스가 대표적인 예이다.

o 운영체제에 의해 접근이 거부되는 경우

윈도우즈가 실행되는 동안에는 바이러스가 치료가 되지 않는 경우가 종종 있다. 윈 도우즈 운영체제가 부트섹터나 메모리에 대한 보호 기능 (Protected Mode)을 가지고 있기 때문에 발생하는 것으로, 예전의 MS-DOS와 달리 백신 프로그램이 바이러스 제거를 위해 시스템의 부트섹터나 메모리를 변경하려고 시도하게되면, 윈도우즈 운영체제에서 이를 거부하여 바이러스를 치료할 수 없게 되는 것이다.
이런 경우에는 깨끗한 디스켓으로 시스템을 부팅 한 후 MS-DOS 상태에서 모든 바이러스를 제거한 후 윈도우즈를 재부팅 해야 한다.

o 일부 웜바이러스의 경우

웜바이러스의 특성상 레지스트리에 변화를 가져오게 되는데 백신프로그램이 이를 원상태로 돌려주지 못하는 경우가 종종 발생한다. 또 다른 이유로는 바이러스를 치료한 이후에 치료 이전의 파일에 대한 백업 파일을 만들도록 설정되어 있는 경우 디스크의 용량이 모자라면 바이러스를 치료할 수 없다.
이런 경우는 플로피 디스크에 있는 바이러스를 치료할 때 흔히 발생되는데, 이럴 때에는 바이러스가 발견된 파일을 하드디스크로 이동(move)시킨 후에 바이러스를 치료 하면 된다.

5. 데이터 복구

정상적으로 데이터를 복구하기 위해서는 정기적인 백업이 중요하다. 만약 데이터를 백업해 두지 않은 상태에서 중요 데이터가 삭제되거나 손상되어 꼭 복구해야하는 데이터가 있다면, 시스템에서 접근하지 못하는 상황에서 ScanDisk나 Defrag와 같은 시스템에 접근하는 응용 프로그램을 이용하여 복구하려고 시도하는 것이 정상적인 복구시에 더 많은 문제를 일으킬 수 있으므로, 전문 복구업체에 연락하여 복구하는 것이 가장 안전하다.

데이터가 손상되었을 때 복구율을 높이려면, 가능한 루트 디렉토리 밑에는 중요한 파일을 저장하지 말고, 정기적으로 디스크 조각 모음(Defragment)을 실행해 주고, 파티션을 나누어 사용하는 것이 좋다. 중요 데이터를 보관할 디스크 드라이브를 별도로 두고 해당 드라이브에는 데이터 저장 외에 다른 작업을 하지 않는 것도 좋은 방법이다.


결론

바이러스에 대한 정보는 많이 알고 있으면 있을수록 도움이 된다. 백신 프로그램회사, 바이러스연구소등에서 제공하고 있는 바이러스 관련 최신의 정보를 자주 접하도록 하고, 바이러스에 대한 적절한 예방법과 치료법을 숙지하도록 한다.
감염된 파일에서 바이러스를 제거하거나 치료하는 것도 좋지만, 그보다 가장 좋은 방법은 감염되지 않도록 예방하는 것이다. 내 컴퓨터는 내가 지킨다는 적극적인 생각을 가지고 항상 바이러스에 감염되지 않도록 주의를 하고, 만약 컴퓨터바이러스에 감염되더라고 당황하지 말고 의연하게 대처하길 바란다.


참고

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,074 명
  • 현재 강좌수 :  35,995 개
  • 현재 접속자 :  483 명