• 카테고리
  • 멤버
  • 아티클
  • 카테고리
  • 멤버
  • 깃헙
© 2020 COSADAMA,
All Rights Reserved.
Data-Analysis

디지털 포렌식 2주차 스터디

by 유혜정

제2장 디지털데이터

이진수와 16진수


이진수

  1. 디지털데이터는 0 또는 1로 표현하는 이진수를 기본적으로 사용한다.

  2. 메모리, 하드디스크 저장장치, 네트워크 장비 등 모든 디지털 시스템에서는 이진수를 사용해서 데이터를 저장하고 처리한다.

16진수

: 디지털 데이터는 2진수를 사용하지만 모든 데이터를 비트로 나타내면 데이터를 화면에 출력하거나 처리할 때 비효율적이어서 간단하고 편리하게 사용하기 위해 4Bit 단위로 묶어서 표현한다.

문자


  1. 아스키코드
  • 7비트로 구성된 128종의 기호를 정한 것으로, 1바이트로 문자를 표현한다.
  • 제어부호, 그래픽기호, 숫자, 알파벳으로 구성된다.
  • 영문을 표기하는 대부분의 시스템에서 사용한다.
  1. UTF-8
  • 한 문자를 나타내기 위해 1바이트에서 4바이트까지 사용한다.
  • 아스키 문자들은 유니코드에서 1바이트만으로 표시한다.
  • 유니코드가 가진 성질
    • 1바이트로 표시된 문자의 최상위 비트는 항상 0
    • 2바이트 이상으로 표시된 문자의 경우, 첫 바이트의 상위 비트들이 그 문자를 표시하는 데 필요한 바이트 수를 결정
    • 첫 바이트가 아닌 나머지 바이트들은 상위 2비트가 항상 10

저장데이터 정보 분석


  1. 텍스트 파일

메모장 프로그램을 실행하여 숫자 123 값을 입력하고 저장한 파일을 HxD 프로그램으로 열어서 저장된 데이터 내용을 확인하면, 아스키코드 값 31,32,33 값이 3바이트로 저장되어 있는 것을 확인할 수 있다.

  • 1의 아스키코드 값→31
  • 2의 아스키코드 값→32
  • 3의 아스키코드 값→33

1.png 숫자가 아닌 a,b,c의 문자로 작성된 파일을 분석해봐도 마찬가지로 a,b,c 각각의 아스키코드 값인 61,62,63 값이 3바이트로 저장되어 있는 모습이다.

2.png

  1. 바이너리 파일

바이너리 파일이란?

: 이진 파일로 텍스트 파일이 아닌 파일이다. 컴퓨터가 저장 및 처리를 목적으로 이진형식으로 인코딩한 데이터를 포함하는 파일을 의미한다. 이미지파일, 동영상파일, 한글문서파일 등이 이 있으며, 이런 파일은 텍스트로 열어보면 글자가 깨진 것처럼 보인다.

파이썬 프로그램을 활용하여 "123.bin" 파일을 생성하고, HxD 프로그램으로 파일을 열어 데이터를 확인하면 7B 값의 1바이트가 저장되어 있는 것이 확인된다.

  • 123의 아스키코드 값→7B

즉, 텍스트 파일은 123 값을 저장할 시에 3바이트가 필요하지만, 바이너리 파일로 저장할 경우에는 1바이트가 필요하다.

그러므로 파일 전송 시에 효율성이 좋아 바이너리 파일이 사용된다.

3.png

리틀엔디언과 빅엔디언


컴퓨터에서 데이터를 저장할 경우 종류 등에 따라 데이터의 저장방식이 다르다. 이런 저장방식의 대표적인 것에는 빅엔디언과 리틀엔디언이 있다.

  1. 빅엔디언

바이트 열에서 가장 큰 값이 먼저 저장된다.

  1. 리틀엔디언

바이트 열에서 가장 작은 값이 먼저 저장된다.

시간정보의 표현


컴퓨터 포렌식에서 시간과 날짜는 중요한 정보로서, 이 정보가 없다면 대부분의 디지털 증거는 그 의미를 잃어버린다.

<컴퓨터가 시간을 생성하고 관리하는 방법>

  1. 시스템 시간

