1. 악성코드 분석 방법

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


1.1 정적 분석 (Static Analysis)

실행하지 않고, 파일 자체를 분석하여 악성 코드의 동작을 예측하는 분석 방법이다.

파일 헤더 정보, 코드 내 포함된 문자열, 불러오는 라이브러리 및 함수와 API, 디지털 서명이나 패킹 여부 등을 확인한다.

파일을 실행하지 않고 분석하기에, 동적 분석보다 비교적 안전하게 분석 가능하다는 장점이 있다. 그러나 난독화/암호화/패킹된 악성코드는 분석이 어렵단 점과, 분석 시간이 오래 걸리고, 난도가 높다는 단점이 존재한다.

대표적인 분석 도구로는 아래와 같다.

도구명용도/특징
Exeinfo PE, PEiD패킹 여부, 파일 타입 확인
PEview, CFF ExplorerPE 구조 상세 분석
BinText, Strings코드 내 숨은 문자열 추출
IDA Pro, Ghidra, x64dbg코드 리버스 엔지니어링, 디버깅

1.2 동적 분석 (Dynamic Analysis)

분석 환경(가상 머신)에서 파일을 실제로 실행해 그 동작을 관찰하는 분석 방법이다. 실제 악성 코드가 수행하는 행위가 미치는 영향이나 피해에 대해 확인한다.

시스템 프로세스 및 서비스 변화, 파일 및 레지스트리 변조, 네트워크 통신(C2 서버 접속, 데이터 유출 등) 등을 살펴본다.

동적 분석의 장점은 실제 파일의 행위를 눈으로 확인할 수 있으며, 난독화/암호화/패킹된 악성코드도 분석이 가능하다. 단점으로는 파일을 실행하여 분석하기에 시스템 감염 위혐이 있어 반드시 격리된 가상 머신에서 분석을 진행해야 한다. 또한 악성 코드 자체에 탐지 회피나, 분석 우회 기능이 포함된 경우는 분석이 어려워질 수 있다.

대표적인 분석 도구로는 아래와 같다.

도구명용도/특징
Process Monitor (Procmon)파일/레지스트리/프로세스 동작 모니터링
Process Explorer (Procexp)프로세스 구조, 부모-자식 관계 분석
Autoruns자동 실행 프로그램/서비스 확인
Cports, smsniff네트워크 연결 모니터링
Wireshark패킷 캡처 및 네트워크 트래픽 분석

정적 분석이든 동적 분석이든 반드시 격리된 가상 머신 환경에서 분석을 진행하도록 하자.



2. 분석 도구

악성 코드로 의심되는 파일을 분석할 때는 반드시 격리된 가상 머신 환경에서 진행하여야 한다. (VMware 등)


2.1 정적 분석 도구

(1) Exeinfo PE

  • PE 파일 구조 분석, 패킹 여부 확인
  • 파일이 패킹(암호화)돼있는지, 일반 EXE인지 확인할 때 사용

(2) PEiD

  • PE 파일 구조 분석, 패킹 및 프로텍터 여부 확인
  • 파일이 패킹(암호화)돼있는지, 일반 EXE인지 확인할 때 사용

(3) Detect It Easy (DIE)

  • 파일 유형을 판별하는 프로그램

(4) Bintext

  • 파일 내부의 ASCII/UNICODE 문자열 추출
  • 악성코드에 숨겨진 C2 주소, 계정, 명령어, 메시지 등 추출할 때 사용

(5) String

  • 파일 내부의 ASCII/UNICODE 문자열 추출
  • 악성코드에 숨겨진 C2 주소, 계정, 명령어, 메시지 등 추출할 때 사용

(6) PEview

  • PE 파일(Windows 실행 파일) 내부의 섹션, 임포트 함수, 헤더 등 상세 정보 확인
  • 어떤 DLL을 사용하는지, 섹션에 이상한(추가) 데이터가 있는지 등에 사용한다.

2.2 동적 분석 도구

(1) Process Explorer (Procexp)

  • 프로세스 트리/상세 정보, DLL/핸들 정보 확인
  • 부모-자식 프로세스 구조 확인 및 이상한 프로세스 탐지

(2) Process Monitor (Procmon)

  • 파일, 레지스트리, 프로세스, 네트워크 모든 행위 모니터링
  • 필터링 기능으로 파일 생성/삭제, 레지스트리 변조, 이상 동작 추적할 때 사용

(3) Autoruns

  • 시스템 부팅, 로그인, 서비스 등 자동 실행 항목 전체 확인
  • 감염 후 자동 재실행 레지스트리/서비스 추가 확인

(4) Cports

  • 현재 열려있는 네트워크 포트, 연결 현황 실시간 확인
  • C2(명령제어) 서버 연결, 외부 접속 감지

(5) Smart Sniff (SmSniff)

  • 현재 열려있는 네트워크 포트, 연결 현황 실시간 확인
  • C2(명령제어) 서버 연결, 외부 접속 감지

(6) Wireshark

  • 네트워크 패킷 캡처 및 상세 분석
  • 악성코드가 주고받는 실제 데이터, C2 명령, 데이터 유출 확인


3. 기타 분석 도구

(1) x64dbg

  • 어셈블리 코드 분석, 동적 디버깅, 리버스 엔지니어링
  • 정적 분석으로는 알기 어려운 행위(암호화, 우회코드, API 호출) 추적할 때 사용한다.

참조 & 출처

profile
안녕하세요

0개의 댓글