
악성코드의 대응 방안을 찾기 위해 어떤 행동을 하는지 어떤 피해가 있는지 분석한다. 분석 방법은 크게 정적 분석과 동적 분석으로 나뉜다.

실행하지 않고, 파일 자체를 분석하여 악성 코드의 동작을 예측하는 분석 방법이다.
파일 헤더 정보, 코드 내 포함된 문자열, 불러오는 라이브러리 및 함수와 API, 디지털 서명이나 패킹 여부 등을 확인한다.
파일을 실행하지 않고 분석하기에, 동적 분석보다 비교적 안전하게 분석 가능하다는 장점이 있다. 그러나 난독화/암호화/패킹된 악성코드는 분석이 어렵단 점과, 분석 시간이 오래 걸리고, 난도가 높다는 단점이 존재한다.
대표적인 분석 도구로는 아래와 같다.
| 도구명 | 용도/특징 |
|---|---|
| Exeinfo PE, PEiD | 패킹 여부, 파일 타입 확인 |
| PEview, CFF Explorer | PE 구조 상세 분석 |
| BinText, Strings | 코드 내 숨은 문자열 추출 |
| IDA Pro, Ghidra, x64dbg | 코드 리버스 엔지니어링, 디버깅 |
분석 환경(가상 머신)에서 파일을 실제로 실행해 그 동작을 관찰하는 분석 방법이다. 실제 악성 코드가 수행하는 행위가 미치는 영향이나 피해에 대해 확인한다.
시스템 프로세스 및 서비스 변화, 파일 및 레지스트리 변조, 네트워크 통신(C2 서버 접속, 데이터 유출 등) 등을 살펴본다.
동적 분석의 장점은 실제 파일의 행위를 눈으로 확인할 수 있으며, 난독화/암호화/패킹된 악성코드도 분석이 가능하다. 단점으로는 파일을 실행하여 분석하기에 시스템 감염 위혐이 있어 반드시 격리된 가상 머신에서 분석을 진행해야 한다. 또한 악성 코드 자체에 탐지 회피나, 분석 우회 기능이 포함된 경우는 분석이 어려워질 수 있다.
대표적인 분석 도구로는 아래와 같다.
| 도구명 | 용도/특징 |
|---|---|
| Process Monitor (Procmon) | 파일/레지스트리/프로세스 동작 모니터링 |
| Process Explorer (Procexp) | 프로세스 구조, 부모-자식 관계 분석 |
| Autoruns | 자동 실행 프로그램/서비스 확인 |
| Cports, smsniff | 네트워크 연결 모니터링 |
| Wireshark | 패킷 캡처 및 네트워크 트래픽 분석 |
정적 분석이든 동적 분석이든 반드시 격리된 가상 머신 환경에서 분석을 진행하도록 하자.
악성 코드로 의심되는 파일을 분석할 때는 반드시 격리된 가상 머신 환경에서 진행하여야 한다. (VMware 등)
참조 & 출처