파일 종류 판별
1. 바이너리 파일 보기
- 파일의 종류를 판단하기 위해서는 파일을 바이너리 상태로 볼 수 있는 툴이 필요
- ex) Frhed 툴(파일의 바이너리를 보고 편집이 가능한 툴)
2. Signature로 파일 종류 구분
- 특정 파일의 종류를 확인하기 위해 Frhed로 파일을 열고, 파일의 시그니처가 무엇인지 확인해서 파일의 종류를 구분할 수 있다.
- PDF파일의 시그니처는 파일 첫 4바이트가 '%PDF'이다.
- JPG파일의 시그니처는 파일의 처음부터 FF D8 FF E0 xx xx 4A 46 49 46 00 값을 가진다.
* Xx는 아무값이나 될 수 있다.
파일 구조 파악
1. PE구조 파일 중 EXE, DLL, SYS파일 구분
- DLL파일은 IMAGE_FILE_HEADER에서 Characteristics를 확인
-> Characteristics항목에 IMAGE_FILE_DLL(0x200) 값
- SYS파일은 IMAGE_OPTIONAL_HEADER의 Subsystem항목 확인
-> 해당항목의 ㄱ밧이 IMAGE_SUBSYSTEM_NATIVE(0x1)
- EXE파일은 DLL과 SYS에 포함되지 않으면서 IMAGE_FILE_HEADER에 Characteristics항목에 IMAGE_FILE_EXECUTABLE_IMAGE(0x2)를 포함
2. PE구조 보기
- PE구조만 가지고 정확한 악성을 판단하기는 어렵다.
- 하지만 섹션 이름, 섹션 헤더를 보고 악성으로 의심되는 부분을 찾을 수 있다.
* 섹션 이름
* 섹션 헤더
실행압축 확인
- 실행 코드를 알고리즘을 사용해 압축해 놓은 상태
- 파일을 실행하면 코드 내의 알고리즘을 사용해서 해당 파일을 메모리에 풀고 동작을 수행
- 실행압축 프로그램은 다양하게 존재하고 사용으로 판매
- 크랙을 방지하기 위한 목적
- 분석을 방해하기 위한 목적
- 의심파일이 실행압축이 되어 있고 실행압축의 종류가 잘 알려지지 않은 것이라면 악성코드일 확률이 높음
1. PEiD로 실행압축 확인
2. 실행압축 전 후 비교
- 실행압축에 사용할 프로그램은 UPX로 공개용 실행압축 프로그램이고 대상은 노트패드
- 실행압축 후 사이즈 변화
- 파일의 섹션 명의 변화를 볼 수 있고 섹션해더를 살펴보면 섹션 속성의 변화를 볼 수 있음.
문자열 확인
- 프로그램에서 보여주는 에러 메시지 또는 메시지 박스에 나타나는 문자열 등을 가지고 해당 프로그램의 특성을 조금이나마 확인할 수 있다.
- 악성코드의 경우 문자열에 자신이 악성코드라고 적어 놓거나 악성행위에 관한 힌트를 얻을 수 있는 문자열도 존재.
1. BinText 파일 문자열 확인
- BinText 프로그램은 프로그램에 있는 모든 문자를 보여주는 프로그램으로 악성 판단
파일 비교
1. HexCmp 설명
- 2개의 파일을 헥사 상태로 비교(
- 1바이트의 차이가 있어도 빨간색으로 표시
2. 감염파일과 비교
빨간색으로 코드가 추가가 되어있는 것을 확인