본문 바로가기

보안

[포렌식] Windows Artifact 분석

일반 파일 분석

만든시각(Created Time) : 파일이 생성된 시간

수정한시각(Modified Time) : 파일이 수정된 시간

접근시각(Accessed Time) : 파일이 읽혀진 시간

이있는데 실제 어떻게 보이는지 확인해보자.

일반 텍스트파일-마우스우클릭-속성

위와같이 일반파일의 속성을 들어가면 만든날짜 , 수성한 날짜 , 액세스한 날짜 가 보인다.

이제 이 3가지 시간에대해서 약자로 C / M / A 로 부르도록하자.

그렇다면

C 인 만든날짜는 위의 파일을 만들었을때를 기록하는 부분일것이고

M은 수정한날짜 이니 만들고난 후 내용을 바꾸기위해 들어간다면 이 날짜는 게속변화를 할것이다.

A는 액세스 즉 접근을 하는것을 말하는데 이 경우 파일을 열어보기만해도 변화를할것이다.

여기서 우리가 저 파일의 이름을 변경한다면 수정한 날짜가 변화를 할것이라고 생각할수있다.

결론부터 말하면 변화를하지않는데

이를 쉽게 보자면 수많은 책이있고 그 책의 겉 표지만을 뜯어서 따로 모아둔다고 보자.

그리고 겉표지와 책의내용부분은 어떤형태로든 연결이되어있다(표시,선 등)

이 책의 겉표지는 파일의 이름이라고 생각하면되는데 겉표지의 글자를 바꾼다해도 책의 내용이 변화 하는것은아니다. -> 파일의 이름은 파일의 내용을 찾기위해 필요한것이지 이두가지가 하나는 아니라는것이다.

이렇게 겉표지를 따로둔 이 데이터를 Meta data 라고하며 이로인해 파일의 이름을 바꾼다고

수정한날짜 M 은 변화하지않는다.

하지만 다른경우도있다 .

예로는 실행파일(exe등) 이있는데 이 파일 은 아이콘을 가지고있고 , 이파일의 속성을 들어가보면

Meta data 만으로는 알수없는 내용들이 보인다.

이렇게 아이콘 부분 , 또 파일의 버전 등 이러한 부분은 Meta data 가아닌 프로그램안의 리소스부분을 봐야 알수있는것이기에 속성에 들어가는것만으로도 프로그램에 A(액세스)를 한것이다.

그래서 시간은 바뀌어야한다. 그렇지만 이 시간을 윈도우10 이 안바뀌게 해주고있다.

 

(바뀌어야하는데 안바뀌고 안바뀔텐데 바뀌는경우가있다.. 이건 환경마다 조금씩다르다)

파일을 복사할때는 어떻게될까?

파일을 복사하는 행위는 새로운 파일을 생성하는것이니 C(만든시각) 이 변할것이고.

복사하기위해서 파일의 내용을 봐야하니 A(접근시각) 이 변화할것이다.

하지만 파일을 수정하지는않았으니 M(수정시각) 은 변화하지않는다.

이렇게되면 이상한 시각정보를 보여주게되는데

텍스트 파일을 하나 복사해보았다.

만든날짜는 4월24일인데

파일을 수정한 날짜는 3월22일 이라고 적혀있다

시각정보가 꽤나 괴리감 을 느끼게되는데

이러한 정보를 이용해서 이 파일이 복사된 파일이라고 추측해볼수있을것이다!

이러한 괴리감을 느끼게하면서 혼동을 느낄수있는것이 압축되어있다가 해제된 파일이다.

압축을 해제하게되면

C(만든시각) 과 A(접근시각)이 변화를하고M(수정시각)한 시간은 변화하지않는데

M이 변화하지않는이유는 압축을할때 수정시각을 따로 저장을해둔다

이것은 파일을 복사했을때와

똑같은 상황이되어버린다.

그렇다면 어떠한 파일이있을때 이게 위의 사진처럼 시간에 관계가 이상함이있는 파일이라면

복사된 파일인지 압축해제된 파일인지 어떻게 판단할수있을까

windows 에서는 시간을 기록할때 1초씩 기록을 하는것이 아닌

100 나노의 크기만큼의 초를 세는데 즉 1초조차 엄청나게 미세하게 카운터를 올리고있는것이다.

즉 복사한 파일 은

만든시각(Created Time) : 4월 25일 9시 46분 (46초 + 나노 단위의 카운터)

수정한시각(Modified Time) : 3월22일 11시 10분 (08초 + 나노 단위의 카운터)

접근시각(Accessed Time) : 4월25일 9시 46분 (46초 + 나노 단위의 카운터)

를 가지고있는것이다.

그리고 압축파일은 수정한시간을 프로그램이 가지고있다고했으니

프로그램이 시간을 입력하는 함수를 호출할것이다. 함수는 시간을 다룰때 대부분 초단위로 다루고

나노 단위까지는 다루지않는다. 이게 어떻게 표시가되는건지 알아보자.

압축 해제한 파일은

만든시각(Created Time) : 4월 25일 9시 46분 (46초 + 나노 단위의 카운터)

수정한시각(Modified Time) : 3월22일 11시 10분 (08초 + 0)

접근시각(Accessed Time) : 4월25일 9시 46분 (46초 + 나노 단위의 카운터)

이렇게 위와같이 프로그램이 직접 만들어서 저장해놓은 시간을 저장하기때문에 나노단위까지는

저장하지않는다. 그래서 프로그램을 보았을때 나노단위가 0 일경우

높은확률로 압축해제된 파일이라고 추측해볼수있다!

지금까지 처럼 파일을 이동,복사,압축,변경 이러한 행동으로인해 시간들이 변하고

그 시간을 이용해서 추측을할수있는것이다.

파일 생성 - [수정한날짜], [만든날짜], [접근날짜] 모두 일치

파일 이름변경 - [접근날짜]만 변경

파일 내용수정 - [수정한 날짜],[접근날짜] 변경

파일 복사 -[만든날짜], [접근날짜] 변경

파일 이동 - [접근날짜]만 변경

파일 다운로드 - [만든날짜], [수정한날짜], [접근날짜] 변경

메신저에 의한 파일생성-[만든날짜], [수정한날짜], [접근날짜] 변경

파일 압축 해제 -[만든날짜],[접근날짜] 변경

 

'보안' 카테고리의 다른 글

[포렌식] 레지스트리 증거 수집 및 분석  (0) 2019.05.21
EProcess 란  (0) 2019.05.21
실시간 대응 키워드  (0) 2019.05.21
Virtual Memory 와 Physical Memory 이해하기  (0) 2019.05.21
실시간 대응의 중요성  (0) 2019.05.21