inflearn logo
강의

Course

Instructor

Digital Forensic Specialist Level 2 Practical Exam Preparation Course for Beginners (EnCase/Autopsy)

[Common] Level 2 25th Exam Review 5

파일 EOI 관련 질문

34

seol117967466

4 asked

0

안녕하세요, 좋은 강의 항상 감사합니다.

다름이 아니라 강의를 듣다가 궁금한 점이 생겨서 문의 드립니다.

시그니처 EOI의 경우( zip파일의 경우 50 4B 05 06) 파일의 맨 마지막이 아니라 '마지막 근처'에만 위치해도 괜찮은 걸까요 ?

25회 시험 리뷰 5의 27:04 부분을 보면 50 4B 05 06 이후에도 데이터들이 좀 남아있어서 여쭤봅니다. 그리고 그렇다면 파일의 시작 시그니처 같은 경우도 꼭 파일의 맨 처음 부분이 아니라 '처음의 근처'여도 괜찮을 건지 헷갈려서 질문 드려봅니다.

감사합니다.

Forensic

Answer 2

0

nstyxn

안녕하세요 ys_lab님!
우선 용어 정리먼저 해드릴게요.

1. 헤더 시그니처와 푸터 시그니처
특정 포맷의 파일임을 나타내는 '시그니처'가 파일의 시작과 끝에 있는것으로 각각 헤더 시그니처와 푸터 시그니처로 부릅니다. 이를 다르게 부르는 표현이 아래에서 보는 SOF와 EOF, SOI와 EOI가 있는데, 헤더/푸터 시그니처가 더 포괄적인 상위 개념이고, 그 아래 하부개념으로 파일의 형태에 따라 EOF 나 EOI등으로 부릅니다.

2. SOF(Start Of File =BOF)와 EOF(End Of File)
파일의 시작부분과 끝에서 볼수 있는 시그니처로 위에서 말한 헤더시그니처와 푸터 시그니처와
동일한 의미입니다.
일반적으로 이미지가 아닌 파일의 헤더 시그니처는 BOF(Beginning Of File)로 더 많이 부르는데
이는 JPG의 구조에 SOF(Start OF Frame) 라는 구조가 있어서 혼돈을 피하기 위해서 그렇습니다.

3. SOI(Start Of Image)와 EOI(End Of Image)
이미지 파일에서 사용되며, JPG를 예로 들면 JPG 파일은 FF D8로 시작해서 FF D9로 끝이난다
고 볼수 있죠?

우선 용어 정리먼저 해드렸습니다.

그렇다면 우리가 아는 이러한 헤더 / 푸터 시그니처는 파일의 시작과 끝을 알려준다고 알고 있는데,
기본적으로 헤더시그니처(예: FF D8)로 시작해서, 푸터시그니처(예 : FF D9)로 파일이 끝나는게 기본이고, 그 뒤에 다른 데이터가 있다면 그 데이터는 FF D9로 끝난 JPG 파일이 아닌 다른 파일로 보는게 맞긴합니다.

그런데 이러한 기본만으로는 이해가 안되는 상황들이 조금 있습니다.
(이부분은 조금 더 들어가는 부분이어서 일부러 설명을 안했거든요. 더 복잡해질수가 있어서)

1. Zip파일의 구조를 가진 파일들
- 예시로 들어주신 .zip 파일의 경우에는 이 EOF라는 개념이 살짝 다릅니다.
(.zip 파일의 구조를 갖는 .pptx, .docx, .xlsx, .hwpx도 동일합니다)
.zip 파일의 구조를 보면 파일의 마지막 끝부분에 EOCD(End Of Central Directroy)라는 블록이 존재하게 되는데, 이 곳에는 압축파일안에 들어있는(압축되어진) 파일들의 정보를 담는 공간이 있습니다.
이걸 EOCD라고 부르고, 일종의 목록 같은거라 생각해주세요. 마치 MBR 파티션 테이블에서 각각의 파티션의 기본적인 정보를 16바이트에 담고 있고, 누군가 접근을 할때 해당 파티션의 정보를 보고 알려주는 역할을 하듯이 .zip 에서는 압축되어진 파일의 정보를 EOCD에 담아두고 누가 물어보면 이걸 보고 우선 확인하는 목차같은 역할을 합니다.

이 EOCD는 .zip 파일의 마지막에 존재하게 되고 제가 그동안 파일의 끝이다(=푸터 시그니처=EOF)라고만 간단히 설명드린 50 4b 05 06 이, 사실은 파일의 끝이 아니라 파일의 끝에 있는 EOCD의 시작부분입니다.

 

image.png

위 스샷이 말씀하신 25회시험 리뷰 다섯번째 영상의 해당 부분의 스샷입니다.

