인터넷·보안

메모리 포렌식의 원리와 실행 중인 시스템에서 흔적 찾는 방법

2026-10-19 08:07
메모리 포렌식의 원리와 실행 중인 시스템에서 흔적 찾는 방법 representative image

메모리 포렌식은 실행 중인 시스템의 RAM을 분석해 저장장치만으로는 확인하기 어려운 프로세스, 네트워크 연결, 명령어, 암호화 키와 같은 흔적을 찾는 조사 방법입니다. 침해사고가 의심될 때 시스템을 즉시 종료하기 전에 휘발성 정보를 보존하는 것이 핵심입니다.


📌 핵심 5줄 요약

1. 메모리 포렌식은 실행 중인 시스템의 RAM을 확보하고 분석하는 기술입니다.

2. 프로세스, 네트워크 연결, 로그인 세션, 코드 조각 등 휘발성 흔적을 확인할 수 있습니다.

3. 디스크에 파일을 남기지 않는 파일리스 악성코드 조사에 특히 유용합니다.

4. 수집 과정 자체가 메모리를 바꿀 수 있으므로 절차, 시간, 도구 정보를 기록해야 합니다.

5. 분석 결과는 단독으로 단정하지 말고 디스크 이미지와 로그 등 다른 증거와 대조해야 합니다.


📌 목차

01 | 메모리 포렌식이란

02 | 왜 필요한가

03 | 메모리에 남는 정보

04 | 디스크 포렌식과의 차이

05 | 기본 조사 절차

06 | 메모리 덤프 수집 원칙

07 | 프로세스 분석

08 | 네트워크 연결 확인

09 | 악성코드와 은닉 흔적

10 | 운영체제별 분석 관점

11 | 타임라인과 다른 증거의 결합

12 | 실제 조사 시나리오

13 | 한계와 주의사항

14 | 결과 보고서 작성


01 | 메모리 포렌식이란

메모리 포렌식은 시스템의 주기억장치인 RAM을 이미지 파일로 확보한 뒤, 그 안에 있는 운영체제와 응용프로그램의 상태를 해석하는 과정입니다. RAM은 전원이 끊기면 대부분의 정보가 사라지는 휘발성 데이터이므로 현장에서의 수집 순서가 중요합니다.

분석 대상은 단순한 파일 목록이 아니라 프로세스 구조, 스레드, 열린 핸들, 네트워크 소켓, 사용자 세션, 메모리에 적재된 모듈과 코드입니다.


02 | 왜 필요한가

공격자는 흔적을 줄이기 위해 실행 후 파일을 삭제하거나 정상 프로세스에 코드를 주입할 수 있습니다. 이 경우 디스크를 조사하는 것만으로는 공격 당시의 실행 상태를 충분히 복원하기 어렵습니다.

메모리에는 현재 실행 중인 악성 프로세스, 삭제된 파일과 연결된 메모리, 원격 접속 세션, 명령어 일부가 남아 있을 수 있습니다. 따라서 침해사고 초기에 시스템을 무조건 재부팅하는 것은 중요한 증거를 잃게 만들 수 있습니다.


03 | 메모리에 남는 정보

운영체제는 프로그램을 실행하기 위해 코드와 데이터를 메모리에 배치합니다. 분석자는 이 구조를 바탕으로 어떤 프로그램이 언제 실행됐는지, 어떤 파일이나 라이브러리를 사용했는지, 외부와 통신했는지를 추정합니다.

주요 확인 항목

프로세스 목록과 부모·자식 관계, 실행 경로, 사용자 계정, 로드된 모듈, 열린 파일과 레지스트리 관련 핸들, 네트워크 연결, 명령줄 인자, 환경 변수 등을 확인합니다. 브라우저나 인증 프로그램의 메모리에서는 세션 관련 정보가 발견될 가능성도 있지만, 이를 임의로 추출하거나 사용하는 행위는 법적·윤리적 문제가 될 수 있습니다.


