티스토리 뷰

digital forensics

1. 컴퓨터 구성 요소

(1) 하드웨어

출처: 5장 메모리 계층 (velog.io), 메모리 계층 구조

  • 컴퓨터의 하드웨어에는 중앙처리장치, 기억장치, 입출력장치, 버스가 있다.
  • cpu는 컴퓨터 시스템 전체를 제어하고 기억,해석,연산 기능을 관할한다.
  • 기억장치 는 프로그램 및 프로그램 수행을 위한 데이터를 젖장하는 장치를 의미
  • 기억장치의 종류는 cpu 내의 레지스터, 캐시기억장치, 주기억장치, 보조기억장치가 있다.
  • 각 기억장치는 가격, 속도, 용량, 접근시간 등이 차이가 나므로 서로 상호보완을 위해 메모리를 계층적으로 구성하여 사용하며 위 사진과 같이 메모리 계층 구조라 한다.
  • 입력장치는 컴퓨터에서 처리할 데이터와 정보를 외부에서 입력할 수 있게 하는 장치를 의미하며 마우스, 키보드, 스캐너, 조이스틱, 터치 스크린 등이 있다.
  • 출력장치는 컴퓨터 내부에서 처리된 결과를 출력하는 장치로 그래픽카드, 모니터, 프린터, 스피커 등이 해당된다.
  • 버스는 cpu, 기억장치, 입출력장치 사이에서 정보를 전송하는 통로를 의미
  • 컴퓨터에는 시스템을 작동시키는 cpu나 ram과 같은 핵심 부품들을 장착할 수 있는 슬롯과 기타 입출력장치를 연결할 수 있는 인터페이스를 제공하는 인쇄 회로 기판이 내정되어 있는데 이를 메인보드라고 한다.

(2) 소프트웨어

  • 소프트웨어는 크게 시스템 소프트웨어와 응용 소프트웨어로 나뉜다.

1) 시스템 소프트웨어

  • 시스템 소프트웨어는 컴퓨터 시스템을 제어하거나 운영하는 프로그램으로 운영체제, 컴파일러, 입출력 제어 프로그램 등이 해당

2) 응용 소프트웨어

  • 응용 소프트웨어는 시스템 소프트웨어를 기반으로하면서 특정 분야에서 특수 목적을 위해 사용하는 프로그램을 의미

(3) 펌웨어

bios 화면

  • 펌웨어란 특정 하드웨어장치에 포함된 소프트웨어를 의미
  • 하드웨어는 소프트웨어를 통해 전달된 정보를 받아들여 내부의 논리 회로를 거친 후 사용자에게 필요한 기능을 제공
  • 하드웨어 내부 제어 부분에 저장공간을 생성하여 해당 공간에서 논리 회로의 기능을 보강하거나 대신할 수 있는 프로그램을 저장하여 이러한 문제를 해결하고자 하였고 이를 펌웨어라고 한다.
  • 펌웨어의 대표적인 예시는 bios가 있다.
  • bios는 메인보드에 내장된 프로그램으로 컴퓨터를 시작할 때 가장 먼저 실행되는 소프트웨어이다.
  • cpu와 주변 장치들이 정상적으로 작동되는 진단하고 저장매체에 저장된 운영체제를 찾아 실행시키는 역할

2. 부팅절차

부팅 절차

  • 컴퓨터를 부팅하기 위해서는 여러 단계들을 거치게 되는데, 이때 사용자의 육안으로 확인하기 어려운 과정들이 몇 포함되어 있다.
  • 부팅과정은 크게 bios 로드, post 실행, 부트로더 실행의 단계로 진행된다.
  • 먼저 전원이 공급되어 cpu가 가동되면 cpu가 메인보드의 rom에서 bios를 로드한다. bios가 활성화된 후 post가 실행된다.
  • post는 ram과 저장 매체 등의 주변 장치가 바르게 동작하는지를 확인하기 위해 bios가 작동시키는 검사 과정을 의미한다.
  • post 과정이 끝나고 정상적으로 주변 장치들의 정상 작동이 확인되면, bios는 부팅 할 저장 매체를 선택하고 다음 단계로 이동한다.
  • 만약 주변 장치들이 정상적으로 작동되지 않는다면 부팅을 중단한다.
  • 이후 저장 매체의 mbr에 저장되어 있는 정보를 통해서 부팅 가능한 볼륨을 찾고 부트로더를 메모리에 로드한다.
  • 부트로더는 운영체제의 일부분인 커널을 메모리에 로드하게 되고 최종적으로 운영체제가 실행한다.

3. 기억장치 종류

 (1) 자기장 방식