윈도우 시스템은 부팅 시에 컴퓨터의 마더보드의 라튬배터리에 연결된 RTC로부터 현재 시간을 가져오거나, 인터넷 서버와 동기화하여 시스템의 시간을 구성한 후 시스템 시간을 출력한다.

  1. 표준시간대

각 나라의 시간을 통일하기 위해서 표준시간대를 사용한다. 한국의 표준시간대인 한국표준시는 UTC 기준시간보다 9시간 빠르다.

  1. 파일시스템 시간

1) time_t

  • 시간 형식을 4바이트로 저장하며, 정수형을 사용하는 1970년 1월 1일 자정 이후 경과된 초를 저장

2) time64_t

  • time_t에 부호 있는 4바이트 정수형을 사용하는 경우, 2038년 1월 19일 03:14:07 UTC가 지나면 시간이 1901년 또는 1970년이 되는 문제 → 이를 해결하기 위해 64비트 아키텍처를 지원하는 운영 체제는 8바이트를 이용하도록 time_t의 정의를 변경

3) FILETIME 시간 포맷

  • Window 32bit에서 주로 사용하는 시간 정보 저장 형식

  • 구조체는 8바이트이며, 날짜와 시간을 각각 4바이트에 저장

  • FILETIME을 time_t로 변환하는 공식

    time_t=(FILETIME - 0x19DB1DED53E8000) / 10000000

4) 파일시스템에서의 시간

  • FAT32 파일시스템

생성시간, 수정시간, 접근시간이 1980년 1월 1일부터 2107년 12월 31일까지 기록된다.

  • NTFS 파일시스템

8바이트의 고정 길이로 1601년 1월 1일 (월요일) 00시 00분 00초를 기준으로 하고 그 이후의 누적시간을 연,월,일,시,분,초 단위로 환산한 후 기준 시에 더하는 방식을 사용한다.

파일 시간정보 분석


  • 빅엔디언 형식으로 저장된 값을 Windows 64bit 타임으로 변환

4.png

  • 리틀엔디언 형식으로 저장된 값을 Windows 64bit 타임으로 변환

5.png

데이터 인코딩


데이터 인코딩

: 숫자, 문자, 시간 등의 데이터는 원본 그대로의 형태로 저장될 수도 있지만, 다양한 인코딩 알고리즘에 따라 특수한 형태의 데이터로 변환된다. 이러한 인코딩 방식 중 많이 사용되는 것이 Base 64.

Base 64

  • 임의의 바이너리 데이터를 64개 아스키 문자의 조합으로 표현한다.

  • 인코딩된 문자열은 알파벳 대소문자와 숫자, 그리고 +, / 기호 64개로 이루어진다.

  • 인코딩 방식: 아스키코드 변환→2진수 변환→6비트로 나눔→10진수 변환→Base64 문자표 변환

  • Base64로 인코딩 온라인 변환사이트

    https://www.base64encode.org/

7.png

  • 문자열 'Get'을 Base64로 인코딩한 결과 'R2V0'의 값을 얻음

파일


파일

: 파일은 응용프로그램의 처리 단위이며, 디지털 포렌식 분석의 주요 대상이다. 파일 시스템 내에 존재하는 파일은 일반적으로 이름과 확장자를 부여하며, 파일의 확장자는 응용프로그램에서 처리 가능한 파일을 분류하는 역할을 한다.

파일 포맷의 내부구조

1) 헤더

  • 헤더에는 해당 파일의 타입을 나타내는 시그니처가 포함되며, 파일의 크기, 메타데이터의 시작 위치 등의 부가 정보가 저장된다.

2) 메타데이터

  • 사용자가 입력한 데이터를 설명하거나 관리하기 위한 데이터로 응용프로그램에서 자동적으로 생성한다.

3) 데이터

  • 파일의 본문을 구성하는 실제 데이터가 저장되는 영역이다.
Previous Post
Machine Learning(Harvard)
Next Post
Machine Learning(Harvard) Classification study
  • 코사다마
  • 소개
  • 영입
  • 관련 사이트
  • 홈페이지
  • 커리큘럼
  • 깃헙
  • 문의
  • 이메일
  • 채널톡
  • 카카오톡
  • Built with ⛰ by Peniel Cho