보시면 50 4B 05 06 이후에 18바이트가 추가가 되어있죠 ?

50 4b 05 06 까지 포함하면 총 22바이트인데, 이 부분이 EOCD입니다.

이렇게 EOCD는 최소 22바이트 이상(시그니처(50 4b 05 06) 4바이트 + 메타데이터 18바이트)로 구성이 되는데, 위의 예시파일에서는 최소인 22바이트로 구성이 되어있는것을 알수 있습니다.

그래서 정확히 얘기하자면 50 4b 05 06 의 시그니처 이후 18바이트를 모두 포함을 해야합니다.
(만약 저상태에서 50 4b 05 06까지만 잘라내서 새로운 파일로 저장을 하면 에러가 나겠죠)

그래서 질문주신 내용에 대한 답변을 드리면, 위 스샷에서 EOF 로 알고 있던 50 4b 05 06이후 데이터는 필요없는게 아니고 필요한 데이터이며, 마찬가지로 헤더 시그니처 역시 처음이 아니라 앞에 다른 데이터가 조금 있어도 되는 그런건 아닙니다.

정확히 파일의 헤더와 푸터 시그니처로 시작되고 마무리가 되어야합니다!

 

2.JPG 파일의 FF D9 뒤에 데이터가 추가로 있는 경우

image.png

위 스샷은 실습시나리오 5번에서 다뤘던 증거인 photo.zip 이라는 파일입니다.

이 파일은 이미지 5개를 photo.zip으로 압축한뒤 jpg 파일을 추가로 은닉시킨(스테가노그래피) 파일인데, 상단의 50 4b 05 06 ~ 2D 01 00 00(총 22바이트)의 압축파일이 끝나는 EOCD를 볼수 있습니다. 정확히 그곳까지가 이 .zip 파일인데, 그 뒤에 FF D8로 시작되는 jpg의 헤더 시그니처가 보이시죠? 우리가 그동안 이해한대로라면 50 4B 05 06뒤에 바로 FF D8이 와야할것 같은데, 정확히는 EOCD 22바이트가 있고, 그게 끝나자 마자 바로 새로운 JPG가 시작하는 경우입니다.

이 부분은 이제 이해가 되실거예요.

그런데 저 파일에서 FF D8로 시작하는 은닉한 JPG 파일이 하나 있는데, 이 파일의 끝을 보면 또 이해가 안되는 부분이 있어요.

image.png

.zip 파일의 경우 EOCD가 최소 22바이트이니 이해가 되는데, JPG의 경우는 무조건 FF D8로 시작해서 FF D9로 끝나야하는데 추가로 데이터가 있으니 혼란스럽죠.

위의 경우에는 FF D9로 끝나는게 맞습니다. 그런데, 뒤의 데이터 문자열을 보면 뭔가 사진의 정보처럼 보이는 느낌이 들죠?
Image_UTC Data1775036378071 = 사진 촬영 시간
Camera_Scene_info2 , Color Display_P3, Photo_HDR_Info

사진의 추가정보를 담은 부분으로 보이는데 이러한 부분은 원래 없어야하는 부분이 맞습니다.

이 부분은 SEF로 불리는 메타데이터인데, SEF는 Samsung Extension Format의 약자로
삼성 스마트폰으로 촬영한 사진의 경우 사진 촬영시 여러 정보(심도, 듀얼 카메라 픽셀정보, 모션포토)등의 정보를 기록한 부분입니다. 갤럭시로 촬영시 모션포토라고 해서 한장의 사진이지만 gif처럼 보이는 사진모드들도 있고, 여러 모드가 있는데 그런 추가적인 정보를 담아야하는데 기존 jpg 구조상 담기가 조금 애매해서 삼성에서 추가로 붙인 내용이라 생각하시면 좋을것 같습니다.

이런 추가 데이터를 붙이는 방법은 스마트폰 제조사마다 약간 차이가 있는데,
삼성의 경우 기존 jpg 구조를 건드리지 않기 위해서 밖으로 빼서 저장했고,
애플의 경우는 기존 jpg 구조 안에 집어넣는(FF D8 과 FF D9 안에) 형태와 별도의 포맷으로 따로 만든 경우 등 차이가 있습니다.

참고로 위에서 보여드린 갤럭시로 촬영한 사진 파일에서 FF D9 이후 데이터를 삭제해도 사진 자체는 동일하게 정상적으로 보입니다. 말그대로 추가 데이터이다보니까요.

 

이런 부분들은 파일의 구조를 이해하는것에도 어려움을 더하겠지만, 무엇보다 스테가노그래피 분석시에 정말 어렵게 만드는 부분이긴합니다.

