전체 글 18

메모리 덤프, 해시 함수

1. 메모리 덤프메모리 덤프에서의 메모리란 휘발성 데이터를 담고 있는 RAM을 의미한다. RAM은 컴퓨터구조에서 CPU에 전달하기 위한 임시 데이터들이 저장되는 공간이다. 그림에서 Main Memory (주기억장치)는 CPU가 직접 데이터를 읽고 쓰는 RAM을 의미한다. CPU (Central Processing Unit): 컴퓨터의 두뇌 역할을 하는 중앙처리장치로, 그림과 같이 여러 구성요소로 이루어져있다. 프로그램은 저장 장치(HDD, SSD 등)에 저장된, 실행 가능한 명령어들의 집합이다. 프로세스는 실행을 위해 메모리에 올라와서 CPU가 처리 중인 프로그램이다. 메모리 덤프는 컴퓨터가 켜져 있을 때 RAM에 존재하는 휘발성 데이터를 통째로 복사해서 비휘발성 저장 장치(예: 외장 하드)에 파일..

디스크 이미징

디스크 이미징은 디지털 포렌식의 가장 기본적인 단계이자 핵심이라고 할 수 있다. 디스크 이미징은 하드 디스크(HDD)나 SSD 같은 디지털 저장 매체의 내용을 비트(0과 1) 단위까지 그대로 복제하여 하나의 파일로 만드는 과정이다. 간단히 말해, 원본 하드 드라이브를 통째로 '사진 찍어서' 파일(디스크 이미지)로 저장하는 것이다. 이 이미지 파일에는 우리가 일반적으로 보는 파일들뿐만 아니라, 삭제된 파일이나 숨겨진 데이터, 그리고 디스크의 구조 정보까지 모두 포함된다. 실습을 위해 아래 링크를 통해 FTK Imager를 다운받길 바란다.FTK Imager - Forensic Data Imaging and Preview Solution | Exterro FTK Imager - Forensic Data Im..

디지털 포렌식이 무엇인지

개발 블로그를 쓰다가 문득 그런생각이 들었다. 내 글을 읽는 사람은 물론 나 역시 "디지털 포렌식"이 무엇이며, 어떤 과정으로 이루어지는지 알까?이런 의문이 들어 디지털 포렌식에 대해 정리해보겠다. 우선 디지털 포렌식은 디지털 데이터를 활용해 범죄의 증거를 찾고 분석하는 과학 수사 기법이다.디지털 데이터가 무엇인가 하면 우리가 흔히 말하는 0과 1로 구성된 데이터를 의미한다. 디지털 데이터의 특징으로는 비가시성, 휘발성, 변조용이성, 복제 용이성, 대규모성, 초국경성이 있다. 1. 디지털 데이터1. 비가시성 (Invisibility)디지털 데이터는 눈에 보이지 않는다. 종이 문서처럼 물리적인 형태가 없다. 우리는 컴퓨터 화면을 통해서만 그 존재를 확인할 수 있다. 그래서 디지털 포렌식 전문가들은 특수 도..

휴지통 및 파일 복구

Windows 운영체제에서 파일을 삭제하면 휴지통으로 이동한다.파일을 삭제하는 방법은파일을 우클릭 후 삭제 버튼 누르기,Delete 키를 눌러 파일 삭제,파일을 드래그해 휴지통으로 이동 등이 있다.→ 3가지 방법은 동일하게 휴지통으로 파일이 이동하고, 휴지통에서 파일을 복원할 수 있다. 반면 Windows에서 Shift + Delete를 눌러 파일을 삭제하는 방법은 단순히 휴지통으로 데이터가 이동하지 않고사용자 입장에서 복원이 불가능하기 때문에 ‘완전 삭제’라고 부른다. 이 경우에는 $MFT(마스터 파일 테이블)의 해당 파일 엔트리에 삭제 표시가 추가된다. 하지만 이 경우에도 완전히 데이터가 사라지는 것은 아니며, 복구가 가능할 수 있다. 1. 휴지통1.1 휴지통 아티팩트 동작 원리사실 Windows에서..

프리패치 및 캐시

1. 프리패치(Prefetch) 프리패치란 Windows 운영체제에서 응용프로그램을 시작할 때 성능을 향상하기 위한 캐시 파일이다. Windows 운영체제는 응용프로그램의 실행 정보를 프리패치 파일로 미리 저장해두고, 메모리에 프리패치 파일을 미리 로드한다. 응용프로그램을 실행할 때 디스크가 아닌 메모리에서 정보를 빠르게 읽을 수 있도록 하여, 실행 속도를 빠르게 할 수 있다. 프리패치의 종류에는 부트 프리패치, 응용프로그램 프리패치가 있다. 부트 프리패치(Windows 7 이전에 사용)는 위에서 언급한 것과 유사하지만, Windows 부팅 시에 동작하는 기능이다. 응용 프로그램 프리패치(지금도 사용됨)는 사용자가 실행한 프로그램의 정보를 기록 디지털 포렌식 관점에서, 프리패치 분석을 통해 아래와 같은 ..

웹 브라우저 아티팩트

