study notes/study_malware-beginner

section3. 악성코드 분석 방법

ran831 2025. 7. 16. 17:23

악성코드 분석 방법

악성코드 분석 실행 흐름은 4가지로 구분됨

고정된 방법은 아니지만 기초적인 분석의 흐름 알기엔 가장 적합한 방법이라고 함

 

● 악성코드 분석의 네 가지 접근 방법

완전 자동화 분석 정적, 동적 분석 통해 악의적 행위를 판단
자동으로 분석을 수행
전문가 분석 만큼 섬세하거나 정확하지 않을 수 있지만 빠르고 쉬운 방법
정적 속성 분석 악성코드 추가 분석을 위해 필요한 단계
신속한 정보 획득이 가능
정보 활용해 실행 파일 간 비교 데이터베이스를 구성
바이러스 토탈 서비스
대화형 동적 분석 분리된 가상 머신 환경에서 실행하며 분석
메모리 분석 통해 다른 행위 추가적 분석 가능
악의적 행위 상세 과정 확인 가능
분석가들의 분석 시간이 많이 소요
수동 코드 역공학 분석 특정 루틴에 난독화가 되어있어 복호화 이뤄지는 부분을 더 분석해 추가적 정보를 획득
악의적인 도메인 이름 생성 과정의 알고리즘 분석
행동 분석 과정에서 드러나지 않았던 부분으로 발생되는 다른 기능을 이해

 

기초 정적 분석

기초 정적 분석

악성코드 연구의 시작 단계로 가장 먼저 진행함

프로그램을 실행시키지 않고 기능을 파악하기 위해 코드나 프로그램의 구조를 분석

 

분석 방법

악성 여부 판단하는 안티바이러스 도구 사용

악성코드 판별 해시 사용

파일의 문자열, 함수, 헤더에서 대략적인 악성코드의 모양을 판별

 

기초 정적 분석 도구

- 악성코드의 지문 확인(WinMD5Free)

: 해시를 이름으로 사용, 악성코드 식별 위해 해시 공유, 식별 여부 위해 해시 검색

 

- 문자열 검색(Strings)

: 프로그램 메시지 출력, URL 접속, 특정 위치로 파일 복사

 

- 패킹 확인(PEid 등)

: 패킹 여부 확인하고 언패킹 해 리버싱을 쉽게

 

- PE 세부 구조 확인

: 패킹 징후를 파악

Size of Raw Data 보다 Virtual Size가 월등히 크다면 다른 파일 올리기 위함으로 의심 가능

섹션의 이름이 변경된 경우에도 의심 가능

 

- DLL 의존성 조사(Dependency Walker)

: peview로도 조사 가능하나 하위 dll에 대한 조사도 함께 진행 가능해 유용함

Kernel32.dll 메모리, 파일, 하드웨어 접근과 조작
Advapi32.dll 서비스 관리자, 레지스트리 같은 추가 윈도우 핵심 컴포넌트
User32.dll 유저 인터페이스
Gdi32.dll 그래픽 보기 및 조작
Ntdll.dll 윈도우 커널 인터페이스
WS2_32.dll 윈도우 소켓 네트워크
Wininet.dll 상위 수준 프로토콜 구현(이것도 네트워크 사용함)

 

- 리소스 확인(Resource Hacker)

: 아이콘, 메뉴, 대화상자 섹션, 문자열 테이블, 버전정보 세션, 바이너리 등

 

기초 동적 분석

 기초 동적 분석

: 프로그램을 직접 실행하며 분석, 악성코드 분석에서 가장 프로그램의 영향 쉽게 파악, 실행 전후 상태 조사 및 분석 가능

 

분석 방법

악성코드 실습 시 발생하는 호스트/네트워크 환경 구성

파일, 프로그램 실행, 레지스트리, 서비스 등 관련 항목 변경 사항 확인

실행 시 발생하는 네트워크 트래픽 분석

 

 기초 동적 분석 도구

- 프로세스 모니터(procmon.exe)

: 특정 레지스트리, 파일 시스템, 네트워크, 프로세스, 스레드 행위 모니터링 하는 고급 도구

[한계] 특정 GUI와 장치 I/O 제어를 통한 루트킷 탐지 불가, 네트워크 행위에 대해 일관성 있는 탐지 불가

 

- 프로세스 익스플로러(procexp.exe)

: 최고의 탐지 도구, 프로세스에 관련된 많은 내용(프로세스 스레드/권한/네트워크/메모리 등)을 확인할 수 있음

 

- RegShot

: 두 레지스트리의 스냅샷을 찍고 비교하는 툴로, 악성코드는 자동실행을 위해 레지스트리를 자주 건드림

 

레지스트리는 간단하게 윈도우의 데이터 베이스로, 윈도우에 대한 대부분의 정보를 담고 있음

 

-  INetSim

: 가짜 서비스 제공하기 위한 최고의 도구로 칼리리눅스에서 별도 설치 없이 실행 가능함

일반적 로깅 및 중앙 집중식 제어 기능 사용해 다양한 인터넷 서비스 시뮬레이션이 가능

알려지지 않은 malware 샘플의 네트워크 동작에 대한 런타임 분석을 수행

실험실 환경에서 멀웨어가 일반적으로 사용하는 인터넷 서비스를 시뮬레이트함

http, https, ftp, irc, dns, smtp 등 서비스 실행

 

- WireShark

: 세계에서 가장 널리 쓰이는 네트워크 분석 프로그램

네트워크상에서 캡처한 데이터에 대한 네트워크/상위 레이어 프로토콜의 정보를 제공

패킷 캡처 위해 pcap 네트워크 라이브러리를 사용

[강점] 쉬운 설치, GUI 인터페이스 이용한 간단한 사용법, 다양한 기능

'study notes > study_malware-beginner' 카테고리의 다른 글

section2. PE파일과 패커  (0) 2025.07.16