악성코드 분석 개요
악성코드(Malware) 분석은 의심 파일의 동작 원리와 목적을 파악하는 과정입니다. 크게 정적 분석과 동적 분석으로 구분하며, 정보보안기사 시험에는 각 분석 방법의 특징과 대표 도구가 출제됩니다.
정적 분석 (Static Analysis)
파일을 실행하지 않고 코드와 구조를 분석하는 방법입니다.
주요 기법
- 파일 해시 확인: MD5/SHA-256 해시를 VirusTotal에 조회하여 기존 악성코드 여부 확인
- 문자열 추출: strings 명령으로 바이너리에서 URL, IP, 함수명 등 추출
- PE 헤더 분석: Import Table에서 어떤 API를 호출하는지 확인 (예: CreateRemoteThread = 코드 인젝션 의심)
- 디컴파일: IDA Pro, Ghidra로 어셈블리 코드 분석
정적 분석 회피 기법
- 패킹(Packing): UPX, Themida 등으로 코드를 압축·암호화하여 분석 방해
- 난독화(Obfuscation): 코드를 읽기 어렵게 변환
- 암호화: 핵심 페이로드를 암호화하여 숨김
동적 분석 (Dynamic Analysis)
악성코드를 실제로 실행하면서 행동을 관찰합니다. 반드시 격리된 환경(샌드박스)에서 수행해야 합니다.
주요 모니터링 항목
- 프로세스 생성: Process Monitor, Process Explorer로 새 프로세스 생성 확인
- 레지스트리 변경: 자동 실행 등록, 시스템 설정 변경
- 파일 시스템 변경: 파일 생성·삭제·수정 모니터링
- 네트워크 통신: C2 서버 접속, 데이터 외부 전송 포착
샌드박스 솔루션
- Cuckoo Sandbox: 오픈소스 자동화 악성코드 분석 플랫폼
- ANY.RUN: 클라우드 기반 인터랙티브 샌드박스
- Joe Sandbox: 상용 정적·동적 통합 분석 플랫폼
악성코드 유형별 특징
- 랜섬웨어: 파일 암호화 후 복호화 키 대가로 금전 요구. 대량 파일 암호화 API 호출이 특징
- RAT(Remote Access Trojan): 원격 제어 목적. C2 서버와 지속 통신
- 루트킷(Rootkit): 커널 레벨에서 자신을 숨기고 지속성 유지
- 키로거: SetWindowsHookEx API로 키 입력 캡처
- 웜(Worm): 자기 복제로 네트워크 전파, 취약점 자동 공격
시험 핵심 포인트
- 정적 분석 대표 도구: IDA Pro, Ghidra, PEview, strings
- 동적 분석 대표 도구: Process Monitor, Wireshark, Cuckoo
- 패킹 확인: PEiD, Detect-It-Easy로 패커 종류 식별
- 동적 분석은 반드시 격리된 가상머신에서 수행
- IoC(Indicators of Compromise): 악성코드 흔적 지표 (해시, IP, 도메인, 레지스트리 키)
마무리
악성코드 분석은 정보보안기사 실기에서도 출제 비중이 높습니다. 정적·동적 분석의 차이와 각 도구의 용도를 명확히 구분하여 암기하세요.