FlareVM 디지털 포식 도구 환경 탐색

FlareVM 개요

FlareVM(Forensics, Logic Analysis, and Reverse Engineering)은 FireEye 산하 FLARE 팀에서 개발한 전문 도구 모음으로, 악성코드 분석가, 디지털 포렝스 전문가, 사고 대응팀, 역공학 전문가를 위한 통합 환경을 제공한다. Windows 기반의 이 가상 머신은 복잡한 악성코드 샘플을 안전하게 분석하고 디지털 증거를 수집하는 데 필요한 도구들이 사전 구성되어 있다.

실험 환경 구성

TryHackMe 실습 환경에서 FlareVM 인스턴스를 활성화하려면 실습 페이지의 Start Machine 버튼을 클릭한다. 원격 데스크톱 연결 시 다음 정보를 사용한다:

  • 계정명: Administrator
  • 암호: letmein123!
  • IP 주소: MACHINE_IP

분석에 사용할 샘플 파일들은 C:\Users\Administrator\Desktop\Sample 경로에 위치하며, 해당 환경은 인터넷과 차단되어 있어 악성코드가 외부로 유출되는 위험을 방지한다.

도구 분류 체계

역공학 및 디버깅 도구

도구명용도
GhidraNSA에서 개발한 오픈소스 역공학 플랫폼, 바이너리 분석 및 디컴파일
x64dbgx86/x64 아키텍처용 오픈소스 디버거
OllyDbg어셈블리 수준의 동적 분석을 위한 레거시 디버거
Radare2콘솔 기반의 확장 가능한 역공학 프레임워크
Binary Ninja중간 표현(IR)을 활용한 현대적 바이너리 분석 도구
PEiD실행 파일의 패킹 여부, 컴파일러 종류 식별

디스어셈블리 및 디컴파일

도구명용도
CFF ExplorerPE 파일 구조 분석 및 헤더 수정, 해시값 생성
Hopper다중 플랫폼 지원 디스어셈블러 및 디컴파일러
RetDec머신 코드를 고수준 언어로 복원하는 오픈소스 디컴파일러

정적/동적 분석 도구

도구명용도
Process Hacker프로세스 메모리 조작 및 실시간 모니터링
PEviewPE 파일의 섹션, 임포트 테이블 등 구조 시각화
Dependency Walker모듈 의존성 트리 분석
DIE (Detect It Easy)패커, 프로텍터, 컴파일러 자동 식별

포렝스 및 사고 대응

도구명용도
Volatility메모리 덤프의 아티팩트 추출 및 프로파일링
Rekall메모리 포렝스 분석 프레임워크
FTK Imager디스크 이미지 생성 및 비트 단위 복사

네트워크 분석

도구명용도
Wireshark패킷 캡처 및 프로토콜 디코딩
Nmap네트워크 탐색 및 취약점 스캐닝
NetcatTCP/UDP 연결 테스트 및 데이터 전송

파일 분석 및 기타

도구명용도
FileInsight바이너리 파일의 원시 데이터 뷰 및 편집
Hex Fiend대용량 파일 처리에 최적화된 16진수 편집기
HxD디스크, 메모리, 파일의 바이트 단위 조작
Python자동화 스크립트 및 분석 파이프라인 구축
PowerShell Empire포스트 익스플로테이션 프레임워크

Sysinternals 유틸리티

도구명용도
Autoruns시작 프로그램, 서비스, 드라이버 등 자동 실행 항목 나열
Process Explorer프로세스 계층 구조, 핸들, DLL 정보 제공
Process Monitor파일 시스템, 레지스트리, 프로세스/스레드 활성 실시간 로깅

핵심 조사 도구 상세 분석

Process Monitor (Procmon)