"웹 브라우저 아티팩트(Web Browser Artifacts)"란, 사용자가 웹 브라우저를 통해 인터넷을 사용할 때 브라우저와 컴퓨터에 남는 흔적이나 기록을 말한다. 웹 브라우저(Web Browser)는 사용자가 웹사이트에 접속하고 인터넷 상의 정보(HTML, 이미지, 영상 등)를 볼 수 있게 해주는 프로그램이다. 웹은 클라이언트와 서버가 서로 통신하는 방식으로 동작한다. 클라이언트가 서버에게 데이터를 요청하면 서버는 클라이언트가 요청한 데이터를 HTML 형식으로 반환하는 방식이다. 웹 브라우저는 즉, 클라이언트가 웹을 쉽게 이용할수 있도록 해주는 응용프로그램이다. HTML 코드를 처리해 사용자에게 보여주고, 사용자의 요청을 서버에 전송해주는 역할을 한다. 웹 브라우저의 종류로는 우리가 많이 사용하는..

Windows 아티팩트, 레지스트리

1. Windows 아티팩트 디지털 포렌식에서 다루는 디지털 증거는 크게 다음 두 가지로 나눌 수 있다.보관 증거 (Stored Evidence)-> 사용자가 직접 작성한 데이터생성 증거 (Generated Evidence)-> 사용자의 직접적인 개입 없이, 시스템이 자동으로 생성한 증거이 중에서 아티팩트(artifact)는 두 번째인 "생성 증거 중에서 일정한 구조로 저장되는 데이터"에 해당한다. 즉, 사용자의 흔적을 남긴 자동 생성 데이터 중, 디지털 포렌식에서 분석 가능한 형태로 구조화되어 저장된 정보를 말한다. Windows Artifacts는 수많은 종류가 있다.분류아티팩트주요 획득 가능 데이터시스템 파일레지스트리시스템 전반에 대한 설정 데이터시스템 파일$MFT, $LogFile, $UsnJrn..

파일 시스템

파일 시스템(File system)이란 컴퓨터에서 파일이나 자료를 쉽게 발견 및 접근할 수 있도록 보관 또는 조직하는 체계를 말한다. 간단히 말해, "파일을 어떻게 저장하고, 찾고, 읽고, 삭제할지를 정하는 체계"이다. 앞으로 진행할 실습은 모두 윈도우 기준이다. 1. 파티션과 볼륨운영체제를 공부하면서 많이 보았던 개념인 파티션은 물리적인 디스크(예: HDD 하나)를 논리적으로 여러 개로 나눈 것이다. 볼륨은 하나의 저장공간을 의미하는데, 정확한 표현으로는 파일시스템을 갖춘 저장 공간을 지칭한다. 일반적으로 하나의 파티션 = 하나의 볼륨이지만, 논리 볼륨(LVM 등)을 사용하면 여러 파티션을 하나의 볼륨으로 묶거나 분할할 수도 있다. 볼륨은 드라이브라고도 부른다. 즉 C 드라이브, D 드라이브를 말한다...

[JS] DOM과 DOM API

1. 웹과 DOM자바스크립트는 DOM을 통해 웹 페이지의 요소에 접근할 수 있다. DOM이란 Document Object Model의 약자로, 직역하면 문서 객체 모델이라고 할 수 있다. DOM은 HTML로 작성된 여러 요소들에 자바스크립트가 접근하고 조작할 수 있도록 브라우저가 변환시킨 객체이다. 웹 브라우저는 HTML 문서를 불러온 다음 이렇게 요소들 간의 상하 관계를 한 눈에 볼 수 있도록 트리 구조로 나타냅니다. 그리고, 이를 DOM 트리라고 부릅니다. DOM은 자바스크립트가 자신에게 접근해서 조작할 수 있는 방법을 제공합니다. DOM이 제공하는 방법을 활용해 웹 요소를 조작하기 위해서는 DOM 트리의 구조에 대해 잘 알고 있어야한다. 2. DOM API - 1만약 조작할 요소가 다음과 같다면,..

개발/프론트 2025.07.01

[JS] 비동기와 API

1. 비동기 처리우선 동기란, 하나의 작업이 실행되는 동안은 다른 작업을 수행하지 않는 방식으로, 다시 말해 하나의 작업이 완료될 때까지 다른 작업을 실행하지 않고, 앞에 진행하고 있는 작업이 종료된 다음 작업을 할 수 있는 순차적인 방식을 말한다. 반대로 자바스크립트에서 비동기(Asynchronous)쉽게 말해서 기다리지 않고 다음 일을 하는 것이다. 자바스크립트는 원래 한 번에 하나씩 처리하는 싱글 스레드 언어이다. 때문에 한 번에 하나의 작업만 수행할 수 있지만 비동기 처리(Asynchronous Processing)를 통해 마치 동시에 여러 작업을 수행하는 것처럼 보이게 만들어 사용자 경험을 부드럽게 유지할 수 있다. 1.1 setTimeout()자바스크립트에서 작업을 비동기로 처리하는 방법에는 ..

개발/프론트 2025.06.25