04 | 디스크 포렌식과의 차이

구분확인할 내용
메모리 포렌식실행 중인 프로세스, 연결 상태, 휘발성 데이터, 코드 주입 흔적을 분석합니다.
디스크 포렌식파일, 삭제 기록, 로그, 메타데이터, 설치 흔적과 장기간의 변경 내역을 분석합니다.
결합 분석메모리의 실행 상태와 디스크의 생성·변경 기록을 대조해 사건 흐름을 보완합니다.

두 방식은 경쟁 관계가 아니라 보완 관계입니다. 메모리에서 의심 프로세스를 발견했다면 디스크의 실행 파일, 보안 로그, 예약 작업과 연결해 확인해야 판단의 신뢰도가 높아집니다.


05 | 기본 조사 절차

첫 단계는 현장 상태를 보존하는 것입니다. 화면에 표시된 경고, 로그인 사용자, 네트워크 연결 상태와 조사 시작 시각을 기록하고, 시스템을 조작한 사람과 작업 내용을 함께 남깁니다.

그다음 메모리 이미지를 수집하고 원본은 보존합니다. 분석은 복제본으로 진행하며 파일 해시, 수집 도구와 버전, 대상 시스템의 운영체제, 수집 시각을 기록합니다.

분석 단계에서는 운영체제 프로파일을 식별한 뒤 프로세스, 네트워크, 모듈, 은닉 가능성을 순서대로 확인합니다. 마지막으로 디스크 이미지와 이벤트 로그를 대조해 가설을 검증합니다.


06 | 메모리 덤프 수집 원칙

메모리 덤프는 RAM의 내용을 파일로 저장한 결과입니다. 수집 도구를 실행하는 순간에도 프로그램과 데이터가 메모리에 추가되므로, 수집 전후의 시스템 변화가 발생할 수 있다는 점을 기록해야 합니다.

가능하면 신뢰할 수 있는 수집 환경과 검증된 도구를 사용하고, 조사 대상 시스템에 불필요한 프로그램을 설치하지 않습니다. 수집 파일은 원본과 작업용 복사본을 분리하고 접근 권한을 제한해야 합니다.

기업이나 기관의 사고 대응이라면 사전에 승인된 절차와 증거 보관 정책을 따릅니다. 개인 컴퓨터라도 타인의 계정 정보나 개인정보가 포함될 수 있으므로 무단 분석과 배포를 피해야 합니다.


07 | 프로세스 분석

가장 먼저 볼 항목은 현재 프로세스 목록입니다. 이름만 보고 정상 여부를 판단하지 말고 부모 프로세스, 실행 경로, 사용자 계정, 시작 시점, 메모리 권한과 로드된 모듈을 함께 확인해야 합니다.

정상 프로그램과 유사한 이름을 사용하는 위장 프로세스, 실행 파일 경로가 비정상적인 프로세스, 부모·자식 관계가 일반적인 실행 흐름과 다른 프로세스는 우선 조사 대상이 됩니다. 단, 이상 징후가 곧 악성 판정을 의미하는 것은 아니므로 파일과 로그를 추가로 대조해야 합니다.


08 | 네트워크 연결 확인

메모리에는 조사 시점의 네트워크 소켓과 연결 정보가 남을 수 있습니다. 외부 주소, 포트, 연결 상태, 연결을 만든 프로세스를 연결해 보면 악성 프로그램이 명령제어 서버와 통신했는지 판단하는 데 도움이 됩니다.

특히 정상적으로 네트워크를 사용할 이유가 적은 프로세스가 외부와 통신하거나, 알려진 서비스처럼 보이는 프로세스가 낯선 연결을 만든 경우를 살펴봅니다. 주소 하나만으로 공격자를 확정하지 말고 방화벽 로그와 DNS 기록을 함께 확인해야 합니다.