Procmon은 Windows 커널의 이벤트를 실시간으로 가로채어 필터링할 수 있는 강력한 모니터링 도구다. 악성코드 분석 시 다음과 같은 이벤트를 집중적으로 살펴본다:

  • 파일 시스템: 비정상적인 경로에 대한 쓰기 작업(예: %APPDATA%, %TEMP%)
  • 레지스트리: 런처 영구화를 위한 Run 키, Winlogon 항목 수정
  • 프로세스/스레드: 의심스러운 프로세스 생성 및 DLL 주입

LSASS(lsass.exe) 프로세스에 대한 접근이 기록되는 경우, 이는 자격 증명 덤핑 공격(예: Mimikatz 활용)의 신호일 수 있다. 정상적인 lsasrv.dll 접근과 달리, 비정상적인 프로세스가 lsass.exe 메모리를 읽거나 쓰려는 시도는 추가 조사가 필요하다.

Process Explorer (Procexp)

Process Explorer는 실행 중인 프로세스의 상하위 관계를 시각적으로 파악할 수 있게 한다. 특히 문서 파일(Word, PDF), LNK, ISO 등에서 파생된 프로세스를 추적할 때 유용하다.

예를 들어, CFF Explorer 애플리케이션 실행 시 해당 프로세스와 그 부모 프로세스를 식별할 수 있다. 이는 공격자가 악성 문서를 통해 추가 프로세스를 생성하는 경우 탐지에 결정적 역할을 한다.

HxD

HxD는 파일, 메모리, 스토리지 미디어를 16진수 뷰로 검사할 수 있는 도구다. 파일의 매직 넘버(Magic Number)를 통해 실제 파일 형식을 식별하는 데 활용된다.

예시: possible_medusa.txt 파일을 HxD로 열면 4D 5A(리틀 엔디안)로 시작함을 확인할 수 있다. 이는 해당 파일이 실제로는 PE 실행 파일임을 시사하며, 공격자가 확장자를 위조하여 탐지를 회피하려 했음을 의미한다.

데이터 검사기(Data Inspector) 기능을 통해 특정 바이트를 다양한 데이터 유형(정수, 부동소수점, 시간 등)으로 해석하여 구조를 파악할 수 있다.

CFF Explorer

CFF Explorer는 PE 파일의 메타데이터를 포괄적으로 보여주는 도구로, 다음과 같은 정보를 추출할 수 있다:

  • 파일 해시(MD5, SHA-1, SHA-256)를 통한 무결성 검증
  • 타임스탬프, 아키텍처, 서브시스템 등 파일 특성
  • DOS 헤더, NT 헤더, 섹션 테이블 등 구조 분석

cryptominer.bin 파일 분석 시 생성 시각(2024년 9월 23일), 64비트 PE 형식, 각종 해시값 등을 확인할 수 있으며, 이를 VirusTotal 등 외부 데이터베이스와 대조하여 알려진 악성코드 여부를 판단할 수 있다.

Wireshark

네트워크 트래픽 분석을 통해 C2(Command and Control) 통신, 데이터 유출, 비정상 프로토콜 사용 등을 탐지한다. TLS 1.2 이상의 암호화된 통신이 주를 이루는 현대 환경에서는 SNI(Server Name Indication), 인증서 정보, JA3指紋 등을 통해 악성 여부를 판단한다.

캡처된 패킷의 프로토콜 열, 출발지/목적지 IP, 포트 번호, 페이로드 크기 등을 종합적으로 분석하여 이상 징후를 식별한다.

PEStudio

PEStudio는 실행하지 않고 PE 파일의 특성을 정적으로 분석하는 도구다. 다음 요소들을 검토한다:

  • 엔트로피(Entropy): 값이 7.0 이상이면 패킹/암호화 가능성이 높음
  • 임포트 주소 테이블(IAT): 사용되는 Windows API 함수 목록
  • 버전 정보: 위조된 정품 프로그램 위장 여부
  • 매니페스트: 요청된 실행 권한 수준

PsExec.exe 분석 예시: 엔트로피 6.596(낮음~중간), Visual C++ 8로 컴파일, 원격 실행 기능. 시스템 관리자 도구이나 공격자가 lateral movement에 악용할 수 있는 dual-use 특성을 지님.

