티스토리 뷰
1. 컴퓨터 구성 요소
(1) 하드웨어
- 컴퓨터의 하드웨어에는 중앙처리장치, 기억장치, 입출력장치, 버스가 있다.
- cpu는 컴퓨터 시스템 전체를 제어하고 기억,해석,연산 기능을 관할한다.
- 기억장치 는 프로그램 및 프로그램 수행을 위한 데이터를 젖장하는 장치를 의미
- 기억장치의 종류는 cpu 내의 레지스터, 캐시기억장치, 주기억장치, 보조기억장치가 있다.
- 각 기억장치는 가격, 속도, 용량, 접근시간 등이 차이가 나므로 서로 상호보완을 위해 메모리를 계층적으로 구성하여 사용하며 위 사진과 같이 메모리 계층 구조라 한다.
- 입력장치는 컴퓨터에서 처리할 데이터와 정보를 외부에서 입력할 수 있게 하는 장치를 의미하며 마우스, 키보드, 스캐너, 조이스틱, 터치 스크린 등이 있다.
- 출력장치는 컴퓨터 내부에서 처리된 결과를 출력하는 장치로 그래픽카드, 모니터, 프린터, 스피커 등이 해당된다.
- 버스는 cpu, 기억장치, 입출력장치 사이에서 정보를 전송하는 통로를 의미
- 컴퓨터에는 시스템을 작동시키는 cpu나 ram과 같은 핵심 부품들을 장착할 수 있는 슬롯과 기타 입출력장치를 연결할 수 있는 인터페이스를 제공하는 인쇄 회로 기판이 내정되어 있는데 이를 메인보드라고 한다.
(2) 소프트웨어
- 소프트웨어는 크게 시스템 소프트웨어와 응용 소프트웨어로 나뉜다.
1) 시스템 소프트웨어
- 시스템 소프트웨어는 컴퓨터 시스템을 제어하거나 운영하는 프로그램으로 운영체제, 컴파일러, 입출력 제어 프로그램 등이 해당
2) 응용 소프트웨어
- 응용 소프트웨어는 시스템 소프트웨어를 기반으로하면서 특정 분야에서 특수 목적을 위해 사용하는 프로그램을 의미
(3) 펌웨어
- 펌웨어란 특정 하드웨어장치에 포함된 소프트웨어를 의미
- 하드웨어는 소프트웨어를 통해 전달된 정보를 받아들여 내부의 논리 회로를 거친 후 사용자에게 필요한 기능을 제공
- 하드웨어 내부 제어 부분에 저장공간을 생성하여 해당 공간에서 논리 회로의 기능을 보강하거나 대신할 수 있는 프로그램을 저장하여 이러한 문제를 해결하고자 하였고 이를 펌웨어라고 한다.
- 펌웨어의 대표적인 예시는 bios가 있다.
- bios는 메인보드에 내장된 프로그램으로 컴퓨터를 시작할 때 가장 먼저 실행되는 소프트웨어이다.
- cpu와 주변 장치들이 정상적으로 작동되는 진단하고 저장매체에 저장된 운영체제를 찾아 실행시키는 역할
2. 부팅절차
- 컴퓨터를 부팅하기 위해서는 여러 단계들을 거치게 되는데, 이때 사용자의 육안으로 확인하기 어려운 과정들이 몇 포함되어 있다.
- 부팅과정은 크게 bios 로드, post 실행, 부트로더 실행의 단계로 진행된다.
- 먼저 전원이 공급되어 cpu가 가동되면 cpu가 메인보드의 rom에서 bios를 로드한다. bios가 활성화된 후 post가 실행된다.
- post는 ram과 저장 매체 등의 주변 장치가 바르게 동작하는지를 확인하기 위해 bios가 작동시키는 검사 과정을 의미한다.
- post 과정이 끝나고 정상적으로 주변 장치들의 정상 작동이 확인되면, bios는 부팅 할 저장 매체를 선택하고 다음 단계로 이동한다.
- 만약 주변 장치들이 정상적으로 작동되지 않는다면 부팅을 중단한다.
- 이후 저장 매체의 mbr에 저장되어 있는 정보를 통해서 부팅 가능한 볼륨을 찾고 부트로더를 메모리에 로드한다.
- 부트로더는 운영체제의 일부분인 커널을 메모리에 로드하게 되고 최종적으로 운영체제가 실행한다.
3. 기억장치 종류
(1) 자기장 방식
- 자기장으로 통해 기록하는 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. 저장장치 인터페이스
- 저장장치 인터페이스는 호스트 시스템이 저장장치와 데이터를 교환할 때 사용하는 규격을 의미
(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 |