32
1 컴퓨터 바이러스 오세종

컴퓨터바이러스 - webdav.gnunix.co.krwebdav.gnunix.co.kr/Lecture/컴퓨터 보안 이론 강의/제08강 컴퓨터... · 3 개요 컴퓨터프로그램은데이터를다룬다

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

1

컴퓨터 바이러스

오 세 종

2

목차

개요

바이러스 감염 방법

바이러스의 상주 장소

바이러스의 흔적

바이러스의 예방

바이러스 사례

백신 프로그램

3

개요

컴퓨터 프로그램은 데이터를 다룬다.

정상적은 컴퓨터 프로그램들은 대개 보안 위협을 일으키지 않지만, 컴퓨터가 다루는 데이터나 프로그램의 동작 과정이 사용자에게 보이지 않기 때문에 악의적인 공격자들은 자신들의 의도에맞는 프로그램을 제작함으로써 보안데이터나 보안 프로그램에불법적으로 접근할 수 있다.

컴퓨터 바이러스는 악의적 의도를 가진 프로그램의 대표적 사례

악의적 코드 (Malicious code) : 악의적 프로그램 전체, 혹은 정상적인 프로그램에 끼워진 일부의 악의적인 모듈 등

워드 프로세서와 같은 소프트웨어를 인스톨하면 (by ‘setup’ or ‘install’) 수십~수백 Mbyte 의 프로그램이 새로 설치됨.

– 안전을 기대할 수 있는가?

4

개요

악의적인 코드는 왜 위험한가

– 프로그램의 원작자나 사용자가 기대하지 않는 방식으로 작동함

– 악의적인 코드는 다른 정상적인 프로그램이 할 수 있는 모든 일을할 수 있다. (파일 읽기, 삭제, 통신, …)

– 악의적인 코드는 자신의 존재를 숨기도록 설계되어 있으며 특정 조건이 만족되면 작동한다.

• 특정 일자, 기간마다 (예: 크리스마스 바이러스)

• 특정한 컴퓨터 동작이 있을 때 (예: 모뎀 연결)

– 악의적인 코드가 어떤 일을 할지는 예측하기 힘들다.

– 악의적인 코드는 사용자의 권한을 가지고 움직이기 때문에 사용자가 할 수 있는 모든 일을 할 수 있다.

5

개요

용어– 악의적 코드(malicious code) : 원하지 않는 일을 수행하여 해를 입

히는 프로그램, 혹은 프로그램의 일부에 대한 일반적인 명칭

– 바이러스(virus) : 정상적인 프로그램을 변형시켜서 악의적 코드를주입시키는 프로그램. 악의적 코드의 전달자.

• 실제 바이러스와 같이 전염성을 갖는다. (시스템 내, 네트워크)

• 일시적(transient) 바이러스 : 한번 실행 후 사라짐

• 상주형(resident) 바이러스 : 강제로 제거하지 않는 한 계속적으로 동작함 (메모리에 저장)

• 1983. 11. 프레드릭 코헨박사 'Security Seminar' 에서 발표한 "Computer Virus : Theory and Experiment" 라는 논문에서처음 사용

– 트로이 목마(Trojan horse) : 정상적인 프로그램처럼 위장하지만 내부에 악의적인 코드를 가지고 있는 경우

• 예) Unix 로그인 프로그램 / Utility 프로그램들

6

개요

용어 (계속)

– 논리 폭탄(Logic bomb) : 일정 조건이 되면 시스템에 손해를 입히도록 설계되어 있는 악의적 코드

– 트랩도어(trapdoor), 백도어(backdoor) : 시스템에 정상적인 경로가 아닌 숨겨진 경로를 통해 침입하여 시스템을 조정할 수 있도록해주는 프로그램의 특성

• 예) 온라인 뱅킹 시스템 : 계좌와 비밀번호가 있어야 로그인이가능. 그런데 ‘990099’ 를 입력하면 로그인이 되도록 조작.

– 웜(warm) : 네트워크상에서 자신을 계속 복제하여 퍼뜨리는 프로그램. 자신을 독립된 형태의 프로그램으로 복제한다.

– 래빗(rabit) : 많은 수의 복제를 통해 시스템 자원을 고갈 시키는 바이러스나 웜

7

바이러스 감염 방법

종이에 인쇄된 바이러스 코드는 아무 기능도 하지 않는다.

심지어 컴퓨터 디스크상에 존재하는 카피된 바이러스의 실행 코드도 아무 기능을 하지 않는다.

바이러스가 기능을 발휘하기 위해서는 누군가가 실행시켜 줌으로서 활성화(activated) 되어야 한다.

바이러스 제작자는 최초에 바이러스 코드를 정상적 프로그램에삽입시켜 배포

– 그 다음부터는 감염된 프로그램이 실행될 때마다 바이러스 코드 스스로 자신을 복제하거나 또 다른 프로그램들을 감염시킴