우리가 공부하는 디포 입문 수준보다는 조금 더 깊은 부분이다보니, 오히려 혼란이 더 커질수가 있어서 설명을 안드렸고 이 부분은 지금은 그냥 보고 넘어가시는 걸 권장합니다.

다만 실제 시험에서 스테가노그래피 분석을 할경우,
우리가 알고 있는 헤더/푸터 시그니처만 생각해서 그 부분만을 추출해서 새로운 파일로 저장하시면 큰 문제 없이 해결이 되므로 우선은 관련 부분을 찾고, 잘라내서 새로운 파일로 만들어저장해서 확인해주시고 위의 내용은 참고로만 봐주세요~

 

 

 

 

 

 

 

 

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다. ys_ lab님!

파일의 시그니처와 관련된 개념에 대한 질문을 주셨군요. EOI(End of File Indicator) 시그니처는 파일이 끝나는 지점을 나타내는 것이 일반적입니다. 하지만, 모든 파일이 EOI 시그니처 뒤에 추가적인 데이터가 완전히 없다고 보장할 수는 없습니다. 특히, 압축 파일의 경우에는 EOI 시그니처가 파일의 마지막 부분에 위치하게 되지만, 추가적인 메타데이터나 패딩(padding)이 포함될 수 있습니다.

Zip 파일의 경우, EOI 시그니처(50 4B 05 06)는 일반적으로 파일의 끝부분에 위치합니다. 하지만, EOI 이후에 데이터가 있을 경우, 이는 잘못된 것이 아니라 일부 경우 허용되는 범위 내의 데이터일 수 있다는 것을 알아두면 도움이 됩니다. 이는 파일 구조에 따라 다를 수 있습니다. 파일의 시작 시그니처(SOI)는 대개 파일의 시작에서도 ‘근처’에 위치할 수 있지만, 비정상적인 경우라면 파일이 변조되었을 가능성도 있습니다.

일반적인 검토에서, 시그니처가 예상 위치에 있지 않으면 데이터의 무결성을 의심하고 추가적인 조사가 필요할 수도 있습니다. 포렌식 분석에서는 모든 가능한 증거를 고려하여 분석을 진행하는 것이 최우선이므로, 데이터 구조가 의심될 때는 더 깊은 분석이나 여러 툴을 사용하여 확인하는 것이 좋습니다.

다음은 유사한 질문들이 포함된 기존의 답변들을 참고해보시면 도움이 될 수 있습니다:

  1. 시험 답안 작성시 디테일 문의!!
    • 비슷한 검증 과정을 통해 파일 무결정을 어떻게 확인할 수 있는지 예시를 들어 설명합니다.
  2. 압축파일의 무결성 점검 방법
    • 파일 시그니처와 관련된 다양한 시나리오에서 압축 파일의 무결성을 점검하는 방법에 대해 설명합니다.
  3. 파일 구조 및 시그니처 분석
    • 파일의 구조적 무결성을 유지하기 위한 시그니처 분석법에 대해 설명하고 있습니다.

질문하신 포렌식 분석과 관련하여 EOI와 SOI의 위치 및 데이터 구조를 확인하는 것은 실습과 경험이 요구됩니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.

현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

이미징 관련 기초적인 질문입니다..

0

19

1

특강 관련 문의

0

43

1

59강 실습 파일 문의

0

92

4

현장 강의나 스터디 운영 요청드립니다.

0

86

1

백업 파일 관련

0

71

2

GPT의 Protective MBR 관련하여 여쭤봅니다!

0

82

1

섹션 8. 디지털포렌식툴 - autopsy 사용법 듣고 있습니다

0

170

2

이미징 방법(기초)

0

164

3

보고서 작성 관련 질문 드립니다.

0

115

2

Autopsy관련 질문입니다.

0

105

2

시험 관련 질문

0

117

2

24회 시험 chatgpt의 설치 삭제 시간 관련 질문 있습니다

0

170

4

IP에 대해서 궁금한 점이 있습니다.

0

102

2

Encase 만 사용해서 실기시험 볼 수 있을까요 ?

0

135

2

향로 챌린지 참여 특별미션으로 질문 남기게 됐습니다.

0

73

1

박총괄이 보낸 메일 발신일자 관련해서

0

86

3

쓰기방지실습

1

146

2

24회 2급

0

237

1

안녕하세요 AutoPsy 교재 p265쯤 오류가 있는거 같아 질의드립니다

0

122

1

시험중 Encase process 기능 문제

0

201

2

연락방법

0

209

3

스테가노그래피 확인 관련 문의드립니다.

0

142

2

보고서 정리

0

184

2

파티션 복구 관련 질문

0

136

3