09 | 악성코드와 은닉 흔적

악성코드는 정상 프로세스에 코드를 주입하거나, 파일을 만들지 않고 메모리에서만 실행되는 방식으로 탐지를 피할 수 있습니다. 프로세스 목록과 메모리 영역을 서로 비교하면 목록에는 보이지 않는 실행 흔적이나 실행 파일과 맞지 않는 코드 영역을 찾는 데 도움이 됩니다.

커널 영역의 변조, 비정상적인 메모리 권한, 숨겨진 프로세스와 같은 정황도 조사 대상입니다. 다만 보안 제품이나 운영체제의 정상 동작도 비슷한 형태를 만들 수 있으므로 단일 결과만으로 루트킷이나 공격을 단정해서는 안 됩니다.


10 | 운영체제별 분석 관점

윈도우 시스템은 프로세스와 스레드, 서비스, 레지스트리 관련 구조, 사용자 세션과 네트워크 연결을 중심으로 살펴봅니다. 리눅스와 유닉스 계열은 프로세스, 파일 디스크립터, 소켓, 메모리 매핑, 계정과 권한 구조를 함께 확인합니다.

운영체제의 버전과 커널 구조에 따라 메모리 구조와 분석 방법이 달라질 수 있습니다. 따라서 수집한 이미지에 맞지 않는 분석 프로파일이나 플러그인을 사용하면 결과가 누락되거나 잘못 해석될 수 있습니다.


11 | 타임라인과 다른 증거의 결합

메모리 이미지는 특정 시점의 스냅샷에 가깝습니다. 따라서 메모리에서 확인한 프로세스와 연결을 이벤트 로그, 인증 로그, 엔드포인트 보안 기록, 파일 생성·수정 시간과 연결해 사건의 순서를 구성해야 합니다.

예를 들어 비정상 프로세스가 발견됐다면 해당 계정의 로그인 시각, 프로세스가 사용한 파일, 외부 통신 기록, 이후 생성된 예약 작업을 차례로 대조합니다. 시간 정보가 서로 다른 기준으로 기록됐을 가능성도 있으므로 시간대와 시스템 시계를 확인해야 합니다.


12 | 실제 조사 시나리오

사내 컴퓨터에서 사용자가 실행하지 않은 프로그램이 동작하고 외부 통신이 발생했다고 가정해 보겠습니다. 시스템을 종료하기 전에 화면과 네트워크 상태를 기록하고 메모리 이미지를 확보합니다.

분석자는 프로세스 목록에서 의심 프로세스의 부모 프로세스와 실행 경로를 확인한 뒤, 해당 프로세스가 만든 연결과 로드한 모듈을 조사합니다. 이후 디스크에서 관련 파일의 생성 시각과 보안 로그를 확인하고, 동일한 흔적이 다른 컴퓨터에도 있는지 비교합니다.

이 과정의 결론은 “악성으로 보인다”가 아니라 발견 사실, 확인하지 못한 부분, 추가 대응이 필요한 범위로 구분해 작성하는 것이 바람직합니다.


13 | 한계와 주의사항

메모리는 계속 변하므로 수집 시점과 도구에 따라 결과가 달라질 수 있습니다. 시스템이 이미 종료됐거나 메모리가 덮어써진 경우에는 필요한 흔적이 남지 않을 수 있습니다.

암호화, 메모리 보호 기능, 가상화 환경, 커널 버전 차이도 분석을 어렵게 만듭니다. 또한 프로세스 이름, 외부 주소, 문자열 하나만으로 악성 여부를 확정하면 오탐이 발생할 수 있습니다.

개인정보와 인증 정보가 포함될 수 있으므로 접근 권한, 보관 기간, 분석 목적을 제한해야 합니다. 법적 증거로 사용할 가능성이 있다면 원본 보존과 작업자 기록, 해시 관리 등 증거 연속성을 별도로 관리해야 합니다.