8

바이러스 감염 방법

첨가된 바이러스 (Appended Virus)– 바이러스 감염의 가장 손쉬운 방법

– 바이러스 코드부분을 복사하여 정상 프로그램의 첫머리에 놓음. 정상 프로그램이 실행되기 전에 먼저 바이러스 코드가 실행된다.

– 바이러스 제작자는 감염시킬 프로그램의 특성에 대해 알 필요가 없다.

– 많은 바이러스가 이와 같은 형식을 취한다.

Virus code Virus code

OriginalProgram

+ =

OriginalProgram

9

바이러스 감염 방법

프로그램 앞, 뒤에 첨가된 바이러스– 정상 프로그램이 실행되기 전에 바이러스코드가 먼저 작동을 하고,

정상 프로그램이 실행된 후, 바이러스 코드의 나머지 부분이 다시작동함

– 바이러스가 자신의 존재를 감추고자 할 때 이용

– 예) 바이러스가 독립된 파일 형태로 존재. 파일 목록 리스팅 프로그램 감염 필요

OriginalProgram

Virus code

Virus code(a)

OriginalProgram

PhysicallyLogically

Virus code(b)

10

바이러스 감염 방법

프로그램과 혼합된 바이러스– 바이러스가 원본 프로그램의 내용을 변형시키고 자신을 변형된 프

로그램에 혼합시켜 새로운 프로그램을 만듦

– 바이러스 제작자가 원본 프로그램의 구조를 알고 있어야 가능

– 바이러스 탐지도 어렵고 복구도 불가능

OriginalProgram

Virus code+ =ModifiedProgram

11

바이러스 감염 방법

바이러스는 어떻게 제어권을 얻나– 원본 프로그램과 자리교환

Disk Storage Disk StorageFile Directory File Directory

T

TV

T

VT

12

바이러스 감염 방법

바이러스는 어떻게 제어권을 얻나– 포인터의 조작

Disk Storage Disk StorageFile Directory File Directory

T

TV

T

TV

13

바이러스의 상주 장소

바이러스를 숨기기 좋은 장소– 위치를 탐지하기 어려운 곳

– 바이러스를 제거하거나 중단(deactivate)시키기 어려운 곳

– 바이러스를 널리 감염시키기에 용이한 곳

– 바이러스를 생성하기 쉬운 곳

– 시스템/OS 에 독립적인 장소

14

바이러스의 상주 장소

부트 섹터 바이러스 (boot sector virus)

– 부팅 과정

• Power on

• ROM BIOS 실행 (Firmware)

– 하드웨어 자원 체크

• Bootstrap loader 를 call

• Bootstrap loader 가 OS 를 메인 메모리로 로드

– Ex) MS-DOS : IO.sys, MSDOS.sys

• 제어권이 OS 로 넘어감

– Bootstrap loader 는 하드디스크의 특정한 위치에 있어야 한다. (부트 섹터, 보통 HD의 0 번 섹터)

15

바이러스의 상주 장소

부트 섹터 바이러스 (boot sector virus)

– 부트섹터의 크기 : 512 byte

• 이보다 큰 공간을 요구하는 Bootstrap loader 를 위해chaining 이용

• 이를 이용해 바이러스를 쉽게 컴퓨터에 감염시킬 수 있다

Bootstraploader

Boot sector

Systeminitialization

VirusCode

Boot sector

Systeminitialization

Bootstraploader

16

바이러스의 상주 장소

부트 섹터 바이러스 (boot sector virus)

– 부트섹터를 선호하는 이유

• 부트섹터는 시스템에서 매우 중요하기 때문에 OS 는 부트섹터의 존재를 일반 사용자들에게 감춘다.

– 바이러스에 감염되어도 알 길이 없고, 일반적인 파일제거방법으로는 제거할 수도 없다.

• 시스템의 제어권을 OS보다 먼저 받기 때문에 바이러스 진단,

치료 프로그램을 무력화 시킬 수 있다.

– 바이러스는 다음과 같은 일을 할 수 있다.

• 시스템화일 (io..sys, msdos.sys)에 첨가

• config.sys, autoexec.bat 에 기술된 실행화일에 첨가

• config.sys, autoexec.bat 에 자신을 로드 하도록 선언

17

바이러스의 상주 장소

메모리 상주 바이러스 (memory resident virus)

– 대부분의 프로그램은 필요시 메인 메모리에 로드되어 실행된후 메모리에서 제거 된다.

– OS 의 핵심 부분과 일부 프로그램은 계속 메모리에 남아 있는다 → 메모리 상주 프로그램

– 바이러스는 자신을 메모리 상주 프로그램중의 하나에 첨가될 수 있다.

• 장기간 메모리에 머무르면서 보다 많은 화일들을 감염시킬 수 있다