FLOSS (FLARE Obfuscated String Solver)

FLOSS는 악성코드 내부의 난독화된 문자열을 자동으로 복원하는 도구다. 단순한 strings.exe보다 강력한 정적 분석 기술을 적용한다.

PS C:\Users\Administrator\Desktop\Sample> floss .\cobaltstrike.exe

출력 결과는 다음 범주로 구분된다:

  • 정적 문자열(Static strings): 파일 내에 직접 포함된 문자열
  • 스택 문자열(Stack strings): 런타임에 스택에 구성된 문자열
  • 타이트 문자열(Tight strings): 루프 내에서 생성된 문자열
  • 디코딩 문자열(Decoded strings): 난독화 해제 후 복원된 문자열

추출된 문자열에서 파일 경로, URL, IP 주소, API 호출, 레지스트리 키, 오류 메시지, 암호화 키 등을 식별할 수 있다. 디코딩 문자열이 0개인 경우, 해당 샘플이 동적 생성 문자열을 사용하지 않거나 FLOSS의 분석 범위를 벗어난 난독화 기법을 사용했음을 의미할 수 있다.

실습 시나리오: windows.exe 분석

1단계: PEStudio 정적 분석

windows.exe를 PEStudio로 열어 초기 정보를 수집한다:

  • MD5: 9FDD4767DE5AEC8E577C1916ECC3E1D6
  • SHA-1: A1BC55A7931BFCD24651357829C460FD3DC4828F
  • 설명: Windows 레지스트리 편집기(REGEDIT)로 위장

의심스러운 점:

  1. 정품 REGEDIT는 C:\Windows\System32에 위치하나, 해당 파일은 다운로드 폴더에 존재
  2. 메타데이터에 러시아어("Редактор реестра") 포함—조직의 지역 설정과 불일치 시 위험 신호
  3. Rich Header 누락—패킹/난독화 처리로 PE 구조 변조 가능성
  4. 엔트로피 값 7.999—매우 높은 난독화/암호화 가능성

블랙리스트 API 함수:

  • set_UseShellExecute: 쉘을 통한 외부 프로세스 실행
  • CryptoStream, RijndaelManaged, CipherMode, CreateDecryptor: AES 대칭 암호화 활용

2단계: FLOSS 문자열 추출

PS C:\Users\Administrator\Desktop\Sample> FLOSS.exe .\windows.exe > windows.txt

주의: .NET 바이너리에 대한 언어별 문자열 추출은 현재 미지원. 결과 파일 하단에서 PEStudio에서 확인한 함수명들을 재확인할 수 있다.

3단계: 동적 분석—Process Explorer 및 Procmon

cobaltstrike.exe 실행 후 네트워크 연결 여부 확인:

  1. Process Explorer에서 프로세스 ID 확인(예: 4756)
  2. 속성 대화상자 → TCP/IP 탭에서 원격 연결 정보 확인
  3. Procmon에서 필터 설정: Process Name contains cobalt

확인 결과: 47.120.46.210로의 아웃바운드 연결 확인. 이는 Cobalt Strike 프레임워크의 기본 C2 서버 통신 패턴과 일치한다.

핵심 개념 정리

용어설명
Imphash임포트 테이블의 구조적 특성을 해시화한 값, 유사 샘플 군집화에 활용
Rich HeaderVisual Studio 컴파일러가 삽입하는 메타데이터, 누락 시 패킹/변조 의심
매직 넘버파일 형식 식별을 위한 시그니처(예: PE 파일은 4D 5A)
엔트로피데이터 무작위성 지표, 7.0 이상 시 암호화/압축/패킹 가능성
IATImport Address Table, 실행 시 필요한 외부 함수 참조 목록

태그: FlareVM TryHackMe 악성코드분석 디지털포렝스 역공학

7월 25일 11:52에 게시됨