악성코드 분석이란?

김윤성·2026년 4월 11일

악성코드 분석

목록 보기
1/10

이 글은 악성코드 분석 시리즈의 첫 번째 글입니다.
분석 방법의 종류와 각 단계에서 사용하는 도구를 정리했습니다.


🦠 악성코드란?

악성코드(Malware)란 사용자의 동의 없이 시스템에 침투해 피해를 주는 모든 프로그램을 말한다.

종류는 다양하지만, 자주 등장하는 것만 간단히 정리하면 이렇다.

종류설명
바이러스다른 파일에 붙어서 전파되는 악성코드
스스로 복제하며 네트워크로 퍼지는 악성코드
트로이목마정상 프로그램처럼 위장해서 악성 행위를 하는 악성코드
랜섬웨어파일을 암호화하고 금전을 요구하는 악성코드
스파이웨어사용자 정보를 몰래 수집하는 악성코드

악성코드의 더 자세한 내용은 다음 글에서 작성하였다

https://velog.io/@kys980819/악성코드

https://velog.io/@kys980819/악성코드-사례


🎯 악성코드 분석으로 뭘 할 수 있나?

악성코드 분석을 통해 크게 두 가지를 할 수 있다.

1. 파일이 어떤 행동을 하는지 파악한다
실행 시 어떤 프로세스가 생기는지, 어디에 파일을 만드는지, 어떤 서버에 연결하는지 같은 행동을 확인할 수 있다.

2. IOC를 추출할 수 있다
IOC(Indicator of Compromise)란 악성코드가 남기는 흔적을 말한다. IP 주소, 도메인, 파일 해시값 같은 것들이 여기에 해당한다. 이 흔적을 모아두면 같은 악성코드가 다시 나타났을 때 탐지하는 데 활용할 수 있다.

나는 이 IOC를 활용해서 Snort 탐지 룰을 작성하는 것을 목표로 분석을 시작했다.

💡 Snort란 네트워크에서 수상한 트래픽을 탐지하는 오픈소스 침입 탐지 시스템(IDS)이다. Snort에 대한 자세한 내용은 별도 시리즈에서 다룰 예정이다.


🔬 분석 종류 및 사용 도구

악성코드 분석은 보통 아래 순서로 진행된다.

자동화 분석 → 기초 분석 → 정적 분석 → 동적 분석

빠르고 간단한 것부터 시작해서 점점 깊이 들어가는 흐름이다.
반드시 모든 단계를 거칠 필요는 없고, 상황에 따라 필요한 단계만 진행하기도 한다.


1️⃣ 자동화 분석

파일을 직접 실행하거나 깊이 분석하지 않아도, 온라인 도구에 올리는 것만으로 빠르게 결과를 볼 수 있는 방법이다. 분석의 첫 단계로, 해당 파일이 악성인지 아닌지 빠르게 판단하는 데 활용한다.

📦 사용 도구

  • VirusTotal — 파일이나 URL을 업로드하면 수십 개의 백신 엔진이 동시에 검사해준다

🔍 이 단계에서 집중할 포인트

  • 몇 개의 백신 엔진이 악성으로 탐지했는지
  • 어떤 악성코드 이름으로 탐지됐는지 (이름에 힌트가 담겨 있는 경우가 많다)
  • 이미 알려진 파일인지, 처음 보는 파일인지

⚠️ VirusTotal은 빠른 판단에는 유용하지만, 파일이 구체적으로 어떤 행동을 하는지까지는 알기 어렵다. 어디까지나 첫 번째 확인 용도로 활용하자.


2️⃣ 기초 분석

본격적인 분석 전에 파일의 기본 정보를 확인하는 단계다. 이 단계에서 파일의 성격을 어느 정도 파악할 수 있다.

특히 패킹 여부를 확인하는 게 중요하다.

💡 패킹이란 악성코드를 분석하기 어렵게 만들기 위해 파일을 압축하거나 암호화해 놓은 것을 말한다. 패킹이 되어 있으면 내부를 바로 볼 수 없기 때문에, 이후 분석 방향이 달라질 수 있다.

📦 사용 도구

  • ExeInfo PE — 파일 형식 및 패킹 여부 확인
  • DiE (Detect It Easy) — 패킹 여부 및 컴파일러 정보 확인

🔍 이 단계에서 집중할 포인트

  • 파일 형식이 실제로 맞는지 (확장자와 실제 형식이 다를 수 있다)
  • 패킹이 되어 있는지 여부
  • 패킹이 되어 있다면 어떤 패커가 사용됐는지

3️⃣ 정적 분석

파일을 실행하지 않고, 파일 내부를 직접 들여다보는 분석 방법이다. 실행 없이 분석하기 때문에 안전하다는 장점이 있다.

파일 안에 포함된 문자열이나 구조를 보면서 어떤 기능을 가지고 있는지 힌트를 얻을 수 있다.

📦 사용 도구

  • PEview — PE 파일의 내부 구조 확인
  • BinText — 파일 안에 포함된 문자열 추출

💡 PE 파일이란 윈도우에서 사용하는 실행 파일 형식(.exe, .dll 등)을 말한다.

🔍 이 단계에서 집중할 포인트

  • 파일 안에 IP 주소, 도메인, URL 같은 문자열이 있는지
  • 어떤 시스템 기능을 사용하는지 (파일 생성, 네트워크 연결 등 힌트가 될 수 있다)
  • 의심스러운 문자열이나 경로가 포함되어 있는지

4️⃣ 동적 분석

파일을 실제로 실행하면서 어떤 행동을 하는지 관찰하는 분석 방법이다. 직접 실행하기 때문에 가장 많은 정보를 얻을 수 있다.

단, 실제로 실행하는 만큼 반드시 가상 환경(VM) 안에서만 진행해야 한다.

📦 사용 도구

도구용도
Process Explorer현재 실행 중인 프로세스 목록과 상태 확인
Process Monitor프로세스, 파일, 레지스트리, 네트워크 이벤트 로그를 실시간으로 전부 확인
System Explorer스냅샷 기능으로 실행 전후의 파일 및 레지스트리 변화 비교
Autoruns시스템 시작 시 자동으로 실행되는 항목 확인
CPort현재 열려 있는 네트워크 포트 및 연결 상태 확인
SmartSniff네트워크 패킷을 캡처해서 통신 내용 확인
Wireshark네트워크 트래픽을 상세하게 캡처하고 분석

🔍 이 단계에서 집중할 포인트

  • 실행 후 새로운 프로세스가 생성됐는지
  • 파일이나 레지스트리에 변화가 생겼는지 (특히 시작 프로그램 등록 여부)
  • 외부 IP나 도메인으로 통신을 시도하는지
  • 어떤 포트를 사용해서 통신하는지 (Snort 룰 작성에 직접 활용 가능한 정보)

📝 마무리

분석 흐름을 다시 한번 정리하면 이렇다.

단계핵심 목적
자동화 분석악성 여부 빠르게 확인
기초 분석파일 기본 정보 및 패킹 확인
정적 분석실행 없이 내부 구조와 문자열 확인
동적 분석실행하면서 실제 행동 관찰

각 단계가 독립적으로 보이지만, 앞 단계에서 얻은 정보가 다음 단계의 방향을 잡아주는 식으로 자연스럽게 연결된다.

profile
꾸준한 IT 공부

0개의 댓글