• 디스켓 등 이동 가능한 저장장치를 넣을 때 마다 부트섹터를 감염시킬 수 있다.

18

바이러스의 상주 장소

기타– 널리 쓰이는 응용프로그램 중에는 사용자의 편리성을 위해 매크로

(macro) 기능을 제공하는 것들이 있다.

• Excel, powerpoint, Ms word,…– 이러한 매크로는 프로그래밍 기능이 있기 때문에 바이러스가 기생

하기 좋은 장소가 된다.

– 바이러스는 매크로 기능이 실행될 때 마다 활성화되어서 다른 프로

그램을 감염시킨다. 또한 바이러스에 감염된 매크로 를 포함하는

파일이 다른 사람에게 전달되면 그 사람의 컴퓨터도 감염 시킨다.

– 프로그램 라이브러리도 바이러스에게 좋은 장소

– 컴파일러, 링커, 디버거, 백신프로그램,…

19

바이러스의 흔적

어떤 바이러스도 자신의 존재를 완전히 숨길 수는 없다.

바이러스 코드도 어딘가에 반드시 저장되어야만 하고, 실행시메모리에 로드되어야 한다.

또한 바이러스는 특정한 방법을 따라 실행되고, 자신을 퍼뜨리는 방법에 있어서도 어떤 패턴을 따른다.

이와 같은 특징들은 바이러스 진단 프로그램에게 매우 중요.

바이러스 진단 프로그램은 보조기억장치, 메인 메모리등 을 검사하면서 바이러스의 흔적을 찾아내어 이를 제거하거나 사용자에게 경고 메시지를 보낸다.

20

바이러스의 흔적

바이러스의 저장 패턴– 대부분의 바이러스는 디스크에 저장된 정상 프로그램에 삽입되어

존재한다.

– 삽입된 동일 바이러스의 코드는 일정하다.

– 또한 삽입된 부분은 프로그램의 일정한 부분에 위치한다. (예: 프로그램 시작부분의 400byte )

• 바이러스 제작자는 제어권을 용이하게 획득하기 위해 일반적으로 프로그램이 맨 앞부분에 바이러스를 위치시킨다.

– 혹은 바이러스 모듈을 호출하는 코드만을 포함하고 실제 바이러스는 독립화일 형태로 존재할 수도 있다.

– 바이러스에 감염된 파일은 일반적으로 파일 사이즈가 증가.

21

바이러스의 흔적

바이러스의 저장 패턴– 프로그램의 일부를 지우고 거기에 대체 삽입된 바이러스는 파일 사

이즈를 증가시키지 않지만, 프로그램의 오작동을 초래

– 바이러스 진단 프로그램은 이상의 바이러스 흔적들을 추적

IF (~) JUMPAttachedVirus code

OriginalProgram

OriginalProgram바이러스의

흔적

SeparatedVirus module

22

바이러스의 흔적

바이러스의 실행 패턴– 바이러스 제작자가 원하는 것

• 감염의 확산

• 바이러스의 존재가 탐지되지 않음

• 시스템에 해를 입힘

– 바이러스의 실행 내용을 보면 정상 프로그램과 같기 때문에어떤 이상 신호를 감지하기 어렵다

• 예) 디렉토리 변경, 파일 생성, 파일 삭제

– 어떤 바이러스는 감염사실을 알려주기도 하나 대부분은 그렇지 않다.

23

바이러스의 흔적

바이러스의 전파– 바이러스는 한 시스템에서 다른 시스템으로 어떻게 옮겨 가

는가

• 부트 섹터가 감염된 디스켓을 통한 이동

• 네트워크를 통한 전파

– 파일전송, 다운로드(공개S/W)

– 이메일

– 이러한 전파과정 역시 정상적인 활동을 통해서 일어나기 때문에 탐지하기가 어렵다.

24

바이러스의 예방

잘 알려진 회사들의 정품 S/W 만을 이용한다.– 불법 복제 S/W, 출처가 분명치 않은 공개 S/W 는 경계 대상

(큰 회사의 경우) 새로운 S/W 를 사내에 배포해야 할 필요가 있을 경우에는 네트워크에 연결되지 않은 고립된 컴퓨터에서 먼저테스트를 한 후 이상이 없을 때 배포한다.

부팅 디스켓을 만들어 두고 이를 안전한 곳에 보관한다.

중요 시스템 파일들은 백업을 받아둔다. 중요한 자료의 경우도정기적인 백업을 받는 것이 좋다.

OS, 메일 프로그램등의 보안 패치를 다운 받아 설치한다.

바이러스 백신 프로그램을 설치하고 정기적으로 검사한다. 백신프로그램은 최신의 것으로 유지한다.

25

바이러스 사례

CIH 바이러스– 1998년 여름 동아시아에서 처음 발견

