콘텐츠로 이동

FLOSS - 악성코드의 난독화된 문자열 추출 치트시트

FLOSS - 악성코드의 난독화된 문자열 추출 치트시트

FLOSS (Mandiant의 FLARE Obfuscated String Solver)는 악성코드에서 난독화된 문자열을 자동으로 추출합니다. 작성자는 URL, 레지스트리 키, 명령을 일상적으로 숨기므로 고전적인 strings 유틸리티는 유용한 것을 찾지 못합니다. FLOSS는 더 나아갑니다. 바이너리 내부의 디코딩 루틴을 식별하고 에뮬레이트한 후 평문을 복구합니다. 정적 추출이 놓칠 수 있는 스택 문자열, 타이트 문자열, 디코드된 문자열을 표면화합니다. 이는 모든 Windows 악성코드 샘플의 첫 번째 심사 도구입니다.

격리된 VM/샌드박스에서만 악성코드를 분석하세요. FLOSS는 샘플의 코드를 에뮬레이트합니다.

설치

방법명령
독립 실행형 바이너리GitHub Releases에서 다운로드 (Windows/Linux/macOS)
pippip install flare-floss
확인floss --version

기본 사용법

명령설명
floss malware.exe모든 문자열 유형 추출
floss -j malware.exeJSON 출력
floss --no static malware.exe일반 정적 문자열 건너뛰기
floss -n 6 malware.exe최소 문자열 길이 6
floss --help전체 옵션 목록

FLOSS가 복구하는 문자열 유형

유형무엇인지
정적일반 문자열 (strings가 찾는 것)
스택런타임에 스택에서 한 문자씩 구축됨
타이트타이트 루프에서 구축, 메모리에 한 번도 완전히 존재하지 않음
디코드됨디코딩 루틴 (XOR, RC4, 커스텀)에서 생성됨

마지막 세 가지가 가치 추가입니다. strings가 발견하지 못합니다. 파일에 연속된 바이트로 존재한 적이 없기 때문입니다.

분석 유형 선택

플래그효과
--only static평문 문자열만 (빠름)
--only stack스택 문자열만
--only tight타이트 문자열만
--only decoded에뮬레이트/디코드된 문자열만
--no decoded에뮬레이션 단계 건너뛰기 (느림)
# 빠른 심사: 에뮬레이션 건너뛰기
floss --no decoded sample.exe

# 심층 전달: 모든 것, JSON으로 도구화
floss -j sample.exe > strings.json

심사 신호를 Grep 처리

패턴제안
URL / IPC2 인프라
HKLM\, HKCU\레지스트리를 통한 지속성
cmd.exe, powershell명령 실행
CreateRemoteThread, VirtualAlloc프로세스 인젝션
Base64 블롭임베드된 페이로드
.onion, 지갑 주소랜섬웨어/유출
floss sample.exe | grep -iE "http|\.exe|HKLM|powershell|AppData"

출력 및 통합

옵션목적
-j / --json파이프라인용 기계 가독 출력
-v / -vv상세 / 디버그
--functions 0x401000특정 함수에 에뮬레이션 집중
IDA/Ghidra 스크립트복구된 문자열을 디스어셈블리에 다시 주석 처리

FLOSS 출력을 Ghidra에 댓글로 다시 피드하면 후속 수동 분석이 훨씬 빨라집니다.

일반적인 워크플로우

# 표준 악성코드 심사 시퀀스
floss -j sample.exe > floss.json          # 문자열 복구
jq -r '.strings.decoded[].string' floss.json | sort -u   # 디코드된 것에 집중
# → 흥미로운 문자열을 생성한 함수의 Ghidra/x64dbg로 피벗

# 변형 비교: 샘플 간 어떤 문자열이 변경되었습니까?
floss --no decoded a.exe > a.txt; floss --no decoded b.exe > b.txt
diff a.txt b.txt

FLOSS vs 관련 도구

도구복구
FLOSS정적 + 스택 + 타이트 + 디코드됨 (에뮬레이션)
strings연속된 인쇄 가능한 바이트만
capa기능/동작, 문자열 아님
Detect It Easy패커/컴파일러 식별

표준 심사 트리오: Detect It Easy로 패킹 식별, FLOSS로 문자열 복구, capa로 기능 열거.

리소스