14 | 결과 보고서 작성

보고서에는 조사 목적, 대상 시스템, 수집 시각, 사용한 도구와 버전, 이미지 파일의 식별 정보, 분석 범위를 먼저 기록합니다. 이후 발견한 프로세스와 연결, 관련 파일, 로그의 시간 정보를 사실 중심으로 정리합니다.

각 판단에는 근거와 한계를 함께 적습니다. 예를 들어 “비정상 외부 연결이 확인됨”과 “해당 연결만으로 악성 행위를 확정할 수 없음”을 구분하면 보고서의 신뢰도가 높아집니다.

마지막에는 격리, 계정 비밀번호 변경, 추가 이미지 수집, 재발 방지 점검 등 후속 조치를 우선순위별로 제시합니다.


☑ 체크리스트

□ 시스템 종료나 재부팅 전에 현재 화면과 조사 시각을 기록했는가

□ 메모리 수집 도구와 실행 과정이 기록됐는가

□ 원본 이미지와 분석용 복사본을 분리했는가

□ 이미지 파일의 해시와 보관 위치를 관리했는가

□ 프로세스, 네트워크, 모듈, 사용자 세션을 함께 확인했는가

□ 메모리 결과를 디스크와 로그의 기록으로 대조했는가

□ 개인정보와 인증 정보에 대한 접근 권한을 제한했는가


📖 자주하는 질문 Q&A

메모리 포렌식은 디스크 포렌식보다 우선인가요?

항상 우선하는 것은 아니지만, 시스템이 현재 실행 중이고 휘발성 흔적이 중요하다면 메모리 수집을 먼저 고려합니다. 이후 디스크와 로그를 함께 분석해야 사건을 정확히 복원할 수 있습니다.

메모리 덤프만으로 악성코드를 확정할 수 있나요?

어떤 경우에는 강한 정황을 얻을 수 있지만, 단일 결과만으로 확정하기는 어렵습니다. 실행 파일, 로그, 네트워크 기록과의 상관관계를 확인해야 합니다.

컴퓨터를 재부팅하면 메모리 포렌식이 불가능한가요?

대부분의 RAM 정보는 사라지거나 크게 바뀌므로 분석 가능한 범위가 줄어듭니다. 재부팅 후에도 디스크와 로그에 남은 흔적은 조사할 수 있지만, 실행 당시의 상태를 그대로 복원하기는 어렵습니다.

개인이 직접 메모리 포렌식을 해도 되나요?

자신의 장비를 학습 목적으로 분석하는 것은 가능하지만, 타인의 컴퓨터나 계정 데이터를 무단으로 수집·분석하면 문제가 될 수 있습니다. 기업 사고나 법적 분쟁과 관련된 경우에는 전문 조사 절차를 따르는 것이 안전합니다.


📝 마무리

메모리 포렌식은 실행 중인 시스템의 현재 상태를 보존해 프로세스와 네트워크, 악성코드 흔적을 확인하는 데 유용합니다. 다만 수집 과정에서 데이터가 변할 수 있으므로 원본 보존, 작업 기록, 다른 증거와의 대조가 함께 이뤄져야 합니다.

#메모리 포렌식 #디지털 포렌식 #휘발성 데이터 #메모리 덤프 #실행 중인 시스템 #침해사고 대응 #악성코드 분석 #보안 분석 #컴퓨터 포렌식 #디지털 증거 #프로세스 분석 #네트워크 연결 분석 #윈도우 메모리 분석 #리눅스 메모리 분석 #커널 분석 #루트킷 탐지 #프로세스 인젝션 #악성 프로세스 #메모리 덤프 생성 #포렌식 절차 #사고 대응 절차 #휘발성 증거 수집 #보안 로그 분석 #파일리스 악성코드 #랜섬웨어 조사 #증거 무결성 #타임라인 분석 #메모리 포렌식 도구 #침해사고 조사 #사이버 보안