– 제작자 : 대만의 Chen Ing-Hou (1998년 4월 26일 )

– 기존 바이러스와의 차이

• 기존의 바이러스 : 컴퓨터 내에 저장된 프로그램과 데이터를 삭제

• CIH : 프로그램과 데이터를 삭제함은 물론, 컴퓨터 부품자체를 손상시키는, 이른바 하드웨어적 피해를 입힘

– 시스템 BIOS 가 들어 있는 플래쉬 ROM 의 내용을 파괴하여부품을 교체해야만 바이러스 피해를 복구가능

– 매달 26일 활동함 (체르노빌 바이러스)

– 현재까지 1.4 버전까지 보고 (원형 6종, 변형 3종)

26

바이러스 사례

CIH 바이러스– 감염경로

• CIH 에 감염된 실행화일을 실행 했을때

• CIH는 또 다시 감염시킬 실행파일을 정한 후 그 실행 파일 안에서 자신을 숨길 빈 공간들을 탐색

• 자신을 여러 부분으로 나눈뒤 미리 탐색한 빈 공간들에자신을 숨김 → 실행화일의 크기변화 없음

• 활동날짜까지 기다렸다가

– 하드디스크의 첫 1메가바이트 (부트섹터 영역)를 무작위 문자열로 대체

– 플래쉬 ROM의 내용을 삭제 또는 수정을 하여 시스템전체를 마비시킴

27

바이러스 사례

Win32/Nimda– 국내 발견일 : 2001.09.18 (제작자 불분명)

– 전파방법 : E-MAIL, 읽기/쓰기 공유가 되어 있는네트워크, IIS 웹서버의 취약점 이용

– 감염 경로

• 아웃룩 주소록을 검색하여 사용자에게 readme.exe 파일

을 첨부하여 메일을 발송.

• 각 폴더마다 *.eml 혹은 *.nws 파일을 생성

• 사용자 컴퓨터의 모든 드라이브를 공유시킴

• IIS 취약점을 이용하여 보안패치되지 않은 IIS 웹 서버가 감염

• *.EXE 파일을 감염

28

백신 프로그램

주요 백신 프로그램– 노턴 안티바이러스

• 제작사 : 시만텍 (노턴 유틸리티)• 플랫폼 : 윈도우 계열

• 플로피디스크 및 하드디스크, 시스템 파일, 메모리, 모든디렉토리의 주요 파일, 인터넷과 통신에서 검출되는 바이러스를 모두 치료

• '블러드하운드(BloodHound)' 기술을 통해 알려지지 않은바이러스도 감지하고, 최근 급증하고 있는 매크로 바이러스에 감염된 파일도 자가 진단해 복구하는 특징

• 프로그램 사용의 편이성. 온라인 업데이트

29

백신 프로그램

주요 백신 프로그램– PC시린

• 제작사 : 트렌드

• 룰-베이스(Rule-Based) 기법을 사용해 바이러스의 행동을 감시하고, 만약 그 행동이 보이면 즉각적으로 블록킹해 감염된 파일의 복사 및 다운로드를 일차적으로 방어

• '바이스(VICE) 기법'이라 불리우는 이 기술은 새로운 바이러스를 검색해 명령 코드를 제거하는 기능

• 매크로 트랩을 이용해 시스템을 감염시킬 소지가 있는 매크로 바이러스도 신속하게 검색

• 자바 애플릿이나 액티브X 상에서 번식하는 신종 2세대 바이러스도 치료가 가능

30

백신 프로그램

주요 백신 프로그램– V3Pro

• 제작사 : 안철수연구소• 높은 바이러스 검진율과 치료율

• 지능적인 바이러스 감시 시스템을 채용해 작업 중간에 바이러스를 발견하면 그 활동을 차단/치료

• 스마트 업데이트 (사용자의 조작 없이도 항상 최신 엔진으로 유지시켜 신종 바이러스 방역에 대응)

• POP3를 통해 오고 가는 메일에 대한 방역 기능을 제공

• 인터넷(HTTP)으로부터 파일 다운로드 시 바이러스 실시간 검사를 수행

• 다양한 압축파일 검사 기능

31

향후 전망

컴퓨팅 환경의 다양화, 복잡화에 따라 바이러스도 지능화하고피해 범위도 확산

이동 통신 기기를 목표로 하는 바이러스 출현

MS .net 환경에서 작동하는 바이러스도 보고됨 (안철수 연구소)

해킹 기술과 결합하여 사용되기도 함

미국에서는 바이러스의 염려가 없는 OS 를 개발중

컴퓨터가 존재하는 한 창과 방패의 싸움은 계속될 전망

32

참고문헌

P.Pfleeger, Security in Computing, second edition, Prentice-Hall International Inc.,1997. (chapter 5)

안철수 연구소 바이러스 정보, http://home.ahnlab.com/securityinfo/virus_search.jsp