╱╱╭╮╱╱╱╱╱╱╭━━━╮╱╱╱╭╮╱╭╮╱╱╱╱╱╱ ╱╱┃┃╱╱╱╱╱╱┃╭━╮┃╱╱╱┃┃╱┃┃╱╱╱╱╱╱ ╱╱┃┣━━┳━━╮┃┃╱┃┣━╮╱┃╰━╯┣━━┳━╮╱ ╭╮┃┃╭╮┃┃━┫┃╰━╯┃╭╮╮┃╭━╮┃╭╮┃╭╮╮ ┃╰╯┃╭╮┃┃━┫┃╭━╮┃┃┃┃┃┃╱┃┃╭╮┃┃┃┃ ╰━━┻╯╰┻━━╯╰╯╱╰┻╯╰╯╰╯╱╰┻╯╰┻╯╰╯

CS/정보 보안

[정보 보안] Malicious Software (6)

재안안 2024. 6. 22. 19:34


[5] Malicious Software

Malware
Programs exploting (이용) system vulnerabilities
known as malicious software or malware

T1 : program fragments that need a host program (viruses, logic bomb, and backdoors)
T2 : independent self-contained programs (worms, bots)
T3 : replicating or not

malware can be classifited into 2 broad categories
1. how it spreads or propagates
2. the actions or payloads it performs once a target is reached

malware 용어
virus : 프로그램에 붙음
worm : 자가 복제를 전파
logic : bomb 
trojan horse : 추가적인 기능을 포함
backdoor : 허가받지 않은 기능에 접근
mobile code
auto-rooter Kit : 바이러스 생산
spammer and flooder programs : 원치 않은 패킷
keylogger : 키 스트로크를 캡쳐
rootkit : 루트 권한 탈취하는 킷
zombie : 다른 컴퓨터를 공격하게됨

다른 용어
payload : actions of the malware
crimeware : kits for building malware
APT : advanced persistent threats

바이러스
piece of software, executes secretly when host program is run

바이러스 단계
dormant : idle (잠복기)
- gets activated absed on a certain action or event

propagation : copies itself to other program (전파단계)
- a piece of code copies itself

triggerring : activated to perform functions
- activated phase 이벤트 발생을 감지 했을 때

execution : the function is performed
- actual work of the virus

바이러스 구조
infection mechanism
trigger 기다리는 이벤트
payload 핸들 이벤트

prepended (.COM) / postpended (.COM, .EXE)/ embedded
프로그램 앞에 붙거나 뒤에 붙거나
executes virus code first then original program code

바이러스 압축 (바이러스 전파 방식)
기존 파일을 압축하고 바이러스 코드를 추가해서 원래의 파일 크기를 맞춘다
감염된 파일이 실행됐을 땐, 압축했던 파일을 압축해제해서 실행시킨다.

바이러스 분류 (how propagate, what is does?)
by target (전염시키는)
- boot sector : record
- file infector : executable OS files
- macro virus : app
- multipartite : multiple ways

by concealment (은폐 방법)
encrypted virus : 암호화
stealth virus : hide itself (압축)
polymorphic virus : 다른 signature로 재창조
metamorphic virus : 다른 signature, behavior로 재창조 (code modification을 통해 body 변경)
oligomorphism : 감염 간 암호화 키 변경

Virus Example
매크로 : 문서에 embedded되어 문서가 열릴때 auto-execut (malicioud payload x)
스크립팅 바이러스
방지가 최선이긴한데 detection, identification, removal을 통해서 대처해야한다

Anti-Virus Evolution (Generations)
1st : signature scanners (bit pattern all the same)
2nd : heuristics (integrity check, checksum)
3rd : identify action (detect actions)
4th : combination packages

Behaivor-Blocking Software (sandbox)
monitored behavior 아래의 작업을 하는지 미리 기미상궁
- open, view, modify, delete file
- format driver
- modifications to logic of executables
- modifications to system settings
- scripting emails to send exec contents

Worms : 자가 복제해서 네트워크를 통해 전파되는 프로그램
4단계 : dormant, propagation, triggering, execution
propgation : other system을 찾고 other system에 연결해서 자가복제후 실행
시스템 프로세스로 위장할 수 있다

exponential rate of infection (slow start, fast spread, slow finnish)

Worm Propagation Model 

1. Simple Epidemic Model

3 states : susceptible, infected (계속 감염 시키는 중), removed (삭제됨)

removed는 조금 나뉜다
removed in epidemic area:
- 바이러스를 찾아서 극복했거나
- 바이러스 때문에 죽었거나
removed in computer area:
- 웜에 면역이 있거나
- shutdown됐거나 웜의 순환체계에서 잘렸거나

Homogeneous Assuption 가정 (Mesh x)
- 모든 호스트는 다른 호스트를 동일한 확률로 접촉한다.
- number of contacts I * S

I(t) = Number of Infectious hosts at time t
S(t) = Number of Susceptible Hosts at time t
N = number of hosts in the system
Beta = pair wise infection rate
Alpha = worm's infection rate

S(t) = N - I(t)
dI(t)/dt = Beta * I(t) * S(t) = Beta * I(t) * (N - I(t))
Alpha = Beta * N

State transition
- I(t) <-> S(t)
- constant infection rate Beta
- no  'removed' state

2. General Epidemic Model (Kermack-McKendrick)
Epidemic threshold theorem
S(0) > p, p * Beta > Y(threshhold)이면 이미 시작됐다

U(t) = number of previously removed ones at time t
gamma = removal rate of infected hosts
p = epidemic threshold

dI(t)/dt = Beta * I(t) * S(t) - gamma * I(t)
dU(t)/dt = gamma * I(t)
N = I(t) + U(t) + S(t)
p = gamma / Beta

R(t) = number of removed hosts from infecticious
dI(t)/dt = Beta * S(t) * I(t) - dR(t)/dt
dR(t)/dt = gamma * I(t)
S(t) + I(t) + R(t) = N

- No outbreak if S(0) < gamma / Beta
- Major outbreak of S(0) > gamma / Beta

Human Countermeasures
- clean and patch
- filter
- disconnect

Extended from Kermack-McKendric Model
Q(t) = removal from susceptible hosts
R(t) = removal from infectious hosts
I(t) = infectious hosts
J(t) = I(t) + R(t) = number of infected hosts

dS(t)/dt = -Beta * S(t) * I(t) - dQ(t)/dt
dR(t)/dt = gamma * I(t)
dQ(t)/dt = delta * S(t) * J(t)
S(t) + I(t) + R(t) + Q(t) = N

- Beta is still costant

Two-factor worm model
Beta도 함수로 만드는 거

요즘날의 Worm
multiplatform
multi-exploit : web servers, emails, file sharing
ultrafast spreading : do a scan to find vulnerable host
polymorphic : each copy has a new code
metamorphic : change appearance/behavior

Warm Countermeasure
anti-virus 기술과 비슷하다
- signature-based worm scan filtering
- filter-based worm containment (focus on conents)
- payload-classification-based worm containment
- threshold random walk scan detection
- rate limiting and rate halting

Proactive Worm Containment
1. PWC agent monitors outgoing traffic for increased activity
2. When an agent notices high traffic, it informs the PWC manager; mgr propagates to other hosts
3. Hosts receive alert and decide if to ignore (based on time of last incoming pkt)
4. Relaxation period (based on threshold)