HDD 내부 구조

  • 자기장으로 통해 기록하는 HDD의 내부에는 사진과 같이 LP판 같이 생긴 플래터가 층을 이루고 있으며, 플래터에 접촉할 수 있는 헤드가 있다.
  • 디지털 데이터는 자기장의 밀토 변화를 이용하여 자기적 패턴으로 기록된다.
  • 플래터는 자성을 띄는 아주 작은 금속 입자들로 이루어진 막이 코팅되어 있는데 헤드를 이용하여 금속 입자들의 방향을 바꿈으로써 0과 1을 기록하는 방식
  • HDD의 단점으로는 원판 위에 자기를 정령하여 정보를 기록하므로 물리적인 손상에 취약
  • SSD보다 속도가 훨씬 느리다는 단점도 있다.

(2) 반도체 방식

  • 반도체는 전류의 흐름을 제어할 수 있는 트랜지스터에 기반하여 전류가 흐를 때를 1, 흐르지 않을 때를 0으로 하여 디지털 데이터를 저장
  • 반도체 방식에는 전원이 꺼질 경우 정보가 사라지는 휘발성 메모리인 RAM과 전원이 꺼져도 정보가 사라지지 않는 비휘발성 메모리르 나뉜다.

1) 휘발성 메모리

  • 휘발성 메모리에 속하는 VRAM은 SRAM과 DRAM으로 나뉜다.
  • SRAM은 전원이 공급되는한 기록은 그대로 유지된다.
  • SRAM은 DRAM에 비해 속도가 빠르지만 구조가 복잡하고 공간도 많이 차지하여 가격이 비싸고 대용량 생산이 어렵다. 
  • DRAM은 기록된 내용을 유지하기 위해 커패시터에 전하를 저장해 놓는 방식을 사용하는데 커패시터에 있는 전하는 방전되므로 주기적으로 재충전을 해줘야 한다.
  • 구조가 간단하고 가격이 저렴하여 대용량 생산이 가능하다는 장점이 있다.
  • 이러한 이유로 DRAM을 컴퓨터 메인 메모리로 사용한다.
  • 또한 비휘발성 특징을 띄고 있는 RAM이 있는데 그것은 NVRAM이다.
  • RAM의 장점과 ROM의 장점을 모두 갖고 있어 주기억장치와 보조기억장치로서의 역할이 모두 가능하다.

2) 비휘발성 메모리

  • 비휘발성 메모리의 대표적인 예시로는 플래시 메모리가 있다.
  • 플래시 메모리는 전기적으로 데이터를 지우고 다시 기록할 수 있는 EEPROM에서 파생된 것으로 NAND 플래시와 NOR 플래시가 있다.

NAND 플래시와 NOR 플래시 비교

구분 NAND NOR
접근 순차(sequential) 접근 임의(random) 접근
읽기 느림 빠름
쓰기 빠름 느림
가격 저가 고가
용도 대용량 데이터 저장(SSD, SD 카드 등) 코드 저장 및 실행(펌웨어 저장소 등)

 

3) 저장 메체

  • SSD는 휘발성 메모리인 DRAM과 NAND 플래시 메모리를 사용하는 저장 매체이다.
  • NAND 플래시 메모리의 경우 SSD에서 장기적으로 보관하고자 하는 데이터들을 저장하는 장치로써의 역할을 수행
  • DRAM에는 SSD에서 특정 데이터가 어느 NAND 플래시의 몇 번째 주소에 저장되어 있는지에 대한 정보를 관리하는 매핑 테이블이 저장되어 있다.
  • SSD는 HDD에 비해 빠르고 가볍다는 장점이 있어 데스크톱, 랩톱에서 보조기억장치로 사용되던 HDD를 대체
  • 다만 가격이 상대적으로 비싸고 자연적인 방전으로 인한 데이터 손실 위험도 있으모르 상황에 따라 적절하게 사용하는 것이 필요하다.

4. 저장장치 인터페이스

ATA(IDE) 인터페이스를 위한 케이블

  • 저장장치 인터페이스는 호스트 시스템이 저장장치와 데이터를 교환할 때 사용하는 규격을 의미

(1) ATA(Advanced Technology Attachment)

  • HDD와 SSD와 같은 저장장치를 연결하는 인터페이스로 SATA가 있다.
  • 이것은 IDE라고 불리는 ATA를 개선한 것으로 
  • ATA 인터페이스는 위 사진과 같이 40개의 핀으로 구성된 직사각형의 포트를 사용
  • 현재는 SATA 방식을 주로 사용한다.

(2) SATA

  • SATA는 기존 ATA 방식의 느린 데이터 전송 속도를 개선한 것으로 세부 버전으로는 SATA1, 2,3가 있다.
  • SATA1,2,3의 속도는 각각 1.5Gbps, 3Gbps, 6Gbps이다.

