IT/시스템 보안

[Malware: Malicious Software] Type, History, Detection, Trend

kykyky 2024. 6. 11. 11:13

Malware types

 

Virus

: OS 등 host에서 target file (일반적으로 실행파일)을 찾아 자기 자신의 복사본을 삽입하여 전파하는 코드 조각

 

* virus의 주요 위치:
- Boot sector -> 다른 어떤것보다도 먼저 control 능력을 가짐 
- Memory resident
- Applications, macros, data, etc.
- Library routines
- Compilers, debuggers, virus checker, etc.

 

* 독립적으로 실행될 순 없고, host 프로그램이 이것을 실행하게 해야 실행됨

* target file이 실행되면 virus도 실행되기 시작

 

* 오염된 file이 machine에서 machine으로 이동할 때에만 퍼짐 


Worm

: 어떤 trigger도 없이 remote host로 복제될 수 있는 자동적이고 active한 코드


* 복제되긴 하나 감염시키진 않음

 

* 자동으로 전파되기에 virus보다 빨리 퍼짐


* 전파속도가 빠르고, 전파하는 데에 사용자와의 상호작용이 필요 없음 -> 주요 위협이 됨 


Trojan horse

: 숨겨진 기능을 통해 목적 달성 

 

* 현대의 형태: 게임과 같이 사용자가 이끌릴만한 프로그램의 형태임

 

* 목적: 일반적으로 virus나 worm 전파, backdoor 설치, 데이터 파괴, 권한 탈취


Zombie/botnet

: 손상된 machine (= bot)들이 botmaster의 IRC를 통한 control을 받고 있는 네트워크이며, worm, Trojan horse, backdoor 등을 실행 중임

 

* 소프트웨어를 exploit하여, 네트워크 연결된 다른 컴퓨터를 몰래 탈취한 뒤, 이들을 botnet에 포함시킴

 

* bot들은 감염 사실을 모름 

 

* 이들을 이용해 DDoS, phishing, spamming, cracking 등의 공격을 수행 

 

Rootkit

: admin의 눈을 피하면서 특정 컴퓨터에 대한 지속적인 권한 접근을 가능케 하는 소프트웨어 

 

* admin의 시점에서 자신의 정보를 숨기는 것이 중요

 

* 종류

- User-level rootkit 

방식: utility(ps, ls, ifconfig 등)나 주요 라이브러리를 교체

탐지: tripwire 등으로 탐지 가능 

 

- Kernel-level rootkit

방식: 주요 kernel 함수를 교체하거나 hook 

수단:

loadable kernel modules: 실행 중인 kernel이나 base kernel을 확장하는 코드를 포함하는 object file

direct kernel memory access: 특정 HW의 subsystem이 CPU로부터 독립하여 main memory에 접근할 수 있는 것 

탐지: kernel data structure를 열거해 얻은 정보와 API interface를 통해 얻은 정보를 비교 

방어: kernel-driver signing 

 

Spyware

: 사용자의 활동 정보를 몰래 수집함

 

* 예시: keylogger, screen scrapers, browsing habit

 

Ransomware

: 필수적인 시스템 또는 디스플레이를 멈추거나, 파일을 암호화해버린 뒤 돈 요구 

 

* cryptoviruses, cryptotrojans, cryptoworms라 불리기도

 

History of Malware

§ Brain virus (1986)
§ Morris worm (1988)
§ Melissa (1999)
§ Code Red (2001)
§ SQL Slammer (2004)
§ Stuxnet (2010)

 

Malware Detection

 

Signature detection

: signature는 exe 내의 bit string이며, 특정 바이러스에서는 특정 signature가 나타나는 경우가 있다.

 

- 가장 잘 알려진 방식이지만, unknown virus까지는 팀지할 수 없다는 단점이 있음 

 

Change detection

 :감염이 의심되는 file의 hash값을 얻어놓은 뒤, 주기적으로 다시 hash값을 계산해보고 원래의 hash값과 비교해본다.

만약 값이 달라졌다면 file은 감염됐을 가능성이 있는 것이다.

 

- 단점: false positive가 높으며, 탐지한다 해도 결국 Signature detection이 필요할지도 모름   

 

Anomaly detection

 : 왠지 음흉해보이는 모든 것들을 모니터링.

 

Recent Trends of Malware

 

Encrypted, polymorphic, metamorphic malware

encrypted

: 암호화에 의해 더이상 공통된 signature를 갖지 않아서 signature detection을 피할 수 있음 

 

polymorphic

: worm의 body가 암호화되어 있고, decryptor signature를 숨기기 위해 decryptor code가 변형되어있음.

-> 코드의 일부만이 변경된 것

 

Metamorphic

: 새 시스템을 감염시키기 전에 소스코드 수준에서 스스로 변형하여, 여전히 같은 기능을 갖지만 signature는 다르게 됨으로써, signature based detection 등을 피할수 있음

-> 완전히 코드가 rewrite된 것임   

 

Warhol worms

: seed worm은 취약한 IP 주소 집합이 담긴 initial hit list를 가지고 있으며, 이들이 물리적으로 가능한 선에서 최대한 빠르게 퍼짐으로써, 전체 인터넷 상의 모든 취약한 machine을 15분 이내에 감염시키는 worm   

 

Flash worms

: worm의 전파 과정에서 오래 걸리는 단계는 '취약한 IP 주소의 탐색'임.

따라서 모오든 취약한 IP 주소를 미리 결정해두고, 이 주소들을 worm 내에 embed해놓은 뒤 (그래서 크기가 매우 커지지만, 복제되면서 세포분열처럼 크기 1/2배, 개수 2배 됨) 감염시킴으로써, 15초 안에 전체 인터넷 감염이 가능해져 대응이 매우 어려워짐

 

Botnet