악성코드 분석
여러가지 유형의 악성코드
1. 프로젝트 개요
1) 악성코드란?
컴퓨터에 악영향을 끼칠 수 있는 모든 소프트웨어의 총칭
전통적인 분류: 바이러스, 웜, 트로이 목마, 스파이 웨어, 애드웨어
* 최근에는 혼합 형태로 많이 나타난다.
단순히 실행 파일 형식에 국한되지 않고 소프트웨어 취약점과 문서를 이용한다
제로데이와 사회 공학 기법은 전통적인 보호 방식으로 탐지가 매우 어렵다
악성코드는 운영체제 기능을 악용해 악성 행위를 수행
다양한 종류의 악성코드 분석의 경험은 침해사고 발생 시 빠른 대처를 가능하도록 함.
*이걸 듣고 나면 악코분 신입으로 들어가는데 문제 없을 것이다.
2) 유형별 악성코드 분석
유포되는 악성코드의 양은 매년 증가하고 있으며, 새로운 유형의 악성코드도 급증하다가 요새는 안함. 변종이 많지.
3) 악성코드의 다양한 종류
구분 | 종류 | 설명 | 치료 방법 |
악성코드 | Trojan | 사용자의 정보 갈취 | 진단/치료 삭제 |
Backdoor | 백도어를 이용 | 진단/치료 삭제 | |
Worm | 네트워크로 확산 | 진단/치료 삭제 | |
I-Worm | 전자 메일을 이용해서 확산 | 진단/치료 삭제 | |
Win32 | 윈도우 32비트파일 바이러스 | 진단/치료 | |
X97M | 엑셀 매크로 바이러스 | 진단/치료 | |
유해가능프로그램 | Spyware | 사용자 몰래 설치되어 개인정보 수집 | 스파이웨어/애드웨어 제거 툴로 제거 |
Adware | 광고를 목적으로 결재 유도 | ||
Joke | 장난성 프로그램 | ||
Hoax | 사용자 속여 위압감, 불안감 조성 | ||
Dialer | 사용자 확인 없이 인터넷 접속 | ||
Not_a_virus | 악의적인 행위로 사용될 가능성 존재 |
하우리 악성코드 명명법: 종류-상태-이름-크기-변종
3) 악성코드 분석 방법
(1) Fully-automated analysis : 자동화 분석-쿠쿠박스
- 정적 분석 및 동적 분석을 통해 악의적인 행위를 판단
- 자동 분석 수행( 파일 생성 및 수정 과정, 레지스트리, 네트워크)
- 상세하거나 정확하지 않음
(2) Static properties analysis : 정적 동작
- 문자열 헤더 정보, 해시 값, 리소스 정보, 패킹 여부 등 신속하게 얻을 수 있는 정보
- 정보들을 활용해 실행 파일 간의 비교 데이터베이스를 구성
- 바이러스 토탈 서비스
(3) Interactive behavior analysis: 상호작용 동작 분석
- 레지스트리, 파일 시스템, 프로세스, 네트워크 활동을 이해하기 위해 분리된 가상 머신 호나경에서 실행하며 분석
- 메모리 분석을 통해 다른 행위를 추가적으로 분석
- 악의적인 행위의 상세한 과정들을 확인
- 분석가들의 분석 시간이 많이 소요
(4) Manual code reversing: 한 줄 한 줄 분석
- 위 과정이 완료된 후에 추가적인 정보를 획득하기 위해 분석하는 행위
- 이게 필요한 경우
- 특정 루틴에 난독화가 되어서 복호화가 이루어지는 부분을 더 분석해 추가적인 정보를 획득
- 악의적인 도메인 이름 생성 과정의 알고리즘 분석
- 행동 분석 과정에서 자신을 숨겨졌던 부분으로 발생되는 다른 기능 이해
교재: 실전 악성코드와 멀웨어 분석
악성코드 분석 법: 기초 정적 분석->기초 동적 분석-> 고급 정적 분석-> 고급 동적 분석
(5) 기초 정적 분석 도구
- DLL / Strings/ Resource Hacker/PEview/Hash
(6) 기초 동적 분석 도구
- Process explorer/wireshark/process monitor/regshot/sysanalyzer
(7) 고급 정적 분석
- IDA
(8) 고급 동적 분석
- x64debugger, olly debugger
Win XPTE8 설치 필요
이후 강의 순서
노션에 정리하는 게 편할 듯 하다.
2. 워밍업
3. 쿠쿠박스를 활용한 악성코드 분석
4. 스파이웨어, 웜 악성코드
5. DoS, DDoS, DDoS 악성코드
6. 랜섬웨어 악성코드
7. 스크립트 난독화 악성코드
8. 파일리스 악성코드
9. APT 악성코드