(3) 폼팩터

  • SATA에는 다양한 폼팩터가 존재한다.
  • 폼팩터란 물리적으로 연결되는 규칙을 의미하는데, 저장장치를 정착하는 부분의 모양으로 구분할 수 있다.
  • SATA 폼팩터에는 SATA, eSATA, mSATA, SATA M.2, SATA U.2, SATA Express 등이 있다.

(4) PCIe

  • PCIe는 PCI Express의 줄임말로 메인보드에 그래픽 카드나 네트워크 카드나 사운드 카드등을 연결하기 위한 인터페이스 PCI를 개선한 것이다.

5. 데이터 입출력 단위

(1) 섹터

  • 데이터를 읽거나 기록할 때 사용되는 중요한 용어로 섹터클러스터가 있다.
  • 섹터는 HDD에서 사용되는 최소의 저장 단위를 의미하며 크기는 일반적으로 512 바이트이다. 
  • 디스크에 저장되어 있는 데이터를 읽거나 특정 데이터를 디스크에 쓰고자할 때 512바이트 단위로 이루어진다.
  • 물리적으로 데이터를 읽고 쓸 때 사용하는 주소 체계의 단위가 섹터가 된다.

(2) 클러스터

  • 기술이 발전함에 따라 저장장치의 용량이 커지게 되면서 섹터 단위로만 주소를 지정하는 것에 문제가 생겼다.
  • 이 문제를 해결하기 위해 고안된 개념이 클러스터이다.
  • 클러스터는 운영체제에서 디스크에 접근하기 위해 사용하는 단위이며 섹터 여러개를 하나의 클러스터로 간주
  • 윈도우의 경우 클러스터의 크기는 512 X 8 = 4096바이트(=4KIB)가 된다.

6. 역공학

코드 난독화 예시

  • 역공학이란 장치 또는 시스템의 기술적인 원리를 구조 분석을 통해서 발견하는 과정을 의미하는데 이러한 개념을 소프트웨어에 적용하면 프로그램의 원리와 로직을 파일 분석을 통해서 발견해내는 것으로 해석할 수 있다.
  • 프로그래밍의 역으로 해석할 수 있으며 이미 만들어진 실행파일을 분석하여 소스코드나 프로그램 설계등의 대한 정보를 알아내는 것을 의미
  • 역공학에는 정적 분석과 동적 분석이 있다.
  • 정적분석은 프로그램을 동작하지 않고 파일 자체를 분석하여 동적 분석에서의 힌트를 얻는 방법을 의미한다.
  • 동적 분석은 프로그램이 동작하는 상태에서 분석하는 방법으로 모니터링, 디버깅 등이 있다.
  • 이러한 역공학 기법은 일종의 해킹 기법으로 사이버 범죄에 사용 될 수 있고 정보보호, 포렌식에서 사용될 수 있다.
  • 그렇기에 역공학으로 방지하는 기술도 있다.
  • 대표적으로 위 사진과 같이 난독화가 있다.
  • 말 그대로 읽기 어렵게 만든다는 것으로 역공학을 어렵게하는 방식을 의미한다.
  • 그 외에도 소스코드의 변소명을 의미없는 이름으로 변경하거나 숫자 또는 문자를 이동시키거나 단어를 바꾸는 등의 방식, 실행파일을 암호화하거나 압축하여 소스코드 분석을 어렵게 하는 패킹 기법이 있다.

7. 운영체제

운영체제 구조

  • 운영체제는 시스템 소프트웨어의 한 부분으로 하드웨어의 리소스를 제어하거나 관리
  • 운영체제는 사용자와 하드웨어 간의 인터페이스에 해당되며, 사용자가 디지털 기기의 PCU, 메모리, 저장매체 등을 효율적으로 사용하도록 도와준다.
  • 운영체제는 사용자의 편의성을 위해 반드시 필요한 프로그램이다.
  • 운영체제는 프로세서, 기억장치, 입출력장치, 파일 및 정보 등의 자원을 관리하고 이를 위해 자원의 스케줄링 기능을 제공한다. 
  • 사용자와 시스템 간의 편리한 인터페이스를 제공하고 시스템의 각종 하드웨어 네트워크를 관리하고 제어하는 등 다양한 역할을 수행한다.
  • 운영체제는 크게 커널과 인터페이스로 구성되어 있다. 커널은 프로세스 관리, 메모리 관리, 저장장치 관리와 같은 운영체제의 핵심적인 기능을 수행
  • 인터페이스는 커널에 사용자의 명령을 전달하고 실행 결과를 사용자에게 알리는 역할

'Digital Forensics > 디지털 포렌식 개론' 카테고리의 다른 글

Digital Forensics Framework  (0) 2024.05.11
Digital Evidence  (1) 2024.03.02
네트워크와 암호  (0) 2024.02.21
디지털 포렌식 기초 지식  (0) 2024.02.16
디지털 포렌식이란  (2) 2024.02.11