IT 그리고 정보보안/Knowledge base

악성코드의 종류

plummmm 2021. 4. 16. 06:42
반응형

악성코드에 어떠한 종류들이 있는지 한번 알아보자.

일단 크게크게 나누면 아래 그림과 같이 됩니당.

 

 

기생할 호스트가 필요한 악성코드와 독립적으로 동작하는 악성코드, 이렇게 크게 2분류로 나눌 수 있다.

사실 이렇게 악성코드의 종류를 구분하기 보다는 각 악성코드들의 개념을 익히는게 바람직하지만.

뭘 하든 기본 분류는 하고 넘어가야 하기에.. 요즘은 하도 악성코드 기술이 고도화 되어.. 이렇게 분류하는게 의미가 없다.

 

그럼 하나하나씩 알아보자.

 

1. Virus (바이러스)

프로그램에 내부에 심어지는 악성코드, 독립적으로 동작할 수 없다.

프로그램 감염, 자기 복제가 특징이다. 통상 4가지 단계를 거쳐 악의적인 활동이 전개된다.

* Dormant phase (휴면 단계) - 바이러스가 놀고 있다.

* Propagation phase (증식 단계) - 다른 프로그램에 복제를 한다.

* Triggering phase (작동 단계) - 바이러스의 의도된 기능이 동작된다.

* Execution phase (실행 단계) - 기능이 수행된다.

 

바이러스에도 여러가지 종류가 있다.(하..의미없다)

 

- Compression Virus (압축 바이러스)

보통 바이러스에 감염되는 프로그램은 사이즈가 증가하게 되는데, 원본 파일을 압축하고

악성코드를 덧붙여 원본과 사이즈 차이가 없도록 하여 사용자의 눈을 속이는 바이러스

 

 

일반적인 사이즈 체크로는 압축 바이러스를 탐지하기가 힘들다.

 

- Parasitic Virus (기생형 바이러스)

실행가능한 파일에 들러붙어서 기생하는 바이러스이다.

호스트 프로그램이 실행될 때 바이러스도 같이 실행된다.

 

- Memory-resident Virus (메모리 상주 바이러스)

OS가 사용하고 남은 잔여 메모리에 상주하는 바이러스이다.

 

- Boot Sector Virus (부트섹터 바이러스)

디스크의 부트섹터를 감염시키고 os가 부팅될 때 퍼지는 바이러스이다.

DOS 공격시에 사용된 원초적인 바이러스이다.

 

- Stealth Virus (스텔스 바이러스)

안티바이러스에 걸리지 않도록 구현된 바이러스

 

- Polymorphic Virus (다형성 바이러스)

새로운 호스트에 기생할 때마다 돌연변이를 일으켜 시그니쳐 탐지를 막는 바이러스

 

- Macro Virus (메크로 바이러스)

파일을 실행할 때 일련의 반복된 작업을 수행하는 바이러스다.

메크로 언어로 기록된 바이러스다.  즉, 워드 프로세서 같은 응용 s/w안에 심어져 있다.

플랫폼 독립적이고 파일이 실행될 때 또는 일련의 작업이 수행될 때 동작한다.

 

 

2. Worm (웜)

바이러스와 다르게 독자적으로 실행되어 복제하는 악성코드이다.

어디 기생할 필요가 없이 지 혼자 전염시킬 수 있다. 

컴퓨터의 취약점을 찾아 네트워크를 통한 경로로 감염된다.

 

옛날에 어릴때 pc 포맷하고 OS 재설치 할 때 랜선을 꼽아둔 채로 포맷하면

시스템을 Shutdown 시키는 웜 바이러스에 걸려서 고생을 했던 기억이 문득 난다.

후에 알았지만 이건 Blast Worm 이었다는거.ㅎㅎ

 

 

3. Logic Bomb (논리 폭탄?)

이건 나도 처음 보는 건데. 뭐 딱히 어려운 개념은 아니다.

프로그램에 주입되어 특정 이벤트가 일어나거나 혹은 특정 날짜에 도달하였을 때까지 잠복했다가

이벤트 발생 시 실행되는 악성코드이다. 

 

 

4. Key-logger (키로거)

다들 아는 키로거이다. 사용자의 키 입력을 로깅하여 정보를 빼내는 악성코드이다.

주로 루트킷이나 트로이 목마에 포함된 경우가 많다.

 

 

5. Trojan (트로이 목마)

자기 스스로 복제능력은 없지만 다른 프로그램에 기생하여 악의적은 행동을 감추는 악성코드이다.

자기 복제능력이 없으므로 퍼지지는 않지만 트로이 목마 자체가 심각한 문제를 일으킬 수 있다.

원격제어, 데이터 유출, 백신 끄기, 시스템 파일 삭제 등

 

대표적으로 AOL4FREE.COM, Shark2, Pinch,  백오리피스, 넷버스 등이 있다.

백오리피스, 넷버스는 많이 들어봐서 알 수도 있고.. (윈도우 98 원격제어 가능)

 

AOL4FREE.COM 과 Shark2, Pinch 는 좀 생소한데..

AOL4FREE.COM 얘는 해당 프로그램을 실행하면 c드라이브의 모든 파일이 삭제될 가능성이 있다.

뭐 shark2와 pinch 또한 비슷하게 트로이목마를 프로그램에 심는 공개해킹 도구이다.

 

 

6. Backdoor (= Trapdoor)

백도어는 말그대로 뒷문이다. 정상적인 인증 과정을 우회하여 인증하지 않고 원격 접속을 할 수 있도록 뒷문을 열어두는 것을 말한다.

프로그램의 형태로 존재하기도 하고 기존의 프로그램/하드웨어의 변형일 수도 있다.

 

 

7. Rootkit (루트킷)

루트킷은 루트권한을 획득한 공격자가 심은 프로그램을 시스템 상에서 숨기는 목적으로 이용되는 악성코드이다.

루트킷은 포괄적인 개념의 크래킹. 사용자 모르게 침투하여 백도어를 심고, 로그를 삭제하는 작업을 하며

사용자 모르게 침투 그리고 쉽게 탐지되지 않는다는 것이 큰 특징이다.

커널, 부트로더, 펌웨어 등 다양한 위치에 심을 수 있다

 

그럼 이 루트킷은 어떠한 툴들을 사용하여 만드나? 사실 루트킷 제작은 툴로 하긴 힘들다.

워낙 여러가지 테크닉이 결합이 되므로.. 보통은 직접 만들지. 굳이 따지자면 lrk5 정도가 있다.

 

lrk5는 리눅스의 명령어를 변조시켜 시스템 관리자에게 혼돈을 주는 루트킷 패키지이다.

 

루트킷은 제작 툴보단 안티루트킷 툴이 발달해있지. 아무래도 정체를 숨기는 악성코드를 찾으려면

안티 바이러스 가지곤 역부족일 것이다. 

이렇게 루트킷 탐지 도구를 통칭하여 안티루트킷(Anti Rootkit) 이라고 칭한다.

 

대표적인 안티루트킷 도구에는 Icesword (windows 용)Chkrootkit (linux 용), Rootkit Unhooker 등이 있다.

안티루트킷 도구들이 하는 대표적인 작업은

* 숨김 파일 찾기

* 수정된 레지스트리 찾기

* 프로세스 보호 해제

* 패치된 코드 검색

반응형