인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

yangcm23님의 프로필 이미지
yangcm23

작성한 질문수

디지털포렌식 입문자를 위한 디지털포렌식 전문가 2급 실기 시험대비 강의(Encase/Autopsy)

[공통]법이론 2

해쉬값 변경 관련

작성

·

58

0

안녕하세요. 강사님

23회차 실기 encase 오류(?)에 의해 폭망 후 다시 펜대를 잡고 질문 드립니다.

 

개별파일을 압축할때는 해쉬값이 변화지 않지만, 디렉토리를 통쩨로 해쉬값을 아래와같이 산출하였을때 해쉬값이 변경되어 질문드립니다.

 

반디집을 이용하여 파일이 4개(eml, xlsx,pdf)가 들어있는 한개의 디렉토리를 통째로 반디집으로 압축한 후 해쉬값을 확인하고,

해당 압축파일을 풀고, 동일하게 다시 압축하여 해쉬값을 비교해보니 첫번째 압축했던 파일과 해쉬값과 일치하지 않는걸 확인했습니다.

※ 알집, 윈도우 압축 프로그램을 이용 하여도 동일

압축하기 전 과 후를 비교해보니 디렉토리와, eml파일의 메타데이터 (수정한날짜)만 변경( xlsx,pdf 변경 x)되었지만, 메타데이터가 변경되어도 해쉬값은 변경되지 않는다고 알고있습니다.

위처럼 해쉬값이 불일치 나는이유가 무엇인가요?

 

 

 

답변 2

0

nstyxn님의 프로필 이미지
nstyxn
지식공유자

안녕하세요 yangcm23님!

혹시 말씀하신 압축파일 2개의 용량을 확인해보셨을까요?

해시값이 다르게 나오는 2개의 압축파일의 용량 차이가 있는건 아닌지 확인한번 부탁드릴게요

yangcm23님의 프로필 이미지
yangcm23
질문자

윈도우 압축프로그램을 이용하였을때를 예로 들면

파일크기는 동일합니다.

nstyxn님의 프로필 이미지
nstyxn
지식공유자

대부분의 경우에는 메타데이터의 변경이 해시값에 영향을 미치지 않는다는 말씀은 맞습니다.

다만 100%는 아니고 변경될수도 있는 경우가 있는 것으로 알고 있습니다.

이부분에 대해서 명확하게 답변을 드리기 위해서 보여드릴만한 관련 자료를 검색을 해봤는데 바로 찾기는 어렵네요;

우선 말씀해주신 방법대로 저도 똑같이 테스트를 해봤습니다.
바탕화면에 A라는 폴더를 만들고 그 안에 엑셀, pdf, eml 파일 3개를 넣은 후
1) A폴더자체를 반디집으로 압축
2) 생성된 zip 파일의 hash를 Hashcalc를 이용해서 산출
3) 생성한 zip파일을 압축을 해제
4) 새로 생성된 A-1폴더를 다시 반디집을 이용해서 압축
5) A-1폴더를 압축한 zip파일의 hash를 산출

이렇게 해서 나온 2개의 압축파일의 hash값은 동일한 점을 확인했습니다.

그래서 여기에 약간의 변형을 줘서 테스트를 해봤습니다.
위의 1)~3)까지의 과정 후에
4-1) 새로 생성된 폴더에 들어가서 pdf 파일을 열어보고 바로 닫기
4-2) 새로 생성된 폴더에 들어가서 엑셀 파일을 열어보고 바로 닫기
4-3) 새로 생성된 폴더에 들어가서 엑셀파일의 파일명을 변경

이렇게 각각 접근을 한 후에 해당 폴더를 다시 압축하여 나온 zip파일의 hash값을 산출하니
최초의 zip파일의 hash값과 각각의 변경을 준 3개의 케이스에서 생성된 zip파일의 hash값이 모두 상이했습니다.

이러한 이유는(특히 타임스탬프) 일반적으로 파일시스템의 타임스탬프일경우에는 hash값의 변경이 일어나지 않지만, 그렇지 않고 파일 내부에 저장이 될경우에는 당연히 파일의 변경이 발생했으므로 hash값이 달라진다는 내용을 들은적이 있지만 이부분에 대해서
제대로 설명드릴정도로 깊이 알고 있지 못해서 이 이상으로 말씀드리기는 어려울것 같습니다 ㅜ_ㅜ

이렇게 2개의 파일간의 다른점이 있는지, 변경된 부분이 있는지에 대해서
용량이 다르다면 당연히 바로 알수 있을테지만 용량이 동일한 경우에는 찾기가 어렵죠.
그럴경우 hex값 비교를 통해서 2개의 파일간 다른 부분을 확인할수도 있습니다.
이렇게 확인하실때에는 아래에 소개해드리는 방법을 이용할 수 있습니다.
1) Binary Diff Tool 이용
https://www.guiffy.com/Binary-Diff-Tool.html

2) cmd에서 fc.exe 명령
- cmd(명령 프롬프트)를 연 후,
fc.exe /b [1번파일] [2번파일]

이렇게 해주시면 2개의 파일을 비교해서 차이가 있는 hex offset과 각각의 값을
확인할 수 있어서 어떤 부분이 변경이 됐는지 확인이 가능합니다.

다시 얘기하면, 이렇게 차이가 있다는것은 파일이 변경되었다는 의미이고,
당연히 hash값이 달라질수밖에 없다는 얘기이기도 하고요.

 

조금 더 명확하게 답변을 드려야하는데 죄송합니다 ㅜ_ㅜ

 

0

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

해쉬값 차이와 관련된 질문 감사합니다. 압축 파일의 해쉬값이 달라지는 이유에 대한 포렌식적인 관점에서 설명드리겠습니다.

압축 파일의 해시 값이 달라지는 이유는 여러 가지가 있을 수 있습니다. 주요 요인은 다음과 같습니다:

  1. 압축 속성과 메타데이터: 압축 과정에서의 타임스탬프(수정한 날짜 등)와 같은 메타데이터는 압축 파일의 내용을 변경하지 않더라도 새롭게 기록되거나 갱신되며, 이는 해쉬값에 영향을 미칠 수 있습니다. EML 파일의 메타데이터가 변함으로 인해 압축 파일의 해시 값이 달라질 수 있습니다.

  2. 압축 알고리즘이나 설정 차이: 동일한 프로그램이라 하더라도 압축 방법이나 옵션에 따라 결과가 다를 수 있습니다. 압축률이나 방법의 차이로 인해 결과 파일의 내용이 약간 다르게 나올 수 있습니다.

  3. 파일 시스템 특성: 파일 시스템의 특성에 따라 압축 해제 또는 다시 압축하는 과정에서 파일 속성과 구조가 미세하게 변경되어 해시값이 달라질 수 있습니다.

특히 포렌식 분석에서는 파일 자체의 내용보다도 타임스탬프나 메타데이터 변경을 통해 어떤 작업이 이루어졌는지를 확인하는 과정이 중요하기 때문에 이러한 차이에 유의해야 합니다.

관련된 질문과 해답을 보시려면 아래 링크를 참고하세요:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

yangcm23님의 프로필 이미지
yangcm23

작성한 질문수

질문하기