ch19–9. 악의적인 소프트웨어 - Malicious Software -
목 차 바이러스와 관련된 위협 바이러스 대응책 악의적인 프로그램 바이러스의 기원 바이러스 유형 매크로 바이러스 목 차 바이러스와 관련된 위협 악의적인 프로그램 바이러스의 기원 바이러스 유형 매크로 바이러스 전자우편 바이러스 웜 바이러스 대응책 안티 바이러스 접근법 고급 안티바이러스 기술 행위 방지 소프트웨어 2
19.1 바이러스와 관련된 위협 악의적인 프로그램 분류 호스트 프로그램에 의존적 호스트 프로그램에 독립적 3
트랩 도어(Trap doors) 보안 접근 절차를 통과하지 않고 접근하는 비밀출입구 프로그램을 디버그하거나 테스트하기 위해 사용된 출입구 트랩도어는 특별한 입력 순서를 인식하는 코드 특별한 이벤트들의 연속에 의해 유발된 코드 트랩도어는 악의를 가진 프로그래머가 사용할 때 위협 ‘워 게임’ 영화에서 묘사된 취약점에 대한 아이디어에서 비롯 Multics 개발 중이던 공군 “타이거 팀(가상의 적)” 침투 테스트 트랩도어를 제어하는 운영체제를 구현하기 어렵다. 4
논리 폭탄(Logic Bomb) 바이러스와 웜 이전의 가장 오래된 프로그램 위협 유형의 하나 논리 폭탄은 일정한 조건이 맞으면 "폭발"하도록 맞춰져 있는 어느 정도는 합법적인 프로그램에 추가된 코드 어떤 파일이 존재여부 특정일 또는 특정요일 또는 특정한 사용자가 특정 어플리케이션을 실행 결과 데이터 또는 모든 파일들을 변경, 삭제 기계의 정지나 다른 어떤 피해를 야기 5
트로이 목마(Troijan horses) 트로이 목마는 악의적인 기능을 수행하는 숨겨진 코드를 포함한 프로그램 또는 명령 절차 사적인 파일을 공개 트로이 목마 프로그램 좋은 이름을 지어 사용자들을 실행케 유도 실행한 사용자의 파일에 있는 정보에 접근. 특별한 암호를 사용하여 로긴 프로그램에 트랩도어를 만듬 트로이 목마는 로긴 소스의 실행으로 발견이 어렵다. 트로이 목마의 일반적인 동기는 데이터 파괴 6
바이러스(Viruses) 컴퓨터 바이러스(computer virus)란 일종의 컴퓨터 프로그램이다. 최초의 컴퓨터 바이러스는 1985년 파키스탄에서 발견된 브레인(Brain) 바이러스라고 알려져 있다. 다른 프로그램을 수정해서 "감염" 바이러스 복사본으로 계속 감염 자기 복사본을 만드는 기계어 코드를 수행 운영 체제의 제어를 임시적으로 장악 소프트웨어와 접촉을 통하여 복사본을 이식 플로피 디스크를 교환, 네트워크를 통해 전달 한 컴퓨터에서 다른 컴퓨터로 퍼져나감 7
웜(Worm) 인터넷 또는 네트워크를 통해서 컴퓨터에서 컴퓨터로 전파되는 프로그램이다. 자기 스스로 다른 컴퓨터의 취약점을 이용하여 전파하거나 메일로 전파한다. 전자 메일 장비(Electronic mail facility) : 웜은 자기 자신의 복사본을 다른 시스템으로 메일로 보낸다. 원격 실행 기능(Remote execution capability) : 웜은 자기 자신의 복사본을 다른 시스템 상에서 실행한다. 원격 로그인 기능(Remote login capability) : 웜은 사용자로 원격 시스템에 로그인한 뒤 자기 자신을 한 시스템에서 다른 시스템으로 복제하는 명령을 사용한다. 네트웍 웜은 컴퓨터 바이러스 같은 특징 잠복 국면, 전파 상태, 유발 상태 , 실행 상태 8
19.1.2 바이러스의 기원 잠복 단계(Dormant phase) : 바이러스가 일정한 조건이나 이벤트로 인해 활동을 개시 전파 단계(Propagation phase) : 바이러스는 디스크상의 다른 프로그램이나 어떠한 시스템 영역으로 자신과 똑같은 복사본을 감염. 활성 단계(Triggering phase) : 바이러스는 의도되었던 기능을 수행하기 위해 활성화. 실행 단계(Execution phase) : 기능이 수행 무해: 스크린상의 메시지 유해: 프로그램과 데이터 파일의 파괴 9
바이러스 구조 10
간단한 바이러스 예 ˙ program V := {goto main; 1234567; subroutine infect-executable := {loop: file := get-random-executable-file; if (first-line-of-file = 1234567) then goto loop else prepend V to file; } subroutine do-damage := {whatever damage is to be done} subroutine trigger-pulled := {return true if some condition holds} main: main-program := {infect-executable; if trigger-pulled then do-damage; goto next;} next: } 11
압축 바이러스 예 program CV := {goto main; 01234567; subroutine infect-executable := {loop: file := get-random-executable-file; if (first-line-of-file = 01234567) then goto loop; (1) compress file; (2) prepend CV to file; } main: main-program := {if ask-permission then infect-executable; (3) uncompress rest-of-file; (4) run uncompressed file;} 12
압축 바이러스 예 13
19.1.3 바이러스의 유형 기생성 바이러스(Parasitic virus) : 전통적이며 여전히 보편적인 바이러스 형태. 실행 파일들에 첨부되어서 감염된 프로그램이 실행될 때 다른 실행 파일을 찾아내서 복제하여 감염 메모리 상주형 바이러스(Memory-resident virus) : 메인 메모리에 머무르고 모든 실행되는 프로그램이 그 지점에 올라오면 감염 부트 섹터 바이러스(Boot sector virus) : 마스터 부트 레코드나 부트 레코드를 감염시키고 시스템이 바이러스를 포함한 디스크로 부팅되면 확산된다. 잠복형 바이러스(Stealth virus) : 안티바이러스 소프트웨어로부터 보호되기 위해 자기 자신을 숨기도록 설계된 바이러스 형태. 다형성 바이러스(Polymorphic virus) : 바이러스의 패턴에 의한 탐지를 불가능하게 하면서 모든 감염으로 변이된 바이러스. 14
19.1.4 매크로 바이러스 매크로 바이러스 특징 1. 매크로 바이러스는 플랫폼에 독립적이다. 마이크로소프트 워드 문서, 하드웨어 플랫폼 및 운영 체제도 감염. 2. 매크로 바이러스는 코드의 실행가능 영역이 아닌 문서들만 감염; 대부분의 정보는 문서의 형태 존재 3. 매크로 바이러스는 쉽게 확산-> 전자 메일에 의거하여 확산. 매크로 바이러스는 워드나 마이크로소프트 엑셀 같은 다른 오피스 어플리케이션에 있는 특징을 (매크로) 이용한다. 15
19.1.4 매크로 바이러스 자동 실행 매크로 자동실행 (AutoExecute)는 워드가 시작 될 때마다 실행 자동매크로(Automacro)는 문서를 불러오고, 닫고 및 새 문서를 만드는 등 한정된 이벤트 에서 자동실행 명령매크로(Command macro)는 같은 이름의 매크로로 위장하여 그것을 포함한 문서를 불러오거나 저장할 때 실행 16
19.1.5 전자우편 바이러스 전자우편바이러스는 최근에 개발된 바이러스로 멜리사(Melissa)가 대표적이다. 워드 매크로 추가된 형태 수신자가 메일을 열면 활성화 자신을 복제하여 메일 주소가 들어 있는 모든 사람한테 발송 내재적인 손상을 입힌다. 첨부파일에 추가된 바이러스로 첨부파일을 열지 않아도 활성화 VB 스크립트를 사용 17
19.1.6 웜(Worm) 웜은 자신을 컴퓨터 시스템에 해를 끼칠 수 있는 장소에 위치하는 바이러스나 복제코드의 일종이다. 웜도 다른 바이러스나 악성코드에 포함되어 침투한다. 웜은 자신을 복제 장비 전자우편 원격실행 가능한 이동 프로그램 원격 로그인 프로그램 웜 전파 과정 호스트 데이블 검사 -> 원격시스템주소 조사 원격 시스템 연결 원격 시스템에 자신을 복제 및 복제본 실행 18
19.2 바이러스 대응책 안티 바이러스 접근법 고급 안티바이러스 기술 행위 방지 소프트웨어 19
19.2.1 안티바이러스 접근법 바이러스 위협의 해결방법 : 예방이 최고 최선의 접근법 탐지(Detection) : 감염된 것을 확인하여 바이러스를 찾아낸다. 확인(Identification) : 프로그램에 감염된 바이러스를 확인한다. 제거(Removal) : 감염된 프로그램으로부터 바이러스의 모든 자취들을 제거시키고 원래 상태대로 회복 제거 불가능할 겨우 파일 삭제 또는 시스템 재 설치 20
19.2.1 안티바이러스 접근법 안티바이러스 소프트웨어의 4 세대 [STEP93] 1 세대 : 간단한 스캐너 (simple scanner) 동일구조의 비트패턴 및 길이의 변화 찾기 2 세대 : 스스로 발견하는 스캐너(heuristic scanner) 스스로 발견할 수 있는 원칙 적용(바이러스와 연관된 코드 구조 찾기, 체크섬 등을 이용한 무결성 검사) 3 세대 : 활동성 트랩(activity trap) 바이러스 감염 시도를 탐지하는 메모리 상주 프로그램 사용 4 세대 : 통합적 기능의 방어(full-featured protection) 다양한 바이러스 탐지, 제거 기법의 조합 21
19.2.2 고급 안티바이러스 기술 일반 해독 기법(Generic Decryption technology) 빠른 스캐닝 속도를 유지, 다형체의 바이러스들을 탐지를 위한 안티바이러스 기법을 강화한 방식 바이러스가 활성화 되기 위해서 우선 자신을 해독해야 함에 착안 GD 스캐너 구성요소 CPU 에뮬레이터 소프트웨어에 기초한 가상 컴퓨터 시행 파일의 명령들은 실제의 프로세서가 아닌 에뮬레이터에 의해 번역 에뮬레이터는 실제 프로세서에 영향을 주지 않도록 모든 레지스터와 프로세서 하드웨어의 소프트웨어 버전을 포함 바이러스 패턴 스캐너: 알려진 바이러스 패턴들을 찾으면서 대상 코드들을 스캔 에뮬레이터 통제 모듈: 타겟 코드의 실행을 통제 22
디지털 면역 시스템 디지털 면역 시스템(Digital Immune System) 바이러스 전파의 경로로 인터넷이 큰 영향을 줌 바이러스 예방을 위한 포괄적인 접근법 에뮬레이션과 바이러스 탐지 및 대응 시스템 제공 바이러스 전파의 경로로 인터넷이 큰 영향을 줌 통합 메일 시스템(Integrated mail systems) : Lotus Notes와 Microsoft Outlook같은 시스템들은 누군가에게 무엇을 보내고 받는 작업을 하기에 매우 간편하다. 이동-프로그램 시스템(Mobile-program systems) : 자바와 Active X같은 기능은 프로그램을 어느 한 시스템으로부터 다른 시스템으로 스스로 이동하도록 한다. 바이러스의 수집, 분석, 제거, 전파방지를 위한 정보 보고 23
디지털 면역 시스템 24
디지털 면역 시스템 운영 체계의 전형적인 단계들 1. 각 PC상의 바이러스를 모니터 프로그램은 감염되었다고 여겨지는 어떤 프로그램의 복사본을 조직 안의 관리용 컴퓨터로 보낸다. 2. 관리용 컴퓨터는 그 샘플을 암호화하여 중앙 바이러스 분석 컴퓨터로 보낸다. 3. 이 컴퓨터는 감염된 프로그램을 분석하는데 있어 안전하게 운영될 수 있는 환경을 만들어준다. 그리고 바이러스 분석 기계는 바이러스를 확인하여 제거하는 규정을 만든다. 4. 결과로 생겨난 규정은 관리용 컴퓨터로 되돌려 보내진다. 5. 관리용 컴퓨터는 감염된 클라이언트로 규정을 보낸다. 6. 규정은 또한 조직 내에 있는 다른 클라이언트에게 보내어진다. 7. 세계 여러 곳의 신청자들은 새로운 바이러스로부터 그들을 보호할 안티바이러스 업데이트를 정기적으로 받는다. 25
19.2.3 해위 방지 소프트웨어 행위방지 소프트웨어(Behavior Blocking Software)는 호스트 운영체제와 악의적인 행위를 실시간 감시하는 프로그램 감시행위 파일에 대한 열람, 수정 및 삭제 시도 포맷 또는 복구 불가능 디스크 연산 실행파일 로직이나 매크로 스크립트 수정시도 중요한 시스템구성에 대한 변경 네트워크 구성의 초기화 26
요 약 시스템 안전운영 바이러스 탐지 및 치료(An-virus) 침입차단시스템(Firewall) 침입탐지시스템(IDS) 백업설비 27