목차 정의 정의(2) - Li 등의 ID기반 방송형 Signcryption기법의 안전성 ...
목차 정의 정의(2) - Li 등의 ID기반 방송형 Signcryption기법의 안전성 ...
목차 정의 정의(2) - Li 등의 ID기반 방송형 Signcryption기법의 안전성 ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Introduction to Anti-Virus<br />
Anti Virus<br />
ICE1212 - Malicious Code<br />
WORM<br />
<strong>정의</strong><br />
VIRUS<br />
ANTISOCIAL<br />
PROGRAM<br />
MALICIOUS CODES “MALCODES”<br />
TROJAN<br />
HORSE<br />
© 황규범.<br />
Information and Communications University<br />
Kyu-beom Hwang<br />
Ahnlab, Inc.<br />
Anti-virus Technology Unit<br />
3<br />
<strong>정의</strong><br />
<strong>정의</strong><br />
정보 정보 수집<br />
명명법 명명법<br />
명명법<br />
동향<br />
동향<br />
최근 최근 연구 연구 동향<br />
결론<br />
결론<br />
ICE1212 - Malicious Code<br />
ICE1212 - Malicious Code<br />
<strong>목차</strong><br />
© 황규범.<br />
Information and Communications University<br />
<strong>정의</strong>(2) <strong>정의</strong> (2)<br />
악성 악성 코드 코드(바이러스<br />
코드 바이러스 바이러스 포함 포함)의 포함<br />
<strong>정의</strong><br />
<strong>정의</strong><br />
– 제작자가 제작자가 의도적 의도적(Intentionally)으로<br />
의도적<br />
으로 으로 사용자에게 사용자에게 피해를<br />
피해를<br />
주고자 주고자 주고자 만든 만든 모든 악의의 악의의 악의의 목적 목적(Harmful)을 목적<br />
가진 가진 가진 프로그램<br />
프로그램<br />
및 매크로 매크로, 매크로 스크립트등 스크립트등 스크립트등 컴퓨터 컴퓨터 상에서 상에서 작동하는 작동하는 모든 실행<br />
실행<br />
가능한 가능한 형태 형태(Executable)<br />
형태<br />
구성<br />
구성<br />
– 바이러스 바이러스(VIRUS)<br />
바이러스<br />
– 트로이목마 트로이목마(TROJAN 트로이목마 HORSE)<br />
– 웜(WORM)<br />
– 혹스 혹스(HOAX)<br />
혹스<br />
– 조크 조크(JOKE)<br />
조크<br />
© 황규범.<br />
Information and Communications University<br />
2<br />
4
ICE1212 - Malicious Code<br />
<strong>정의</strong>(3) <strong>정의</strong> (3)<br />
COMPUTER VIRUS<br />
– Fred Cohen, “Computer Viruses – Theory and Experience”, 1984<br />
We define a computer ‘virus’ as a program can ‘infect’ other<br />
programs by modifying them to include a possibly evolved copy of<br />
itself. With the infection property, a virus can spread throughout<br />
a computer system or network using the authorizations of every<br />
user using it to infect their programs. Every program that gets<br />
infected may also act as a virus and thus the infection grows.<br />
– Lawrence E. Bassham & W. Timothy Polk, “Treat Assessment of<br />
Malicious Code and Human Threats”, 1992.<br />
The following are necessary characteristics of a virus<br />
– Replication<br />
– Requires a host program as a carrier<br />
– Activated by external action<br />
– Replication limited to (virtual) system<br />
ICE1212 - Malicious Code<br />
© 황규범.<br />
Information and Communications University<br />
<strong>정의</strong>(5) <strong>정의</strong> (5)<br />
컴퓨터 컴퓨터 컴퓨터 바이러스 바이러스<br />
바이러스<br />
– 감염 감염 감염 대상 대상 대상 및자기 자기 자기 복제 복제 능력 을가지는 가지는 실행 실행 실행 가능한 가능한 모든<br />
모든<br />
유형<br />
유형<br />
감염대상<br />
자기복제<br />
바이러스 트로이목마 웜<br />
파일/부트 X X<br />
Y X Y<br />
존재형태 기생/겹침 독립 독립<br />
복구방법 치료<br />
※웜과 웜과 바이러스는 바이러스는 시스템내에 시스템내에 존재하는 존재하는 형태로 형태로 구분함<br />
구분함<br />
© 황규범.<br />
Information and Communications University<br />
삭제 삭제<br />
5<br />
7<br />
ICE1212 - Malicious Code<br />
<strong>정의</strong>(4) <strong>정의</strong> (4)<br />
WORM<br />
– A worm is a sophisticated piece of replicating code that uses its own<br />
program coding to spread, with minimal user intervention. A worm<br />
might attach itself to piece of outgoing email or use a file transfer<br />
command between trust systems. Worms take advantage of holes in<br />
software and exploit system. Unlike viruses, worm rarely host<br />
themselves within a legitimate file or boot.<br />
TROJAN HORSE<br />
– A Trojan is a non-replicating program masquerading as one type of<br />
program with its real intent hidden from the user.<br />
ICE1212 - Malicious Code<br />
© 황규범.<br />
Information and Communications University<br />
정보수집<br />
Malcode(Malicious Code)<br />
– Defined as all kinds of executable programs, or macros, or<br />
scripts that are produced in order to intentionally damage<br />
computer systems. Thus, bugs occurred by programmers<br />
mistakes, which are not intentionally produced are not<br />
included in the category of malicious codes. However the bugs<br />
being really harmful to computer users are sometimes<br />
categorized as malicious codes.<br />
Malware( Malicious software)<br />
– A general purpose term encompassing virus, Trojan Horse and<br />
Worm programs(and possibly others). The main idea is that a<br />
program is malware if it ‘does something bad or disagreable’.<br />
The experts may debate whether a password stealer, remote<br />
access Trojan or ‘network creeper’ is a virus, Trojan or Worm,<br />
but all are generally agreed to be malware.<br />
© 황규범.<br />
Information and Communications University<br />
6<br />
8
ICE1212 - Malicious Code<br />
정보수집(2) 정보수집 (2)<br />
VX( Virus eXchange)<br />
– A term originally used to describe the open exchange of virus<br />
samples, that usually involved “swapping”(as commonly seen<br />
on VX BBSes).<br />
– In contrast, the careful, professionally moderated transfer of<br />
samples between antivirus researchers is predicated on high<br />
level of personal trust between those sending and receiving the<br />
samples<br />
VXer( Virus eXchanger)<br />
– A person involved in VX activities.<br />
– However, there was no handy, short term for ‘virus writer’ so<br />
‘Vxer’ is also used to mean ‘someone involved in virus<br />
exchange or virus writing’<br />
ICE1212 - Malicious Code<br />
© 황규범.<br />
Information and Communications University<br />
정보 수집(4) 수집 4)<br />
VIRUS….?<br />
– 일반적으로 일반적으로 사용하는 사용하는 단어<br />
단어<br />
– 긍정적인 긍정적인 긍정적인 단어<br />
단어<br />
– 주로 주로 ANTI-VIRUS의 의미가 의미가 같이 포함됨<br />
그렇다면 그렇다면.. 그렇다면 그렇다면 어떤 어떤 단어를 단어를….? 단어를<br />
– 우리말에도 우리말에도 (비)속어가 속어가 존재함<br />
존재함<br />
– 바이러스 바이러스 바이러스 정보에 정보에 포함되는 그룹명을 그룹명을 눈여겨 눈여겨 봄<br />
– 제작자 제작자 사이트에 있는 있는 단어를 단어를 단어를 찾아봄<br />
– FTP/HTTP SEARCH를 사용함<br />
사용함<br />
© 황규범.<br />
Information and Communications University<br />
9<br />
11<br />
ItW( In the Wild )<br />
ICE1212 - Malicious Code<br />
정보수집(3) 정보수집 (3)<br />
– When a virus is reported to us by two or more Reporters, it's a<br />
pretty good indication that the virus is out there, spreading,<br />
causing real problems to users. We consider such a virus to<br />
be 'In the Wild'.<br />
– On the 15th day of each month, the formal Wild<strong>Li</strong>st is<br />
extracted from all verified reports, and published at<br />
http://www.wildlist.org.<br />
ICE1212 - Malicious Code<br />
© 황규범.<br />
Information and Communications University<br />
정보 수집(5) 수집 5)<br />
© 황규범.<br />
Information and Communications University<br />
YAHOO<br />
10<br />
12
ICE1212 - Malicious Code<br />
악성코드 악성코드 이름<br />
이름<br />
ICE1212 - Malicious Code<br />
정보 수집(6) 수집 6)<br />
© 황규범.<br />
Information and Communications University<br />
명명법<br />
명명법(1) (1)<br />
(1)<br />
(1)<br />
– 악성코드의 악성코드의 이름을 정하는 정하는 것은 분석자의 재량<br />
– 각 기업마다 기업마다 명명원칙을 가지고 정함<br />
– 별도 별도 별도 커뮤니티를 커뮤니티를 운영하여 이름을 이름을 협의함<br />
CARO, Public Channel<br />
– 이미 이미 명명된 이름을 협의에 협의에 따라서 새로 명명하기도 명명하기도 함<br />
이름이 이름이 달라지는 달라지는 이유<br />
이유<br />
© 황규범.<br />
Information and Communications University<br />
ALTAVISTA<br />
– 발견 발견 지역의 차이 차이(주로 차이<br />
주로 미주 미주, 미주 유럽 유럽, 유럽 아시아순으로<br />
아시아순으로 아시아순으로 발견됨 발견됨) 발견됨<br />
– 주 근무시간대의 근무시간대의 차이 차이(시차가<br />
차이<br />
시차가 큰원인임 원인임 원인임) 원인임<br />
– 분석자 분석자 혹은 해당 기업간의 명명원칙 차이<br />
– 협의를 협의를 진행할 충분한 시간적 시간적 여유가 여유가 없음 없음(시차 없음<br />
시차 및고객 고객 피해 방지 방지) 방지<br />
13<br />
15<br />
ICE1212 - Malicious Code<br />
ICE1212 - Malicious Code<br />
정보 수집(7) 수집 7)<br />
© 황규범.<br />
Information and Communications University<br />
명명법<br />
명명법(2) 2)<br />
2)<br />
2)<br />
© 황규범.<br />
Information and Communications University<br />
LYCOS<br />
기본 기본 기본 형태<br />
– 접두어는 접두어는 보통 플랫폼을 플랫폼을 지칭 지칭함(작동<br />
지칭 작동 환경 환경) 환경<br />
윈도우 윈도우95이상<br />
윈도우 윈도우 이상 이상(Win32/, 이상 윈도우 윈도우2000(Win2K/)등<br />
윈도우<br />
– 이름은 이름은 분석가가 분석가가 바이러스 명명원칙을 가지고 가지고 정함<br />
정함<br />
– 접미어는 접미어는 웜(.worm)인지 인지 인지, 인지 트로이목마 트로이목마(.trojan) 트로이목마 트로이목마 등을 등을 표시함 표시함, 표시함 바<br />
이러스인 이러스인 경우 접미어를 접미어를 사용하지 사용하지 않음<br />
– 최종접미어는 최종접미어는 파일 손상 손상 여부 여부 및형태 형태 형태(.html 형태 혹은 혹은 .eml) 혹은 혹은<br />
혹은<br />
@mm과 같이 같이 다량 메일 메일 발송 발송 기능 <strong>등의</strong> <strong>등의</strong> 특징을 특징을 표시함<br />
표시함<br />
접두어 접두어/ 접두어 이름 이름 .접미어 접미어 .변형 변형 최종접미어<br />
최종접미어<br />
Win32/ Colevo .worm . 188928 @mm<br />
14<br />
16
접두어<br />
접두어<br />
ICE1212 - Malicious Code<br />
ICE1212 - Malicious Code<br />
명명법<br />
명명법(3) 3)<br />
3)<br />
3)<br />
© 황규범.<br />
Information and Communications University<br />
명명법<br />
명명법(5) (5)<br />
(5)<br />
(5)<br />
I-Worm.Win32.Colevo.188928<br />
© 황규범.<br />
Information and Communications University<br />
17<br />
19<br />
접미어<br />
접미어<br />
ICE1212 - Malicious Code<br />
ICE1212 - Malicious Code<br />
명명법<br />
명명법(4) 4)<br />
4)<br />
4)<br />
© 황규범.<br />
Information and Communications University<br />
명명법<br />
명명법(6) 6)<br />
6)<br />
6)<br />
CARO[4]<br />
– Computer Anti-virus Research Organizations<br />
– 유럽을 중심으로한 안티바이러스 소사이어티<br />
– A New Virus Naming Convention, 1991을 정함<br />
– 유럽연구회사외에는 잘 안씀. -> 단순화 추세<br />
– 현재 CARO Namming Convension개정 작업중<br />
– 길이가 짧은 바이러스에 대한 명명법으로 Family_Name으로<br />
Trivial을 정하고, 변종은 Trivial.length로 표기함<br />
– 특징이 없는 바이러스는 Silly로 정하고, 변종은 Silly.len<br />
– 상주형과 비상주형(resident versus non-resident)으로 분류<br />
© 황규범.<br />
Information and Communications University<br />
18<br />
20
기본 기본 형태<br />
형태<br />
– 바이러스 바이러스 이름은 이름은 기본적으로 기본적으로 4개 부분으로 부분으로 나뉘며 나뉘며 각 부분은<br />
부분은<br />
점(Point, ‘.’)으로 으로 으로 구분함<br />
– 각 부분의 부분의 이름은 이름은 “A-Za-z0-9$%&!’`#-”등을 등을 사용하여 사용하여 구분함<br />
구분함<br />
– Non-Alphanumeric 글자도 글자도 허용하나 허용하나 사용은 사용은 사용은 제한하는 제한하는 제한하는 것을<br />
것을<br />
권장함<br />
권장함<br />
– 밑줄 밑줄(Underscore, 밑줄<br />
‘_’)은 가독성 가독성(readability)을 가독성<br />
높이기 높이기 위하 위하<br />
위하<br />
여 사용함<br />
사용함<br />
글자수가 글자수가 글자수가 20글자 글자 이상이 될 경우는 경우는 경우는 가급적이면 가급적이면 짧은 짧은 이름<br />
이름<br />
을정함 정함<br />
– 짧은 짧은 짧은 이름이 이름이 사용하기 사용하기 편리함 편리함<br />
ICE1212 - Malicious Code<br />
명명법<br />
명명법(7) 7)<br />
7)<br />
7)<br />
Family_Name .Group_Name .Major_Variant .Minor_Variant<br />
ICE1212 - Malicious Code<br />
인류 인류 .황색인종 황색인종 .한국인 한국인 .수원거주자 수원거주자<br />
© 황규범.<br />
Information and Communications University<br />
명명법<br />
명명법(9) 9)<br />
9)<br />
9)<br />
새 명명법의 명명법의 명명법의 문제점<br />
문제점<br />
– 기존에 기존에 사용하던 사용하던 이름을 변환해야 변환해야 하는가 하는가? 하는가<br />
– 이름이 이름이 너무 너무 길어지는건 길어지는건 길어지는건 아닌가 아닌가? 아닌가<br />
– 형식을 형식을 통일한다고 통일한다고 하더라도 하더라도 이름이 같을 같을 수있는가 있는가 있는가? 있는가<br />
– 이 새로운 새로운 명명법은 명명법은 Ahnlab, McAfee, Symantec, F-PROT등<br />
은크게 크게 달아지는 점없음 없음 but Hauri, AVP, TrendMicro는 변<br />
경 불가피<br />
불가피<br />
– 기존의 기존의 명명법은 형식보다도 형식보다도 이름 이름 자체가 틀리다는것이 틀리다는것이 더큰 문제임<br />
– 형식이 형식이 형식이 통일되면 이름을 이름을 비교하여 비교하여 정보 정보 정보 수집에 수집에 용이함<br />
– Win32/Babo.worm.189232.packed -> worm://Win32/Babo.189232#upx<br />
– W97M/Hua.B, X97M/Hua.B or O97M/Hua.B -> {W97M, X97M}/Hua.B<br />
© 황규범.<br />
Information and Communications University<br />
21<br />
23<br />
논의중인 논의중인 새 명명법<br />
명명법<br />
– 기존의 기존의 명명법으로 명명법으로 수용할 수용할 수없는 없는 플랫폼이나 플랫폼이나 악성코드 악성코드 형태<br />
형태<br />
등이 등이 추가되어 추가되어 각업체별 업체별 고유 방법 방법 사용으로 사용으로 인한 인한 혼란 방지<br />
방지<br />
– 기존의 기존의 명명법에 명명법에 악성코드 종류와 감염크기 감염크기, 감염크기 플랫폼등이 플랫폼등이 추가<br />
추가<br />
됨<br />
– 기본 기본 구조는 구조는 구조는 총 8개 항목으로 항목으로 구성하며 구성하며 각 항목은 항목은 항목은 생략될 생략될 수있<br />
음<br />
:///<br />
ICE1212 - Malicious Code<br />
명명법<br />
명명법(8) 8)<br />
8)<br />
8)<br />
Malcode_Type:// / <br />
Virus:// W32/ Celevo .188928<br />
파일 파일(File) 파일 바이러스<br />
바이러스<br />
ICE1212 - Malicious Code<br />
© 황규범.<br />
Information and Communications University<br />
파일 바이러스<br />
– 일반적인 일반적인 프로그램에 프로그램에 프로그램에 감염되는 감염되는 바이러스로 바이러스로 바이러스로 대부분 대부분 확장자가<br />
COM, EXE인 파일에 파일에 감염시킴 감염시킴. 감염시킴<br />
– 일반 일반 바이러스 바이러스 : 코드의 코드의 변형이나 변형이나 변화없이 고정된 크기의<br />
크기의<br />
간단한 간단한 형태의 형태의 바이러스 바이러스. 바이러스<br />
– 암호화 암호화 바이러스 바이러스 : 바이러스 바이러스 전체 또는 또는 또는 일부가 일부가 암호화되어 암호화되어<br />
암호화되어<br />
보호되는 보호되는 형태로 암호화 암호화/복호화<br />
암호화 복호화 루틴은 루틴은 변경되지 변경되지 않고<br />
않고<br />
Key값만 값만 변경되는 변경되는 형태<br />
– 다형성 다형성 바이러스 바이러스 : 바이러스 바이러스 일부 또는 또는 전부가 전부가 암호화되어<br />
암호화되어<br />
있으며 있으며 매번 매번 암호화 암호화/복호화<br />
암호화<br />
복호화 루틴이 변경되는 변경되는 형태 형태. 형태<br />
© 황규범.<br />
Information and Communications University<br />
.B<br />
22<br />
24
MZ<br />
MZ<br />
MZ<br />
CS:IP<br />
CS:IP<br />
fPtr<br />
fPtr<br />
PE<br />
fPtr<br />
NE<br />
ICE1212 - Malicious Code<br />
파일 바이러스(2) 바이러스 (2)<br />
EXE PROGRAM<br />
CS:IP<br />
EXE/PE PROGRAM<br />
EntryPointRVA<br />
EXE/NE PROGRAM<br />
CS:EIP<br />
일반적인 일반적인 실행 실행 파일은 파일은 MZ헤더와 헤더와 PE/NE/LE헤더로 헤더로 헤더로 구성됨<br />
구성됨<br />
MZ<br />
fPtr<br />
ICE1212 - Malicious Code<br />
© 황규범.<br />
Information and Communications University<br />
파일 바이러스(4) 바이러스 4)<br />
EXE PROGRAM<br />
CS:IP<br />
© 황규범.<br />
Information and Communications University<br />
DOS16<br />
WIN32<br />
WIN16<br />
25<br />
파일크기 파일크기=(wPage-1)*512+wMod<br />
파일크기<br />
wHdSize=wHdPage*16bytes<br />
fPtr=(wCS+wHdPage)*16+wIP<br />
27<br />
* PE PE 파일 파일 EXE EXE 헤더 헤더 분석<br />
MZ<br />
EXE HEADER<br />
ICE1212 - Malicious Code<br />
파일 바이러스(3) 바이러스 3)<br />
fPtr<br />
PE<br />
EXE(PE) PROGRAM<br />
EntryPointRVA<br />
EXEHD<br />
PEHD<br />
일반적인 실행 파일은 MZ헤더와 PE/NE/LE헤더로 구성됨<br />
fPtr<br />
PE<br />
ICE1212 - Malicious Code<br />
© 황규범.<br />
Information and Communications University<br />
파일 바이러스(5) 바이러스 (5)<br />
SE PROGRAM CODE<br />
ENTRYPOINTRVA<br />
© 황규범.<br />
Information and Communications University<br />
26<br />
28
ICE1212 - Malicious Code<br />
주요 감염 기법<br />
ENTRYPOINTRVA수정하는 수정하는 수정하는 기법<br />
기법<br />
감염전<br />
감염전<br />
PEHD<br />
프로그램<br />
프로그램<br />
기법(1) (1)<br />
감염전 감염전 감염전 프로그램 프로그램 프로그램 크기 크기<br />
크기<br />
ENTRYPOINTRVA<br />
감염후 감염후<br />
프로그램<br />
프로그램<br />
바 이 러 스<br />
© 황규범.<br />
Information and Communications University<br />
ENTRYPOINTRVA<br />
PEHD의 dwEntryPointRVA를 수정하여 바이러스 바이러스 실행<br />
실행<br />
가장 가장 일반적인 일반적인 방법<br />
방법<br />
ICE1212 - Malicious Code<br />
주요 감염 기법<br />
ENTRYPOINT 앞부분을 앞부분을 앞부분을 수정하는 수정하는 수정하는 기법<br />
기법<br />
감염전<br />
감염전<br />
PEHD<br />
프로그램<br />
프로그램<br />
기법(2) (2)<br />
감염전 감염전 프로그램 프로그램 크기<br />
크기<br />
ENTRYPOINTRVA<br />
감염후 감염후 감염후<br />
①<br />
프로그램<br />
프로그램<br />
바 이 러 스<br />
②<br />
ENTRYPOINTRVA<br />
dwEntryPoint에 바이러스로 바이러스로 향하는 향하는 코드를 코드를 삽입함<br />
삽입함<br />
Win32/FunLove.4099<br />
© 황규범.<br />
Information and Communications University<br />
29<br />
31<br />
감염전 감염전<br />
감염후<br />
감염후<br />
ICE1212 - Malicious Code<br />
ICE1212 - Malicious Code<br />
© 황규범.<br />
Information and Communications University<br />
감염전 감염전<br />
감염후<br />
감염후<br />
© 황규범.<br />
Information and Communications University<br />
30<br />
32
기생겹쳐쓰기법<br />
기생겹쳐쓰기법<br />
감염전<br />
감염전<br />
ICE1212 - Malicious Code<br />
주요 감염 기법<br />
PEHD<br />
기법(3) (3)<br />
감염전 감염전 감염전 프로그램 프로그램 프로그램 크기 크기<br />
크기<br />
프로그램 프로그램<br />
프로그램<br />
ENTRYPOINTRVA<br />
감염후 감염후<br />
바 프로그램<br />
프로그램 이 러 스<br />
ENTRYPOINTRVA<br />
PE의 Alignment로인한 인한 공간에 공간에 바이러스 코드 코드 분할 분할 삽입<br />
삽입<br />
Win95/CIH, Win95/Love<br />
ICE1212 - Malicious Code<br />
© 황규범.<br />
Information and Communications University<br />
주요 감염 기법<br />
기법(4) (4)<br />
실행점불분명화기법<br />
실행점불분명화기법(Entry 실행점불분명화기법 Point Obscuring Scheme)<br />
감염전<br />
감염전<br />
감염전 감염전 프로그램 프로그램 프로그램 크기<br />
크기<br />
프로그램<br />
프로그램<br />
감염후 감염후 감염후<br />
프로그램<br />
프로그램<br />
바 이 러 스<br />
감염전 감염전<br />
감염후 감염후<br />
감염후<br />
© 황규범.<br />
Information and Communications University<br />
VIRUS<br />
BODY<br />
33<br />
35<br />
바이러스 분석 기초(계속 기초 계속)<br />
ICE1212 - Malicious Code<br />
ICE1212 - Malicious Code<br />
감염전<br />
감염전<br />
감염후<br />
감염후<br />
© 황규범.<br />
Information and Communications University<br />
감염전 감염전<br />
감염후<br />
감염후<br />
© 황규범.<br />
Information and Communications University<br />
34<br />
36
ICE1212 - Malicious Code<br />
동향(1) 동향 (1)<br />
2003년 1월 26일 SQL_Overflow(Slammer)로 인터넷이 마비되었음<br />
마비되었음<br />
전반적으로 전반적으로 웜이 웜이 증가하고 있는 있는 것으로 보임 보임(바이러스는<br />
보임 바이러스는 주춤 주춤) 주춤<br />
2003년 현재 현재 윈도우 윈도우 웜및 바이러스 바이러스 발견 발견 동향 동향(국내 동향 국내 국내) 국내<br />
구분<br />
바이<br />
러스<br />
웜<br />
1월<br />
1<br />
8<br />
2월<br />
2<br />
13<br />
3월<br />
5월<br />
전반적으로 전반적으로 웜과 웜과 트로이목마가 증가하고 증가하고 증가하고 있음<br />
있음<br />
– ADSL/VDSL 사용이 사용이 사용이 증가하면서 네트워크 공격이 증가함 증가함<br />
– 네트워크상에서 네트워크상에서 SQL/Overflow, Codered.F<strong>등의</strong> <strong>등의</strong> 공격이 공격이 감지됨<br />
– Personal Firewall 설치 설치 필요성이 필요성이 대두됨<br />
ICE1212 - Malicious Code<br />
2<br />
11<br />
4월<br />
10<br />
17<br />
© 황규범.<br />
Information and Communications University<br />
© 황규범.<br />
Information and Communications University<br />
2<br />
동향(3) 동향 (3)<br />
2<br />
6월<br />
악성코드 악성코드 악성코드 제작에 제작에 제작에 고급언어 고급언어 사용이 사용이 사용이 일반화됨<br />
일반화됨<br />
– VISUAL BASIC, DELPHI등 고급언어를 고급언어를 이용함<br />
이용함<br />
이메일을 이메일을 통한 통한 확산이 일반화됨<br />
일반화됨<br />
– MIME의 취약점을 이용하여 확산<br />
– 사용자에게 사용자에게 사용자에게 도움을 도움을 도움을 청하는 청하는 내용으로 유포 유포 가능 가능(취약점과<br />
가능 취약점과 무관<br />
무관<br />
함)<br />
취약점을 취약점을 이용한 이용한 악성코드 악성코드 확산 주체로 이용됨<br />
이용됨<br />
– IIS, SQL-Server나 기타 윈도우 커널의 커널의 취약점등을 취약점등을 이용할<br />
이용할<br />
가능성<br />
가능성<br />
암호가 암호가 설정되지 설정되지 설정되지 않은 혹은 혹은 혹은 취약한 시스템 시스템 시스템 공격<br />
공격<br />
– 관리편의로 관리편의로 암호를 암호를 사용하지 사용하지 않는 시스템 공격<br />
공격<br />
– Admininistrator의 암호를 암호를 설치하지않거나 설치하지않거나 간단하게 간단하게 설치한<br />
설치한<br />
경우 경우 경우 공격 공격 대상이 됨<br />
2<br />
17<br />
37<br />
39<br />
2003<br />
ICE1212 - Malicious Code<br />
동향(2) 동향 (2)<br />
Win32/LovGate.worm.132096.B<br />
Win32/Opasoft.worm.32003<br />
Win32/Banuris.worm.98304 Win32/LovGate.worm.142336<br />
Win32/LovGate.worm.107008.D<br />
Win32/Damm.1537<br />
Win32/LovGate.worm.108032<br />
Win32/Kindal.worm.27648<br />
Win32/Valla.2048<br />
Win32/Gentry.15872 Win32/Mhvc.worm.53251<br />
Win32/Slake..worm.28672.C<br />
Win32/Mofei.worm.35788<br />
Win32/LovGate.worm.205824 Win32/LovGate.worm.132096<br />
Win32/JML.29696 Win32/Gentry.20484<br />
Win32/Mumu.worm.16384<br />
Win32/Palyh.worm<br />
Win32/JML Win32/LovGate.84992.BWin32/Fizzer.worm.15360<br />
Win32/LovGate.worm.155648<br />
Win32/SpyBot.worm.27648<br />
Win32/Scvcon.worm.5152 Win32/LovGate.107008 Win32/Fizzer.worm.7680<br />
SQL_Overfl<br />
Win32/Agobot.worm.237568.B<br />
Win32/SdDrop.worm.26000<br />
ow<br />
Win32/Fizzer.worm Win32/Yaha.worm.51424<br />
Win32/SQLExploit.worm.272385 Win32/Deloder.worm.745984<br />
Win32/Pendex.worm.48640<br />
Win32/Agobot.worm.104448.C<br />
Win32/Agobot.worm.237568<br />
Win32/LoveGate.worm.127488<br />
Win32/Opasoft.worm.45558<br />
Win32/Freethem.worm.47616.C Win32/LoveGate.worm.127488.B<br />
Win32/Opasoft.worm.18432.B<br />
Win32/Mofei.worm.33165<br />
Win32/Roron.worm.81925 Win32/LovGate.107008.BWin32/LovGate.worm.127488.E<br />
Win32/Opasoft.worm.47616 Win32/Roron.worm.13824.B Win32/LovGate.107008.B Win32/Sobig.worm.C<br />
Win32/Agobot.worm.104448<br />
Win32/Randex.worm.32256<br />
Win32/Idtsys.36864 Win32/Netspree.worm.48080<br />
Win95/Tenrobot.B Win32/Bugbear.B<br />
Win32/LoveGate.107008<br />
Win32/Agobot.worm.241664<br />
Win32/Valhome.worm.36864<br />
Win32/LovGate.worm.133120<br />
Win32/Slake.worm.28672.B Win32/SpyBot.worm.44064 Win32/IRCBot.worm.83414<br />
Win32/Opasoft.worm.18432<br />
Win32/Slaph.worm.377856Win32/Yahan.worm.45568.B<br />
Win32/Agobot.worm.104448<br />
Win32/Slake.worm.155736<br />
Win32/Randex.worm.37376<br />
Win32/ExploreZIP.worm.91048 Win32/Slacke.worm.28672<br />
Win32/Roron.worm.71680 Win32/Deborm.worm.96112<br />
Win32/Gotit.worm.25480<br />
Win32/Yahan.worm.44544 Win32/SpyBot.worm.44064.B Win32/Randex.worm.40960<br />
Win32/Yaha.worm.34304.B Win32/Agobot.worm.103936Win32/Gotit.worm.75503<br />
Win32/Naco<br />
Win32/Cblode.worm.389181.B Win-Joke/Ghost.251838<br />
Win32/Deborm.worm.85504<br />
Win32/Adurk.worm.13312<br />
Win32/Morbex.worm.55808 Win32/LovGate.worm.120320<br />
1 2 3 4<br />
ICE1212 - Malicious Code<br />
© 황규범.<br />
Information and Communications University<br />
동향(4) 동향 4)<br />
악성코드 악성코드 제작에 제작에 제작에 고급언어를 고급언어를 쓰는 쓰는 이유<br />
이유<br />
– 비주얼베이직과 비주얼베이직과 같이 같이 학습이 학습이 용이한 언어를 언어를 이용함<br />
– 깊은 깊은 지식이 지식이 지식이 없더라도 없더라도 공개된 공개된 컨포넌트들을 컨포넌트들을 이용하여 이용하여 이용하여 다양한 다양한<br />
기능 기능 구현<br />
구현<br />
– 메일보내기 메일보내기, 메일보내기 네트워크 네트워크 폴더 접속등이 접속등이 용이함<br />
용이함<br />
– 국내에서 국내에서 제작된 I-Worm/White의 경우 경우 경우 중학생이 중학생이 중학생이 비주얼베이<br />
비주얼베이<br />
직으로 직으로 코딩함<br />
코딩함<br />
– Win32/Nimda -> Visual C<br />
– Win32/Sircam.worm -> Delphi<br />
– SQL/Overflow(Slammer) -> ASM<br />
실행 실행 실행 파일 파일 압축을 압축을 압축을 통해 다른 다른 코드로 코드로 변환됨 변환됨<br />
변환됨<br />
– 압축을 압축을 풀지못하므로 풀지못하므로 쉽게 쉽게 인지하기 인지하기 어려움<br />
어려움<br />
– 웜의 웜의 발견후 발견후 변종의 변종의 경우 경우 실행 파일 파일 압축된 압축된 경우가 매우 매우 많음<br />
많음<br />
© 황규범.<br />
Information and Communications University<br />
5<br />
6<br />
38<br />
40
ICE1212 - Malicious Code<br />
동향(5) 동향 (5)<br />
– Visual C<br />
ITW의 약 31.4%, ITZ의 20.8%가 해당됨<br />
해당됨<br />
WININET 및 WSOCK, MAPI 라이브러리등 라이브러리등 이용함<br />
이용함<br />
Win32/Klez, Win32./Nimda등이 등이 등이 대표적<br />
대표적<br />
– VisualBasic<br />
ITW의 30%, ITZ의 41.4%가 해당됨<br />
해당됨<br />
P-CODE기반의 기반의 컴파일된 컴파일된 컴파일된 코드 코드 생성<br />
생성<br />
각종 각종 다양한 다양한 모듈들이 모듈들이 준비되어 있음 있음<br />
있음<br />
– DELPHI<br />
ITW의 약 14.9%, ITZ의 15.3%가 해당됨<br />
해당됨<br />
Win32/Sircam이 대표적 대표적<br />
SMTP 및 MAPI 컨포넌트들이 컨포넌트들이 이용됨<br />
이용됨<br />
ICE1212 - Malicious Code<br />
© 황규범.<br />
Information and Communications University<br />
취약점 이용<br />
이용(2) (2)<br />
– 동작 동작 취약점 취약점 이용<br />
MIME-exploit<br />
MIME<br />
exploit<br />
– 아웃룩에서 아웃룩에서 MIME의 MIME<br />
Multimedia Multimedia스트림을<br />
Multimedia 스트림을 처리의 처리의 취약 취약<br />
취약<br />
점을 점을 이용<br />
– 멀티미디어 멀티미디어 스트림으로 스트림으로 스트림으로 들어오는 들어오는 파일을 파일을 실행함<br />
실행함<br />
MID, MID, WAV WAV등등은<br />
WAV 등등은 WinAmp WinAmp 혹은 혹은 MediaPlayer<br />
MediaPlayer등에<br />
MediaPlayer 등에<br />
의해 의해 처리되나 처리되나, 처리되나<br />
, , EXE, EXE, PIF등은 PIF<br />
등은 자동 자동 실행함<br />
MS01-20: MS01<br />
20: 20: Incorrect Incorrect MIME MIME Header Header Can Can Cause<br />
Cause<br />
IE IE to to Execute EE-mail<br />
E mail Attachment<br />
Attachment<br />
멀티미디어 멀티미디어 스트림에 스트림에 README.EXE 가<br />
첨부되었고 첨부되었고 BASE64 인코딩된 인코딩된 데이터가<br />
데이터가<br />
TVqQAA로 시작하는 시작하는 경우 경우 악성코드일 악성코드일 가능성 가능성 높음<br />
© 황규범.<br />
Information and Communications University<br />
41<br />
43<br />
취약점을 취약점을 이용한 이용한 악성코드<br />
악성코드<br />
– 버퍼 버퍼 오버런을 오버런을 오버런을 통한 통한 악성코드 악성코드 악성코드 실행<br />
실행<br />
IIS/ IIS/Codered<br />
IIS/ Codered<br />
– IIS IIS<br />
서버의 서버의 버퍼 버퍼 오버플로우 오버플로우 오버플로우 공격을 공격을 통한 통한 감염 감염 확산<br />
확산<br />
– MS01-033 MS01<br />
033 : : Unchecked Unchecked Buffer Buffer in in Index Index Server Server ISAPI<br />
ISAPI<br />
Extension Extension Could Could Enable Enable Web Web Server Server Compromise<br />
Compromise<br />
SQL/ SQL/Overflow(Slammer<br />
SQL/ Overflow(Slammer<br />
Overflow(Slammer)<br />
Overflow(Slammer<br />
– UDP UDP 378Bytes의 378Bytes<br />
패킷 패킷 정보가 정보가 SQL SQL 서버내에서 서버내에서 서버내에서 실행됨<br />
실행됨<br />
– 암호없는 암호없는 경우<br />
경우<br />
JS/ JS/Spida JS/ Spida<br />
– 1433 1433포트로<br />
1433 1433포트로<br />
포트로 SA SA로그인 SA 로그인 취약점 취약점(암호가<br />
취약점 취약점 암호가 암호가 없는 없는 경우 경우)이용 경우 이용<br />
– 메일 메일 발송 발송 모듈을 모듈을 포함하여 포함하여 SQL SQL서버 SQL 서버 중요 중요 정보 정보 유출<br />
유출<br />
– SQL SQL<br />
서버의 서버의 SA(System SA(System Administrator)<br />
Administrator)의 Administrator) 암호 암호 임의 임의 설정<br />
설정<br />
– Q313418: Q313418: Unsecured Unsecured SQL SQL Server Server with with Blank Blank (NULL) (NULL) SA<br />
SA<br />
Password Password Leaves Leaves Vulnerability Vulnerability to to a a Worm<br />
Worm<br />
Win32/Lovgate.worm Win32/Lovgate.worm 외 다수<br />
ICE1212 - Malicious Code<br />
ICE1212 - Malicious Code<br />
취약점 이용<br />
이용(1) (1)<br />
© 황규범.<br />
Information and Communications University<br />
취약점 이용<br />
이용(3) (3)<br />
© 황규범.<br />
Information and Communications University<br />
42<br />
44
ICE1212 - Malicious Code<br />
ICE1212 - Malicious Code<br />
고급언어이용(1)<br />
고급언어이용 (1)<br />
© 황규범.<br />
Information and Communications University<br />
P2P를 P2P 통한 확산<br />
확산(1) (1)<br />
메신저를 메신저를 이용한 이용한 악성코드 악성코드 확산<br />
확산<br />
– 메시지 메시지 전송외에 파일을 파일을 전송 전송 가능 가능 – 전송된 전송된 파일의 파일의 수신은 사용자의<br />
사용자의<br />
책임에 책임에 의함으로 의함으로 실수에 실수에 의한 의한 의한 실행 실행 실행 가능성 가능성 높음<br />
높음<br />
– 대화 대화 대화 상대에서 상대에서 악의적 악의적 사이트 사이트 URL URL을 URL URL 전송하여 전송하여 실행토록함<br />
실행토록함<br />
JS/Exploit JS/Exploit-Messenger<br />
JS/Exploit<br />
Messenger<br />
– 파일 파일 전송<br />
전송<br />
MSN MSN SDK SDK를 SDK 이용하여 이용하여 파일을 파일을 전송할 전송할 수있음 있음<br />
Win32/Supova.worm, Win32/Supova.worm, Win32/BR2002.worm<br />
Win32/BR2002.worm<br />
기타 기타 백오리피스와 백오리피스와 같은 같은 프로그램 프로그램 악의 악의 전송 전송 가능<br />
가능<br />
– 전송된 전송된 파일은 파일은 자동으로 자동으로 수신하지 수신하지 않아 않아, 않아 , 주의하면 주의하면 피해 피해 예방 예방 가능<br />
가능<br />
P2P P2P를 P2P 이용한 이용한 악성코드 악성코드 확산 확산<br />
– 음악 음악 음악 파일 파일, 파일 , 영화 영화 파일 파일 및불법 불법 불법 소프트웨어 소프트웨어 교환 교환 채널로 채널로 이용됨<br />
이용됨<br />
– 실행 실행 파일에 파일에 바이러스 바이러스 감염되어 감염되어 유포될 유포될 수있음 있음<br />
– 소리바다 소리바다, 소리바다 , WinMx WinMx, WinMx , eDonkey eDonkey eDonkey and and eMule eMule, eMule , Kazzar<br />
Kazzar<br />
© 황규범.<br />
Information and Communications University<br />
45<br />
47<br />
ICE1212 - Malicious Code<br />
ICE1212 - Malicious Code<br />
고급언어이용(2)<br />
고급언어이용 (2)<br />
© 황규범.<br />
Information and Communications University<br />
P2P를 P2P 통한 확산<br />
확산(2) (2)<br />
© 황규범.<br />
Information and Communications University<br />
46<br />
48
ICE1212 - Malicious Code<br />
ICE1212 - Malicious Code<br />
P2P를 P2P 통한 확산<br />
확산(3) (3)<br />
© 황규범.<br />
Information and Communications University<br />
최근 최근<br />
최근<br />
최근 연구 연구<br />
연구<br />
연구 동향<br />
동향<br />
동향<br />
동향<br />
동향(1) (1)<br />
HONEYPOT<br />
– 바이러스 바이러스 확산 확산 및신종 신종 신종 악성코드 악성코드 악성코드 검출을 검출을 위한 위한 연구<br />
연구<br />
– 인터넷 인터넷 상에서 상에서 공격이 의심되는 의심되는 포트를 포트를 포트를 열고 열고 동작을 동작을 시뮬레이<br />
시뮬레이<br />
트하여 트하여 공격을 공격을 받아줌 – 공격된 공격된 내용은 내용은 파일로 파일로 저장함<br />
저장함<br />
– 통상 통상 통상 무결성검사를 무결성검사를 통하여 기존 새로운 새로운 패킷에 패킷에 대한 대한 알람기능<br />
알람기능<br />
이있음 있음 있음<br />
– 현재 현재 Kaspersky Lab 그리고 그리고 ICSA에서 에서 집중 집중 연구됨<br />
연구됨<br />
Kaspersky Lab. – Smallpot으로 으로 으로 <strong>Li</strong>nux상에서 상에서 네트워크로<br />
네트워크로<br />
유입되는 유입되는 유입되는 바이러스나 바이러스나 웜이 웜이 이용하는 이용하는 이용하는 대표적인 대표적인 대표적인 포트를 포트를 감<br />
시함 시함(80, 시함 25, 21, 1433, 1434.. Etc)<br />
ICSA – WormWatch로 Windows 상에서 상에서 네트워크로 네트워크로 유입 유입<br />
유입<br />
되는 되는 바이러스나 바이러스나 웜이 이용하는 이용하는 대표적인 대표적인 포트를 포트를 감시함<br />
감시함<br />
( 80, 25, 21, 1433, 1434.. Etc) – 메일로 메일로 송부함<br />
송부함<br />
http://www.wormwatch.org<br />
© 황규범.<br />
Information and Communications University<br />
49<br />
51<br />
ICE1212 - Malicious Code<br />
ICE1212 - Malicious Code<br />
P2P를 P2P 통한 확산<br />
확산(4) (4)<br />
© 황규범.<br />
Information and Communications University<br />
SMALL POT(1) POT(1)<br />
Costin Raiu에 의해 의해 의해 2002년에 년에 년에 소개됨<br />
소개됨<br />
– Rumania Anti-Virus Analyst(Kaspersky Lab에 있음 있음) 있음 있음<br />
– http://www.craiu.com<br />
개요 개요<br />
개요<br />
– SmallPot = Small Honeypot<br />
– Cordred.C를 모니터링 하기위해 하기위해 시작함<br />
– FTP, POP3, SMTP, SUN-RPC, TELNET, UPnP, MS-SQL,<br />
SSH, Netbus, SubSeven등을 등을 모니터링함<br />
모니터링함<br />
– 방어를 방어를 위한 위한 것이 아님 아님 공격 공격 로그 및공격 공격 패킷 수집용<br />
수집용<br />
– WIN32로 환경에서 환경에서 작성한 것으로 알려져 알려져 있음<br />
– 리눅스 리눅스 프로그램을 프로그램을 포팅하여 포팅하여 작성함<br />
© 황규범.<br />
Information and Communications University<br />
50<br />
52
ICE1212 - Malicious Code<br />
ICE1212 - Malicious Code<br />
SMALL POT(2) POT(2)<br />
© 황규범.<br />
Information and Communications University<br />
SMALL POT(4) POT(4)<br />
© 황규범.<br />
Information and Communications University<br />
2001.11 ~ 2002.7<br />
Visual C로 작성함<br />
Multi-thread 환경 환경 및 WSOCK32.DLL를 이용하여 이용하여 이용하여 코딩함<br />
코딩함<br />
19 TCP port를 열어두고 열어두고 공격을 공격을 받아줌<br />
받아줌<br />
베너를 베너를 5초마다 초마다 변경하여 공격자를 공격자를 속임<br />
– 공격프로그램이 공격프로그램이 버전을 체크하는 체크하는 경우를 경우를 대비하여 대비하여 다양하게<br />
다양하게<br />
준비함 준비함(취약점<br />
준비함 취약점 있는 있는 버전에 대한 공격이 공격이 이루어짐 이루어짐) 이루어짐<br />
53<br />
55<br />
ICE1212 - Malicious Code<br />
ICE1212 - Malicious Code<br />
SMALL POT(3) POT(3)<br />
© 황규범.<br />
Information and Communications University<br />
SMALL POT(5) POT(5)<br />
수신된 수신된 데이트 데이트 데이트 처리<br />
– CRC를 이용하여 이용하여 기존 데이터와 데이터와 비교<br />
– 두개의 두개의 데이터 데이터 베이스 이용<br />
이용<br />
DB1<br />
– 많이 많이 확산된 확산된 유형<br />
유형<br />
– External DB-패킷이 패킷이 깨졌거나 깨졌거나 중복된 패킷<br />
패킷<br />
DB2<br />
– SMALLPOT.CRC<br />
– ‘Fixed’ Request를 저장함<br />
저장함<br />
– 특별한 특별한 파싱과정이 파싱과정이 필요함 필요함 – 내부에 내부에 특별한 특별한 처리가 처리가 포<br />
함됨 함됨<br />
함됨<br />
– 패킷 패킷 변조를 변조를 포함함 포함함(공격<br />
포함함 공격 대응 대응) 대응<br />
– 프락시에서 프락시에서 만든 만든 헤더를 헤더를 수정 수정(제거 수정 제거 제거)함 제거<br />
– 새로운 새로운 패킷의 패킷의 경우 테스트를 테스트를 위해 메일 메일 메일 전송함<br />
© 황규범.<br />
Information and Communications University<br />
54<br />
56
필터링 필터링 전<br />
필터링 필터링 후<br />
ICE1212 - Malicious Code<br />
ICE1212 - Malicious Code<br />
SMALL POT(6) POT(6)<br />
© 황규범.<br />
Information and Communications University<br />
WORM CATCHER(1)<br />
CATCHER(1)<br />
Roger Thompson에 의해 의해 의해 2001년에 년에 년에 소개됨<br />
– ICSA Lab에서 에서 진행함<br />
– http://www.wormwatcher.org<br />
개요<br />
개요<br />
– 2001년부터 년부터 시작됨<br />
– 웜이 웜이 사용하는 사용하는 포트를 모니터링함<br />
모니터링함<br />
(80,21,22,23,25,445,53,111,515,1433,27374)<br />
– 방어를 방어를 위한 위한 것이 것이 아님 공격 로그 및공격 공격 공격 패킷 수집용<br />
수집용<br />
– Windows환경에서 환경에서 동작함<br />
– 메일로 메일로 데이터를 데이터를 공유함<br />
– TCP, UDP포트를 포트를 사용자가 사용자가 지정할 수있음 있음<br />
© 황규범.<br />
Information and Communications University<br />
57<br />
59<br />
ICE1212 - Malicious Code<br />
SMALL POT(7) POT(7)<br />
© 황규범.<br />
Information and Communications University<br />
WORM CATCHER(2)<br />
CATCHER(2)<br />
ICE1212 - Malicious Code<br />
© 황규범.<br />
Information and Communications University<br />
58<br />
60
WORM CATCHER(3)<br />
CATCHER(3)<br />
수신된 수신된 데이트 데이트 처리<br />
처리<br />
– CRC를 이용하여 기존 데이터와 비교<br />
– DB를 업데이트 함으로써 악성코드 악성코드 이름을 이름을 이름을 제공함 제공함<br />
제공함<br />
– 수신된 수신된 패킷 패킷 데이터를 일단위로 일단위로 일단위로 저장함<br />
저장함<br />
필요에 필요에 따라서 하드디스크에<br />
하드디스크에 하드디스크에 저장된 저장된 데이터를 이용함 이용함<br />
이용함<br />
– 기존에 기존에 수신되었던 수신되었던 패킷은 패킷은 메일 제목으로 제목으로 내용만 내용만 알려줌<br />
알려줌<br />
– 새로운 새로운 패킷은 패킷은 수신된 패킷을 패킷을 첨부하여 메일로 메일로 알려줌<br />
알려줌<br />
ICE1212 - Malicious Code<br />
ICE1212 - Malicious Code<br />
© 황규범.<br />
Information and Communications University<br />
WORM CATCHER(5)<br />
CATCHER(5)<br />
© 황규범.<br />
Information and Communications University<br />
61<br />
63<br />
WORM CATCHER(4)<br />
CATCHER(4)<br />
ICE1212 - Malicious Code<br />
ICE1212 - Malicious Code<br />
© 황규범.<br />
Information and Communications University<br />
최근 최근<br />
최근<br />
최근 연구 연구<br />
연구<br />
연구 동향<br />
동향<br />
동향<br />
동향<br />
동향(2) (2)<br />
AUTOMATION<br />
– 백신 백신 백신 동작을 동작을 동작을 외부에서 외부에서 자동화 자동화 자동화 함<br />
– 다양한 다양한 백신의 백신의 동작을 자동화 자동화 함으로써 함으로써 함으로써 테스트나 테스트나 HONEYPOT<br />
등에 등에 적용함<br />
적용함<br />
– 엔진을 엔진을 라이센스할 라이센스할 수없는 없는 연구기관이나 연구기관이나 학계에 필요함<br />
필요함<br />
– Ahnlab 및 Microsoft에서 에서 연구함<br />
연구함<br />
Ahnlab – V3Genie System으로 으로 전세계 전세계 Major급백신 백신 제품<br />
제품<br />
을모두 모두 컨트롤함 컨트롤함(진단<br />
컨트롤함 진단 및자동 자동 업데이트 업데이트, 업데이트 해당 해당 홈페이지 홈페이지 정<br />
보수집 수집 수집), 수집 현재 현재 실제 실제 적용되어 적용되어 업무에 업무에 업무에 활용됨<br />
활용됨<br />
Microsoft – 백신 백신 벤치마킹을 벤치마킹을 위해서 위해서 제작하였음을 제작하였음을 피력함<br />
Scan-O-Matic 이란 이란 이름으로 이름으로 발표됨<br />
발표됨<br />
– Ahnlab의 VBS, 메시지랩의 메시지랩의 VirusEyes도 자동화시스템의 자동화시스템의 하나<br />
로볼수 볼수 있음<br />
있음<br />
© 황규범.<br />
Information and Communications University<br />
62<br />
64
SANDBOX<br />
– 악성코드로 악성코드로 의심되는 의심되는 샘플을 샘플을 격리된 격리된 환경에서 환경에서 환경에서 테스트함<br />
테스트함<br />
– 시뮬레이션 시뮬레이션 기법을 기법을 기법을 이용함 이용함(실제<br />
이용함 실제 실제 실행시 실행시 위험 위험 위험 부담이 큼)<br />
– 대부분 대부분 백신 백신 회사가 회사가 연구하고 연구하고 있음 있음<br />
있음<br />
– 현재는 현재는 윈도우 윈도우 프로그램의 프로그램의 프로그램의 IMPORT TABLE의 함수들의 함수들의 상호 상호 연관관<br />
연관관<br />
계를 계를 통한 자동 자동 자동 분석이 소개됨<br />
소개됨<br />
– Ahnlab의경우 경우 IMPORT TABLE 및 C로 제작된 제작된 응용프로그램의 응용프로그램의 함<br />
수내에 수내에 사용중인 사용중인 API를 함수별로 나열하여 나열하여 분석을 분석을 용이하게 용이하게 함<br />
IA64<br />
– INTEL의 64bit Architecture인 IA64(Itenium2)가 채용한 채용한 Windows<br />
XP 64bit 환경에서의 환경에서의 악성코드 악성코드 악성코드 동작 동작 여부 여부 연구<br />
– 레지스트리 레지스트리 구성 구성 및 OS환경 환경 차이로 기존 기존 악성코드 악성코드 동작 동작 불확실<br />
불확실<br />
– 아이테니움 아이테니움 장비는 장비는 현재 현재 구매가 구매가 어렵고 어렵고, 어렵고 고가임<br />
고가임<br />
ICE1212 - Malicious Code<br />
ICE1212 - Malicious Code<br />
최근 최근<br />
최근<br />
최근 연구 연구<br />
연구<br />
연구 동향<br />
동향<br />
동향<br />
동향<br />
동향(3) (3)<br />
© 황규범.<br />
Information and Communications University<br />
AUTOMATION<br />
AUTOMATION(1)<br />
AUTOMATION<br />
AUTOMATION<br />
AUTOMATION<br />
AUTOMATION(1)<br />
C-Style Function <strong>Li</strong>st on Win32<br />
Win32 파일에 파일에 대하여 대하여 대하여 함수를 함수를 추출하고 추출하고, 추출하고 함수내 함수내 사용 사용 API 분석<br />
분석<br />
여러 여러 파일을 관찰하면 관찰하면 시작위치 시작위치 예측 예측 가능함 가능함<br />
가능함<br />
© 황규범.<br />
Information and Communications University<br />
65<br />
67<br />
ANTI-SPAM<br />
– 바이러스나 바이러스나 바이러스나 웜이 메일로 유입되는 경우가 많음<br />
– 스팸 스팸 메일이 메일이 메일이 제목을 제목을 지능적으로 지능적으로 선택하여 실수를 실수를 유발함 유발함<br />
– 기업의 기업의 경우 메일 메일 서버의 서버의 부하 및공간 공간 차지등 차지등 부작용 유발<br />
– 서버에 서버에 설치되는 백신에 ANTI-SPAM기능을 기능을 부여하여 동시 처리를 처리를 기대함 기대함(백 기대함<br />
신이 신이 신이 수신된 수신된 메일을 검사하는 기능이 있음 있음) 있음<br />
– 중요한 중요한 연구점은 백신의 기능과 ANTI-SPAM의 기능을 기능을 효율적으로 효율적으로 융합하고 융합하고, 융합하고<br />
스팸메일에 스팸메일에 대한 <strong>정의</strong> 및 분류등이 분류등이 필요함 필요함(백신은<br />
필요함<br />
백신은 오진을 중시하고 중시하고, 중시하고<br />
스팸으로<br />
스팸으로<br />
걸러진 걸러진 걸러진 메일이 메일이 민감한 경우 경우) 경우<br />
부분 부분 진단법 진단법(스트림<br />
진단법 스트림 진단법 진단법) 진단법<br />
– 네트워크 네트워크 상에서 일부의 패킷을 이용한 진단법 – 진단능력의 진단능력의 수준을 정하고 정하고, 정하고<br />
그<br />
에 맞추어 맞추어 맞추어 진단 수행 수행 –IDS나 FIREWALL과 달리 달리 결정적인 결정적인 증거를 가지고 가지고 진단<br />
해야 해야 함 – 오진에 오진에 오진에 대한 대비<br />
대비<br />
– 네트워크상에서 네트워크상에서 모든 패킷을 패킷을 모아 메모리든 메모리든 하드든 파일 형태로 형태로 형태로 구성하는 것은<br />
네트워크 네트워크 효율저하 및 진단능력저하<br />
진단능력저하 진단능력저하 그리고 비용증가 유발<br />
– CRC나 INTEGRITY CHECKING(웜 진단시 진단시 이용 이용)을 이용<br />
사용할 사용할 수없게됨 없게됨<br />
– 전체적으로 전체적으로 AV+IDS+FIREWALL 형태를 형태를 가질 수있음 있음 있음. 있음<br />
ICE1212 - Malicious Code<br />
ICE1212 - Malicious Code<br />
최근 최근<br />
최근<br />
최근 연구 연구<br />
연구<br />
연구 동향<br />
동향<br />
동향<br />
동향<br />
동향(4) (4)<br />
© 황규범.<br />
Information and Communications University<br />
AUTOMATION<br />
AUTOMATION(2)<br />
AUTOMATION<br />
AUTOMATION<br />
AUTOMATION<br />
AUTOMATION(2)<br />
Header Information( V3 File Analyzer )<br />
엔진에서 엔진에서 읽어들인 읽어들인 파일에 파일에 대한 대한 헤더 헤더 분석 분석 정보를 출력함<br />
출력함<br />
진단에 진단에 필요한 필요한 주요 정보만 정보만 출력함<br />
출력함<br />
© 황규범.<br />
Information and Communications University<br />
66<br />
68
ICE1212 - Malicious Code<br />
AUTOMATION<br />
AUTOMATION(3)<br />
AUTOMATION<br />
AUTOMATION<br />
AUTOMATION(3)<br />
Header Information( V3VIEW )<br />
V3GENIE가 분석한 분석한 헤더 정보 출력<br />
출력<br />
상세 상세 상세 분석되며 분석되며 Import/Export 테이블 테이블 이상 이상 유무도 유무도 유무도 확인 확인 확인 가능함<br />
가능함<br />
ICE1212 - Malicious Code<br />
© 황규범.<br />
Information and Communications University<br />
AUTOMATION<br />
AUTOMATION(5)<br />
AUTOMATION<br />
AUTOMATION<br />
AUTOMATION<br />
AUTOMATION(5)<br />
© 황규범.<br />
Information and Communications University<br />
69<br />
71<br />
ICE1212 - Malicious Code<br />
ICE1212 - Malicious Code<br />
AUTOMATION<br />
AUTOMATION(4)<br />
AUTOMATION<br />
AUTOMATION<br />
AUTOMATION(4)<br />
© 황규범.<br />
Information and Communications University<br />
AUTOMATION<br />
AUTOMATION(6)<br />
AUTOMATION<br />
AUTOMATION<br />
AUTOMATION<br />
AUTOMATION(6)<br />
© 황규범.<br />
Information and Communications University<br />
70<br />
72
ICE1212 - Malicious Code<br />
AUTOMATION<br />
AUTOMATION(7)<br />
AUTOMATION<br />
AUTOMATION<br />
AUTOMATION(7)<br />
© 황규범.<br />
Information and Communications University<br />
참고자료<br />
73<br />
악성코드 악성코드 악성코드 대응은 대응은 끝이없는 끝이없는 끝이없는 싸움 싸움! 싸움<br />
그러나 그러나 가치가 가치가 적은 적은 소모전 소모전! 소모전 소모전<br />
ICE1212 - Malicious Code<br />
ICE1212 - Malicious Code<br />
결론<br />
결론<br />
결론<br />
결론<br />
결론은 결론은 여러분과 여러분과 함께<br />
함께<br />
© 황규범.<br />
Information and Communications University<br />
실수 방지 대책<br />
DMZ(검사비대상 검사비대상 영역 영역)를 영역 설정함 설정함 →실수 실수 예방<br />
예방<br />
© 황규범.<br />
Information and Communications University<br />
74<br />
76
ICE1212 - Malicious Code<br />
분석도구(2) 분석도구 (2)<br />
TaskInfo2002의 장점<br />
– TASK의 정확한 정확한 정확한 위치 위치(Path)와 위치<br />
실행 실행 형태를 형태를 알수있음 있음<br />
– 프로세스를 프로세스를 디버거를 이용하여 디버깅 가능하도록 가능하도록 함<br />
– 시스템 시스템 시스템 관련 관련(CPU 관련<br />
및 Driver등) 정보가 정보가 정보가 확인이 매우 용이함 용이함<br />
– GUI(Graphic User Interface)가 매우 매우 뛰어나고 뛰어나고, 뛰어나고<br />
시각적 시각적 효과가 우수함<br />
– 설치 설치 프로그램을 지원하여 설치 및사용이 사용이 용이함<br />
TaskInfo2002의 단점<br />
– 프로세스가 프로세스가 사용중인 모듈을 확인할 수없음 없음<br />
– 실행 실행 중인 프로세스가 서비스인 경우 종료할 수없음 없음<br />
Copyright Protection<br />
Shareware Software(Registration fee, $35/copy)<br />
ICE1212 - Malicious Code<br />
© 황규범.<br />
Information and Communications University<br />
분석도구(2) 분석도구 (2)<br />
TaskInfo2002의 장점<br />
– TASK의 정확한 정확한 위치 위치(Path)와 위치<br />
실행 실행 형태를 형태를 형태를 알수있음 있음<br />
– 프로세스를 프로세스를 디버거를 이용하여 디버깅 가능하도록 함<br />
– 시스템 시스템 관련 관련(CPU 관련<br />
및 Driver등) 정보가 정보가 확인이 매우 용이함<br />
– GUI(Graphic User Interface)가 매우 매우 뛰어나고 뛰어나고, 뛰어나고<br />
시각적 시각적 효과가 우수함<br />
– 설치 설치 프로그램을 지원하여 설치 및사용이 사용이 용이함<br />
TaskInfo2002의 단점<br />
– 프로세스가 프로세스가 사용중인 모듈을 확인할 확인할 수없음 없음 없음<br />
– 실행 실행 중인 프로세스가 서비스인 경우 종료할 수없음 없음<br />
Copyright Protection<br />
Shareware Software(Registration fee, $35/copy)<br />
© 황규범.<br />
Information and Communications University<br />
77<br />
79<br />
ICE1212 - Malicious Code<br />
분석도구(1) 분석도구 (1)<br />
TaskInfo2002(Igor Arsenin)<br />
– 현재 현재 시스템의 주요 정보를 확인 가능함 가능함(드라이버<br />
가능함<br />
드라이버 드라이버, 드라이버 프로세스 프로세스, 프로세스 프로세스 모듈 모듈, 모듈 공유폴더 공유폴더) 공유폴더<br />
– http://www.iarsn.com/index.html<br />
ICE1212 - Malicious Code<br />
© 황규범.<br />
Information and Communications University<br />
분석도구(3) 분석도구 (3)<br />
FLCSS가 THREAD 1개로 개로 실행중임<br />
© 황규범.<br />
Information and Communications University<br />
시스템<br />
시스템<br />
정보<br />
정보<br />
프로세스 프로세스 및생성 생성 THREAD<br />
78<br />
80
ICE1212 - Malicious Code<br />
분석도구(4) 분석도구 (4)<br />
FILEMON/NTFILEMON<br />
– 바이러스에 바이러스에 의한 파일 관련 엑세스 엑세스 모니터링<br />
– 인터넷을 인터넷을 통해서 구할 수있는 있는 프로그램 프로그램(공개<br />
프로그램<br />
공개 소프트웨어 소프트웨어)<br />
소프트웨어<br />
– http://www.sysinternals.com/ntw2k/utilities.shtml<br />
ICE1212 - Malicious Code<br />
© 황규범.<br />
Information and Communications University<br />
분석도구(6) 분석도구 (6)<br />
© 황규범.<br />
Information and Communications University<br />
프로그램 프로그램 이름 이름(프로세스<br />
이름 프로세스 프로세스) 프로세스<br />
파일 파일 관련 관련 작업 작업(READ/WRITE)<br />
작업<br />
분석에 분석에 있어서 있어서 도움이 도움이 됨<br />
81<br />
83<br />
ICE1212 - Malicious Code<br />
분석도구(5) 분석도구 (5)<br />
FILEMON/NTFILEMON의 필요성<br />
필요성<br />
– 행동 행동(Behavior)을 행동<br />
모니터링 모니터링 할수있음 있음<br />
– 바이러스의 바이러스의 경우 fOpen->fWrite->fClose의 과정이 반드시 반드시 있음<br />
– 파일 파일 관련 억세스를 보다 정확하게 간단하게 확인이 가능함<br />
– 프로그램 프로그램 디버그시 불필요한 파일 억세스를 확인할 수있음 있음<br />
– 현재 현재 실행중인 프로그램들의 파일 억세스를 확인할 수있음 있음<br />
– 필터링을 필터링을 통하여 원하는 정보만 혹은 원하는 프로그램의 프로그램의 억세스만 확인할 수<br />
있음<br />
있음<br />
– 소스를 소스를 제공함으로 제공함으로 보다 보강된 보강된 기능을 부여할 수있음 있음<br />
FILEMON/NTFILEMON의 제한점<br />
제한점<br />
– 파일 파일 엑세스와 관련한 구체적인 사항 사항(Write 사항<br />
내용등등 내용등등)을 내용등등 확인하기 확인하기 확인하기 어려움 어려움<br />
Copyright Protection<br />
– Freeware<br />
ICE1212 - Malicious Code<br />
© 황규범.<br />
Information and Communications University<br />
분석도구(7) 분석도구 (7)<br />
© 황규범.<br />
Information and Communications University<br />
82<br />
84
ICE1212 - Malicious Code<br />
분석도구(8) 분석도구 (8)<br />
IVP에의한 의한 파일 파일 접근을 접근을 접근을 보여줌<br />
보여줌<br />
지속으로 지속으로 FindFirst->FileOpen->FileClose->Delete->FindNext<br />
ICE1212 - Malicious Code<br />
© 황규범.<br />
Information and Communications University<br />
분석도구(10)<br />
분석도구 (10)<br />
Exefile\shell\command가 수정되면 수정되면 실행하는<br />
실행하는<br />
프로그램의 프로그램의 프로그램의 path가모두 모두 SIRC32.EXE로되어 되어 있음<br />
있음<br />
© 황규범.<br />
Information and Communications University<br />
85<br />
87<br />
ICE1212 - Malicious Code<br />
ICE1212 - Malicious Code<br />
분석도구(9) 분석도구 (9)<br />
SYSTURBO에의한 의한 파일 파일 접근을 접근을 보여줌<br />
보여줌<br />
지속으로 지속으로 fGet->fOpen->fSeek->fClose 형태임<br />
형태임<br />
© 황규범.<br />
Information and Communications University<br />
분석도구(11)<br />
분석도구 (11)<br />
REGMON/NTREGMON<br />
– 바이러스에 바이러스에 의한 레지스트리 접근 접근 및 억세스 억세스 모니터링<br />
– 인터넷을 인터넷을 통해서 구할 수있는 있는 프로그램 프로그램(공개<br />
프로그램<br />
공개 소프트웨어 소프트웨어)<br />
소프트웨어<br />
– http://www.sysinternals.com/ntw2k/utilities.shtml<br />
© 황규범.<br />
Information and Communications University<br />
프로그램 프로그램 이름 이름(프로세스<br />
이름 프로세스 프로세스) 프로세스<br />
레지스트리 레지스트리 관련 관련 작업 작업(READ/WRITE)<br />
작업<br />
86<br />
88
ICE1212 - Malicious Code<br />
분석도구(1 분석도구<br />
(12) 2)<br />
REGEDIT의 필요성<br />
– 인터넷 인터넷 웜의 웜의 경우 경우 레지스트리 레지스트리 등록을 통하여 통하여 통하여 재부팅시 재부팅시 재부팅시 실행 실행 되도록 되도록 함<br />
– 레지스트리에는 레지스트리에는 시스템 시스템 관련 관련 관련 설정 설정 설정 및보안 보안 보안 사항들이 사항들이 저장되어 저장되어 있음 있음<br />
– 웜이나 웜이나 네트워크로 네트워크로 네트워크로 확산되는 확산되는 바이러스들은<br />
바이러스들은 바이러스들은 반드시 레지스트리를 레지스트리를 이용함<br />
– 공유폴더 공유폴더(Shared 공유폴더 Folder)의 정보를 정보를 정보를 쉽게 쉽게 쉽게 확인 확인 조작 조작 조작 가능함 가능함<br />
가능함<br />
주요 주요 필드<br />
– HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run<br />
– HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce<br />
– HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce<br />
Ex<br />
– HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServi<br />
ces(Windows 9x/Me)<br />
– HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServi<br />
cesOnce(Windows 9x/Me)<br />
– HKEY_LOCAL_MACHINE\Software\Microsoft\Windows Scripting Host\Locations<br />
– HKEY_CURRENT_USER\Network<br />
– HKEY_CLASSES_ROOT\exefile\shell\open\command<br />
ICE1212 - Malicious Code<br />
© 황규범.<br />
Information and Communications University<br />
다형성 바이러스(1) 바이러스 (1)<br />
다형성 다형성 다형성 바이러스의 바이러스의 특징 특징<br />
특징<br />
– 디코더 디코더(암호<br />
디코더 암호 암호) 암호 + 바이러스코드로 바이러스코드로 구성됨<br />
– 디코더의 디코더의 구성이 구성이 완전히 완전히 다름 다름<br />
다름<br />
– 바이러스코드는 바이러스코드는 동일함<br />
– KPA(Known Plaintext Attack)이 가능함<br />
가능함<br />
진단은 진단은 진단은 어떻게 어떻게? 어떻게<br />
– 현재 현재 소개된 소개된 소개된 방법 방법<br />
방법<br />
Heuristic Method<br />
Emulation Method<br />
X-Ray Technique<br />
© 황규범.<br />
Information and Communications University<br />
89<br />
Win95/Fono<br />
91<br />
ICE1212 - Malicious Code<br />
ICE1212 - Malicious Code<br />
분석도구(1 분석도구<br />
(13) 3)<br />
© 황규범.<br />
Information and Communications University<br />
다형성 바이러스(2) 바이러스 (2)<br />
부트 부트 부트 바이러스<br />
바이러스<br />
– 디코더 디코더 코드의 코드의 일부와 암호키를 암호키를 암호키를 변경시킴 변경시킴<br />
170 170E:0100 170 170E:0100<br />
E:0100 FA CLI<br />
170E:0101 170E:0101 33C0 33C0 XOR XOR AX,AX<br />
AX,AX<br />
170E:0103 170E:0103 8ED0 8ED0 MOV MOV MOV SS,AX<br />
SS,AX<br />
170E:0105 170E:0105 BC007C BC007C MOV MOV SP,7C00<br />
SP,7C00<br />
170E:0108 170E:0108 B7B8 B7B8 MOV MOV MOV BH,B8<br />
BH,B8<br />
170E:010A 170E:010A BE187C BE187C MOV MOV SI,7C18<br />
SI,7C18<br />
170E:010D 170E:010D 36 36 SS:<br />
SS:<br />
170E:010E 170E:010E 303C 303C XOR XOR [SI],BH<br />
[SI],BH<br />
170E:0110 170E:0110 170E:0110 81EEFFFF 81EEFFFF SUB SUB SI,FFFF<br />
SI,FFFF<br />
170E:0114 170E:0114 FEC7 FEC7 INC INC INC BH<br />
BH<br />
170E:0116 170E:0116 75F5 75F5 JNZ JNZ 010D<br />
010D<br />
170E:0118 170E:0118 43 43 INC INC BX<br />
BX<br />
170E:0119 170E:0119 74A8 74A8 JZ JZ 00C3<br />
00C3<br />
170E:011B 170E:011B 96 96 XCHG XCHG SI,AX<br />
SI,AX<br />
170E:011C 170E:011C B5BD B5BD MOV MOV CH,BD<br />
CH,BD<br />
170E:011E 170E:011E 0F 0F DB DB 0F<br />
0F<br />
170E:011F 170E:011F 170E:011F B91321 B91321 MOV MOV CX,2113<br />
CX,2113<br />
© 황규범.<br />
Information and Communications University<br />
1byte byte byte XOR<br />
XOR<br />
복호루틴 복호루틴(계속<br />
복호루틴 계속 변함 변함)<br />
변함<br />
90<br />
92
ICE1212 - Malicious Code<br />
다형성 바이러스(3) 바이러스 (3)<br />
도스용 도스용 파일 파일 바이러스<br />
바이러스<br />
– 디코더 디코더 디코더 코드의 코드의 코드의 일부와 일부와 일부와 암호키를 암호키를 암호키를 변경시킴 변경시킴<br />
변경시킴<br />
Connie.II<br />
ICE1212 - Malicious Code<br />
© 황규범.<br />
Information and Communications University<br />
다형성 바이러스(5) 바이러스 (5)<br />
© 황규범.<br />
Information and Communications University<br />
93<br />
95<br />
ICE1212 - Malicious Code<br />
ICE1212 - Malicious Code<br />
다형성 바이러스(4) 바이러스 (4)<br />
Connie.II<br />
© 황규범.<br />
Information and Communications University<br />
다형성 바이러스(6) 바이러스 (6)<br />
© 황규범.<br />
Information and Communications University<br />
FCL<br />
94<br />
96
ICE1212 - Malicious Code<br />
ICE1212 - Malicious Code<br />
다형성 바이러스(7) 바이러스 (7)<br />
© 황규범.<br />
Information and Communications University<br />
다형성 바이러스(9) 바이러스 (9)<br />
다형성 다형성 매크로 매크로 바이러스<br />
바이러스<br />
© 황규범.<br />
Information and Communications University<br />
FCL<br />
97<br />
99<br />
ICE1212 - Malicious Code<br />
다형성 바이러스(8) 바이러스 (8)<br />
다형성 다형성 다형성 매크로 매크로 바이러스<br />
바이러스<br />
ICE1212 - Malicious Code<br />
© 황규범.<br />
Information and Communications University<br />
다형성 바이러스<br />
스크립트 스크립트 바이러스<br />
바이러스<br />
바이러스(10) (10)<br />
© 황규범.<br />
Information and Communications University<br />
98<br />
100
ICE1212 - Malicious Code<br />
ICE1212 - Malicious Code<br />
다형성 바이러스<br />
바이러스(11) (11)<br />
© 황규범.<br />
Information and Communications University<br />
다형성 바이러스<br />
바이러스(13) (13)<br />
© 황규범.<br />
Information and Communications University<br />
Win95/Fono<br />
101<br />
Win95/Fono<br />
103<br />
ICE1212 - Malicious Code<br />
ICE1212 - Malicious Code<br />
다형성 바이러스<br />
바이러스(12) (12)<br />
© 황규범.<br />
Information and Communications University<br />
다형성 바이러스<br />
다형성 다형성 바이러스 진단 진단 기술<br />
기술<br />
– 코드 코드 비교 및 계산법<br />
바이러스(14) (14)<br />
바이러스가 바이러스가 가지는 가지는 가지는 코드의 코드의 특징을 특징을 특징을 이용함 이용함<br />
KPA를 이용하여 이용하여 암호키 암호키 및암호 암호 방법을 추출함 추출함<br />
추출함<br />
디코딩후 디코딩후 문자열 문자열 문자열 검사를 검사를 이용할 이용할 이용할 수있음 있음<br />
– OPCODE의 니모닉을 니모닉을 이용한 이용한 코드 코드 조합<br />
© 황규범.<br />
Information and Communications University<br />
Win95/Fono<br />
레지스터와 레지스터와 일부 일부 제한된 코드 코드 변형이 일어나는 일어나는 일어나는 다형성 다형성 적용<br />
적용<br />
많은수의 많은수의 다형성 다형성 바이러스가 적용될 적용될 적용될 수있음 있음<br />
OPCODE만을 만을 가지고 바이러스 여부 여부 진단<br />
진단<br />
– 코드 코드 조합법<br />
바이러스가 바이러스가 바이러스가 가지는 가지는 코드 조합 조합 특성을 찾아 찾아 이를 이를 검출<br />
102<br />
104
미발견 악성코드 대응<br />
AV대응기술 대응기술<br />
– 휴리스틱 휴리스틱 휴리스틱 기술 기술 – 시만텍<br />
시만텍<br />
ICE1212 - Malicious Code<br />
© 황규범.<br />
Information and Communications University<br />
대응(1) (1)<br />
기발견 기발견 패턴을 데이터베이스화하여 데이터베이스화하여 비교후 비교후 기능 기능 판별 - 정적<br />
정적<br />
명령어 명령어 일부를 실행하여 실행하여 실행하여 결과를 결과를 추출함 추출함 추출함 - 동적<br />
동적<br />
– 에뮬레이션 에뮬레이션 기술 기술 – 기타 기타 백신회사<br />
백신회사<br />
동적휴리스틱과 동적휴리스틱과 유사하며 유사하며, 유사하며 CPU 와 OS를 에뮬레이션 에뮬레이션 에뮬레이션 함<br />
사용 사용API의 사용 함수 함수 목록을 추출하며 추출하며 추출하며 악성코드 악성코드 유무 유무 판별<br />
– 무결성 무결성 검증 – 일부 일부 샘플 수집용<br />
수집용<br />
메일서버등에서 메일서버등에서 첨부 첨부 파일이 파일이 파일이 동일하게 동일하게 여러 여러 번 수신되는 경우 경우 이<br />
를 검증하여 관리자에게 관리자에게 통보하고 통보하고 블러킹<br />
블러킹<br />
※ 백신에 사용되기 위해서는 위해서는 오진 오진 오진 문제가 고려되어야 고려되어야 함 – 적용 적용 어려움<br />
미발견 악성코드 대응<br />
기술연구가 기술연구가 어려운 어려운 이유<br />
– 웜이나 웜이나 바이러스가 고급언어로 고급언어로 작성됨<br />
작성됨<br />
ICE1212 - Malicious Code<br />
어셈블리와 어셈블리와 달리 달리 각종 함수 함수 구조가 복잡함<br />
© 황규범.<br />
Information and Communications University<br />
대응(3) (3)<br />
필연적으로 필연적으로 코드의 코드의 크기가 커 에뮬레이션 에뮬레이션 시간이 시간이 많으듦<br />
검사시 검사시 시스템 시스템 성능 성능 저하 요인으로 요인으로 작용함<br />
작용함<br />
– 에뮬레이션의 에뮬레이션의 어려움<br />
어려움<br />
IA32 명령어와 명령어와 OS를 에뮬레이션 에뮬레이션 해야 해야 함(방대함 방대함 방대함) 방대함<br />
– 보통 보통 선택적으로 에뮬레이션을 시도함<br />
악성코드 악성코드 제작자에 제작자에 의해 의해 의해 에뮬레이션 에뮬레이션 기법이 기법이 크랙당함<br />
크랙당함<br />
일반적으로 일반적으로 시스템내에는 시스템내에는 악성코드가 악성코드가 아닌경우가 아닌경우가 일반적임<br />
일반적임<br />
105<br />
107<br />
미발견 악성코드 대응<br />
분석 분석(테스팅<br />
분석 테스팅 테스팅) 테스팅 환경<br />
환경<br />
– 모니터링 모니터링 툴<br />
ICE1212 - Malicious Code<br />
© 황규범.<br />
Information and Communications University<br />
대응(2) (2)<br />
각종 각종 이벤트 이벤트(행위<br />
이벤트<br />
행위 행위)를 행위 모니터링 모니터링 하기 하기 위한 툴이용 이용<br />
각툴의 툴의 로그 로그 기록을 기준으로 악성 악성 여부 판별<br />
판별<br />
파일모니터 파일모니터, 파일모니터 네트워크모니터<br />
네트워크모니터, 네트워크모니터 레지스트리모니터등이<br />
레지스트리모니터등이 레지스트리모니터등이 필요함 필요함<br />
필요함<br />
웜의 웜의 경우 분석 분석 및대응 대응 방법도 방법도 추출할 추출할 수있음 있음<br />
– 에뮬레이션 에뮬레이션 에뮬레이션 기술<br />
기술<br />
ICE1212 - Malicious Code<br />
고성능 고성능 컴퓨터를 이용하여 이용하여 각 코드를 모두 모두 에뮬레이션하여 에뮬레이션하여 암호<br />
암호<br />
및 다형성 여부 여부 및치료 치료 방법 방법 판별<br />
실험샘플을 실험샘플을 통하여 통하여 치료 방법 방법 및진단 진단 방법을 방법을 추출할 수있음 있음<br />
미발견 악성코드 대응<br />
기술연구가 기술연구가 어려운 어려운 이유<br />
– 연구 연구 비용에 대해 대해 효과가 적음<br />
적음<br />
© 황규범.<br />
Information and Communications University<br />
대응(4) (4)<br />
신종 신종 악성코드의 경우 경우 미발견 미발견 악성코드 대응 기술에 기술에 감지되지 감지되지 않<br />
음<br />
– 악성코드 악성코드 제작자가 백신 진단 여부를 테스트하여 제작함<br />
시스템 시스템 리소스를 리소스를 많이 많이 요구함으로 요구함으로 실용성이 실용성이 떨어짐 떨어짐<br />
떨어짐<br />
지속적인 지속적인 관리와 관리와 관리와 업그레이드를 해야 해야 함<br />
시간과 시간과 시간과 비용 비용, 비용 그리고 그리고 그리고 결과에 결과에 대한 대한 타협이 타협이 필요함<br />
필요함<br />
다형성 다형성 및 암호화 암호화 바이러스 대응시 대응시 에뮬레이션만으로 대응하기<br />
대응하기<br />
힘듦 힘듦 힘듦 -> 규모가큰 규모가큰 규모가큰 루프 루프 루프 및 스택에 코드 코드 적재 적재 적재 기법등을 기법등을 이용함<br />
이용함<br />
106<br />
108