Download presentation
Presentation is loading. Please wait.
1
06장 악성 코드: 인터넷을 통해 전이되는 바이러스와 웜
2
01. 악성 코드 02. 바이러스 03. 웜 04. 트로이 목마 05. PUP 06. 악성 코드 탐지 및 대응책
3
▶ 악성 코드의 종류와 특성을 알아본다. ▶ 바이러스의 동작 원리를 이해한다. ▶ 웜의 동작 원리를 이해한다. ▶ 기타 악성 코드의 종류를 파악한다.
4
01. 악성코드 악성코드(Malware)란? Software Malware
제작자가 의도적으로 사용자에게 피해를 주기 위해 만든, 모든 악의적 목적을 가진 프 로그램 및 매크로, 스크립트로 컴퓨터에서 작동하는 실행 가능한 모든 형태를 말함. 종류: 바이러스, 웜, 트로이목마, 스파이웨어, 애드웨어, 매크로, 랜섬웨어, 루트킷 등등 Software Malware
5
01. 악성코드 악성 코드의 역사 바이러스 (Virus)
컴퓨터 바이러스란 자기 자신을 복제하여 대상 프로그램에 포함해서 해당 프로그램을 감염시키는 프로그램 플로피디스크를 사용하던 시절의 악성코드 최초의 바이러스는 1986년에 등장한 브레인(Brain) 바이러스, 5.25인치 플로피디스켓 에 감염
6
01. 악성코드 악성 코드의 역사 브레인 바이러스
7
01. 악성코드 악성 코드의 역사 웜 (Worm) 다른 프로그램에 감염되어 전파되는 컴퓨터 바이러스와는 달리 자체적으로 실행되면 서 네트워크를 통해 다른 컴퓨터로 전파가 가능한 프로그램 최초의 웜은 1988년 미국 네트워크를 마비시킨 모리스 웜 주요 감염 경로는 , 공유 폴더, 특정 네트워크 포트
8
01. 악성코드 악성 코드의 역사 웜 (Worm)
9
01. 악성코드 악성 코드의 역사 매크로 바이러스 (macro virus) 문서를 통한 바이러스 전파.
매크로 언어로 만들어진 바이러스. 일부 응용 프로그램이 매크로 프로그램을 문서 안 에 포함시키는 것을 허용하고 문서가 열릴 때 프로그램이 자동으로 실행될 수 있음. 매크로(macro): 엑셀이나 워드 등 응용소프트웨어에서 특정한 기능을 자동화해 놓은 일종의 프로그램. 1999년에 매크로 바이러스로 잘 알려진 멜리사(Melissa) 바이러스 출현.
10
01. 악성코드 악성 코드의 역사 웜에 의한 대규모 피해 발생 인터넷 대란 변종 웜의 발생
2001년 7월 13일 25만 대 이상의 컴퓨터가 8시간 만에 코드레드(Code Red) 웜에 감염. 윈도우 2000과 윈도우 NT 서버를 경유지로 미국 백악관 공격, 국내도 최소 3만 대 이상 의 시스템이 피해를 입은 것으로 추정. 인터넷 대란 2003년 1월 25일 인터넷 대란을 일으킨 SQL_Overflow, 일명 슬래머 웜이 등장. 05시 29분에 슬래머가 퍼진 후 06시를 기준으로 전 세계 74,855대 시스템이 감염됨. 2003년 8월에는 1~2분 간격으로 컴퓨터를 강제 재부팅해 큰 피해를 준 블래스터 웜 (Blaster worm)을 시작으로 웰치아 웜(Welchia worm), 엄청난 양의 스팸 메일을 집중 발송한 소빅.F 웜(Sobig.F worm) 등 발생. 변종 웜의 발생 2005년 3월에 MMS로 감염된 휴대전화에 저장된 전화번호로 악성 코드를 퍼뜨리는 컴 워리어(CommWarrior) 등장. 저장 매체나 인터넷으로 전파되던 악성 코드가 휴대전화 통신망으로 전파되기 시작함.
11
01. 악성코드
12
01. 악성코드 악성 코드의 분류 동작에 의한 분류
13
01. 악성코드 악성 코드의 분류 목적에 의한 분류
14
01. 악성코드 악성 코드의 분류 악성 프로그램 감염 증상
15
02. 바이러스 1세대 원시형 바이러스 바이러스: 가장 기본적인 형태의 악성 코드로 사용자 컴퓨터(네트워크로 공유된 컴퓨 터 포함)에서 프로그램이나 실행 가능한 부분을 몰래 수정하여 자신 또는 자신의 변형 을 복사하는 것. 원시형 바이러스: 처음 컴퓨터 바이러스가 등장한 시점의 가장 원시적인 형태로, 단순 하게 자기 복제 기능과 데이터 파괴 기능만을 가짐. 부트 바이러스 플로피디스크나 하드디스크의 부트 섹터에 감염되는 바이러스. MBR과 함께 PC 메모 리에 저장되어 부팅 시 자동으로 동작하여 부팅 후에 사용되는 모든 프로그램을 감염 시킴. 부트 바이러스를 이해하려면 컴퓨터의 부팅 순서를 알아야 함.
16
02. 바이러스 1세대 원시형 바이러스 1단계: POST 2단계: CMOS 3단계: 운영체제 위치 정보 로드
운영체제를 설치할 때 하드웨어 자체가 시스템에 문제가 없는지 기본 사항을 스스로 확인하는 POST(Power On Self Test) 과정을 항상 거침. POST는 BIOS(Basic Input/Output System)에 의해 실행. 문제가 발견되면 경고음 등으로 알려줌. 2단계: CMOS CMOS(Complementary Metal-Oxide Semiconductor)에서 기본 장치 설정과 부팅 순서를 정할 수 있으며 이러한 기본 설 정 사항을 BIOS가 읽어 시스템에 적용함. 3단계: 운영체제 위치 정보 로드 윈도우 2003 이전 버전: 마스터 부트 레코드(Master Boot Record, MBR) 정보를 읽는 단계. 윈도우 2008 이후 버전: 윈도우 부트 매니저(window boot manager)가 실행되는 단계. 부트 바이러스는 3단계에서 동작함. 부트 바이러스에 감염된 플로피디스크로 운영체제를 구동하면 바이러스가 MBR과 함 께 PC 메모리에 저장되고 부팅 후에 사용되는 모든 프로그램에 자신을 감염시킴. 부트 바이러스의 종류에는 브레인, 몽키, 미켈란젤로 바이러스
17
02. 바이러스 1세대 원시형 바이러스 파일 바이러스 파일을 직접 감염시켜 바이러스 코드를 실행시키는 것으로 하드디스크 부팅이 일반화 되면서 부트 바이러스의 대안으로 등장한 것. COM, EXE와 같은 실행 파일과 오버레이 파일, 디바이스 드라이버 등에 감염되며 전 체 바이러스의 80% 이상을 차지함. 파일 바이러스는 프로그램을 덮어쓰는 경우, 다음의 두 가지 경우가 있음 프로그램 앞부분에 실행 코드를 붙이는 경우 프로그램 뒷부분에 바이러스 코드를 붙이는 경우 [그림 6-4] 파일 바이러스의 감염 위치
18
02. 바이러스 1세대 원시형 바이러스 파일 바이러스 바이러스가 프로그램 뒷부분에 위치하는 것은 백신의 바이러스 스캔으로부터 자신의 존재를 숨기기 위함임. 프로그램 뒷부분에 위치한 바이러스가 실행되는 형태. 예루살렘 바이러스(최초의 파일 바이러스), 선데이(sunday), 스콜피온(scorpion), 크로 (crow), FCL, CIH 바이러스가 파일 바이러스에 속함. [그림 6-5] 바이러스가 프로그램 뒷부분에 위치할 때의 실행 과정
19
02. 바이러스 2세대 암호형 바이러스 3세대 은폐형 바이러스 바이러스 제작자와 백신회사의 경쟁
암호형 바이러스는 바이러스 코드를 쉽게 파악하여 제거할 수 없도록 암호화한 바이 러스. 바이러스 동작 시 메모리에 올라오는 과정에서 암호화가 풀리므로 백신은 이를 이용 하여 메모리에 실행되어 올라온 바이러스와 감염 파일을 분석하고 치료함. 암호형 바이러스에는 슬로(slow), 캐스케이드(cascade), 원더러(wanderer), 버글러 (burglar) 등이 있음. 3세대 은폐형 바이러스 바이러스에 감염된 파일이 일정 기간 잠복기를 가지도록 만든 것. 이는 바이러스가 확 산되기도 전에 활동하기 시작하면 다른 시스템으로 전파되기 힘들기 때문임. 은폐형 바이러스에는 브레인, 조시(joshi), 512, 4096 바이러스 등이 있음. [그림 6-6] 암호화된 바이러스 코드 바이러스 제작자와 백신회사의 경쟁
20
02. 바이러스 4세대 다형성 바이러스 백신 프로그램은 바이러스 파일 안의 특정한 식별자로 바이러스 감염 여부를 판단하 는데 이 기능을 우회하기 위해 사용하는 것이 다형성 바이러스. 코드 조합을 다양하게 할 수 있는 조합(mutation) 프로그램을 암호형 바이러스에 덧 붙여 감염시키므로 프로그램이 실행될 때마다 바이러스 코드 자체를 변경하여 식별자 를 구분하기 어렵게 함. 다형성 바이러스는 제작하기도 어렵고 진단하기도 어려움. [그림 6-7] 다형성 바이러스
21
02. 바이러스 5세대 매크로 바이러스 차세대 바이러스
MS 오피스 프로그램의 매크로 기능으로 감염되는 바이러스를 매크로 바이러스라고 하는데 비주얼 베이직 스크립트(VBS)로 많이 제작됨. 매크로 바이러스에는 워드 콘셉트(word concept), 와쭈(wazzu), 엑셀-라룩스(laloux), 멜리사 바이러스 등이 속함. 매크로 바이러스의 증상 문서가 정상적으로 열리지 않거나 암호가 설정되어 있음. 문서 내용에 깨진 글자나 이상한 문구가 포함되어 있음. 매크로 메뉴가 실행할 수 없게 잠겨 있음. 엑셀이나 워드 작업 중 VB(Visual Basic) 편집기의 디버그 모드가 실행됨. 차세대 바이러스 스크립트 형태의 바이러스가 더욱 활성화되어 네트워크와 메일을 이용하여 전파됨. 단순히 데이터를 파괴하고 다른 파일을 감염시키는 것에서 나아가 사용자 정보를 빼 내거나 시스템 장악을 위한 백도어 기능을 가진 웜의 형태로 진화함.
22
03. 웜 개념 매스메일러형(mass mailer) 웜
IT 분야에서 웜(worm)은 인터넷 또는 네트워크를 통해 컴퓨터에서 컴퓨터로 전파되는 프로그램을 의미함. 웜은 스스로를 증식하는 것이 목적이므로 파일 자체에 이런 기능이 있거나 운영체제 에 자신을 감염시킴. 매스메일러형(mass mailer) 웜 자기 자신을 포함하는 대량 메일을 발송하여 확산되는 것. 제목 없는 메일이나 특정 제목의 메일을 전송하고 사용자가 이를 읽었을 때 감염됨. 매스메일러형 웜의 주요 특징과 증상 메일로 전파. 감염된 시스템이 많으면 SMTP 서버(TCP 25번 포트)의 네트워크 트래픽이 증가함. 출처나 내용이 확인되지 않은 메일을 열었을 때 확산되는 경우가 많음. 베이글 웜은 웜 파일을 실행할 때 가짜 오류 메시지를 출력함. 넷스카이 웜은 윈도우 시스템 디렉터리 밑에 CSRSS.exe 실행 파일을 만듬. 변형된 종류에 따라 시스템에 임의의 파일을 생성함. 매스메일러형 웜에는 베이글(bagle), 넷스카이(netsky), 두마루(dumaru), 소빅(sobig) 등이 있음.
23
03. 웜 네트워크 공격형 웜 특정 네트워크나 시스템에 대해 SYN 플러딩이나 스머프와 같은 서비스거부(DoS) 공 격을 수행하는 것. 분산서비스거부(DDoS) 공격을 위한 봇(bot) 형태로 발전하고 있음. 주요 증상 네트워크가 마비되거나 급격히 느려짐. 네트워크 장비가 비정상적으로 동작함. 대표적인 네트워크 공격형 웜은 클레즈(klez). 이 유형의 웜은 적은 수의 시스템이 감염되어도 파급 효과가 크므로 안정적인 네트워 크 설계와 시스템 취약점에 대한 지속적인 패치 관리가 중요함.
24
04. 트로이 목마 개념 트로이 목마(trojan horse)는 정상적인 프로그램으로 보이지만 악성 루틴이 숨어 있는 프로그램. 겉보기에는 정상적인 것 같지만 사용자가 실행하면 악성 코드가 실행됨. 사회공학 기법 형태로 퍼짐. 어떤 악성 코드도 포함될 수 있어서 시스템 파괴, 스파이웨어나 랜섬웨어로의 동작 등 어떤 형태든 가능하지만 주로 백도어로 사용됨. 다른 파일에 삽입되거나 스스로 전파되지 않음.
25
04. 트로이 목마 백도어 백도어(backdoor)는 운영체제나 프로그램을 생성할 때 정상적인 인증 과정을 거치지 않아도 접근할 수 있게 만든 일종의 통로. 프로그램 개발 후 완전히 삭제되어야 하지 만 그대로 남아 있는 경우도 있음.
26
04. 트로이 목마 랜섬웨어 (Randsomware)
랜섬웨어(Ransomware)는 컴퓨터 시스템을 감염시켜 접근을 제한하고 파일을 암호화 시켜 일종의 몸값을 요구하는 악성 소프트웨어
27
05. PUP 개념 PUP(Potentially Unwanted Program)는 사용자에게 직간접적으로 동의를 구하지만 용 도를 파악하기 어려운 상태에서 설치되는 프로그램을 말함. 유용한 프로그램을 설치 할때 같이 설치되기도 함. 크랙 사이트 등에 접속할 때 설치되거나 악성 코드에 의해 설치되었는데 최근에는 특 정 프로그램을 설치할 때 함께 설치되는 경우가 더 많음. 사용자에게 치명적인 악영향을 주는 것은 아니지만 귀찮을 정도로 광고를 지속적으로 보여주거나, 웹 브라우저의 시작 페이지를 특정 페이지로 강제로 변경, 사용하고 싶지 않은 백신을 강제로 사용하게 함. spyware, adware, dialers
28
06. 악성 코드 탐지 및 대응책 수작업으로 악성 코드를 탐지하고 제거하는 방법 알아보기 악성 코드를 탐지하는 데 사용하는 툴
윈도우 7 악성 코드: Win-Trojan.Pearmor Process Explorer: us/sysinternals/downloads/process-explorer Total Commander: CPorts:
29
06. 악성 코드 탐지 및 대응책 네트워크 상태 점검하기
상당수의 악성 코드는 외부에 있는 해커나 악성 코드 작성자와 통신을 하기 위해 서 비스 포트를 생성. 주요 악성 코드가 사용한 서비스 포트
30
06. 악성 코드 탐지 및 대응책 네트워크 상태 점검하기
시스템에서는 netstat 명령으로 열려 있는 포트를 확인할 수 있음. [그림 6-14] netstat -an 실행 결과
31
06. 악성 코드 탐지 및 대응책 네트워크 상태 점검하기
번호만으로 추측하기가 어려운 경우에는 CPorts 같은 프로그램으로 서비스 포트별로 사용하는 응용 프로그램을 확인할 수 있음. BackDoor-DVR 실행한 뒤 CPorts에서 활성화된 네트워크 항목을 살펴보면 특이한 연 결을 발견할 수 있음. 2368번 프로세스가 원격지의 시스템에 특정 패킷을 보내 네트워크 상태 (State)가 Sent로 되어 있는 것을 확인할 수 있음. [그림 6-15] CPorts 실행 결과
32
06. 악성 코드 탐지 및 대응책 정상적인 프로세스와 비교하기
윈도우와 유닉스 시스템 등의 정상적인 프로세스를 외워두면 비정상적인 프로세스를 식별하는 데 도움이 됨. 윈도우에서는 작업 관리자를 실행하여 현재 실행 중인 프로세스 확인 가능. [그림 6-16] 윈도우에서 동작 중인 프로세스 확인
33
06. 악성 코드 탐지 및 대응책 정상적인 프로세스와 비교하기 윈도우 시스템이 동작하기 위한 기본 프로세스
csrss.exe(client/server runtime subsystem: win 32): 윈도우 콘솔 관장, 스레드 생성 및 삭제, 32비트 가상 MS-DOS 모드 지원. explorer.exe: 작업 표시줄이나 바탕화면과 같은 사용자 셸 지원. lsass.exe(local security authentication server): winlogon 서비스에 필요한 인증 프로세스 담당. mstask.exe(window task scheduler): 시스템 백업이나 업데이트와 관련된 작업의 스케줄러. smss.exe(session manager subSystem): 사용자 세션을 시작하는 기능 담당 spoolsv.exe(printer spooler service): 프린터와 팩스의 스풀링 기능 담당. svchost.exe(service host process): DLL(Dynamic Link Libraries)에 의해 실행되는 기본 프로세스. services.exe(service control manager): 시스템 서비스를 시작 및 정지하고 그것들 간에 상호작용하는 기능 수행. system: 커널 모드 스레드 대부분의 시작점이 되는 프로세스. system idle process: 각 CPU마다 하나씩 실행되는 스레드로 CPU의 잔여 프로세스 처리량을 %로 나타낸 값. taskmgr.exe(task manager): 작업 관리자 자신을 나타냄. winlogon.exe(windows logon process): 사용자의 로그인·로그오프를 담당하는 프로세스. winmgmt.exe(window management service): 장치 관리 및 계정 관리, 네트워크 동작 관련한 스크립트를 위한 프로세스. msdtc.exe(distributed transaction coordinator): 웹 서버와 SQL 서버 구동 시에 다른 서버와 연동하기 위한 프로세스. ctfmon.exe(alternative user input services): 키보드, 음성, 손으로 적은 글 등 여러 가지 텍스트 입력에 대한 처리를 지원 하는 프로세스. dfssvc.exe(distributed file system): 분산 파일 시스템(DFS)을 지원하기 위해 백그라운드로 실행되는 프로세스. 악성 코드가 주로 사용하는 서비스명은 csrss와 svchost
34
06. 악성 코드 탐지 및 대응책 악성 코드의 실제 파일 확인하기 시작 프로그램과 레지스트리 확인하기 악성 코드 제거하기
네트워크 상태와 프로세스 분석을 통해 파악한 악성 코드의 실제 파일을 확인하는데 total commander와 같은 툴을 사용함. 시작 프로그램과 레지스트리 확인하기 윈도우 시스템은 시작 프로그램 등 시스템 운영과 관련된 것의 기본 설정 값이 재부 팅 시에도 변하지 않도록 레지스트리에 여러 가지 값을 기록함. 이러한 레지스터를 악성 코드가 이용하는 경우가 많으므로 악성 코드를 삭제할 때는 레지스터에서도 관련 내용을 확인해야 함. 시작 프로그램 목록은 msconfig 명령으로 확인 가능. 악성 코드 제거하기 확인한 악성 코드를 삭제하는 절차 ① 악성 코드 프로세스 중지하기 ② 악성 코드 파일 삭제하기 ③ 레지스트리 삭제하기 구글검색 활용
35
06. 악성 코드 탐지 및 대응책 백신 프로그램 사용하기
Similar presentations