물리 메모리의 이해
메모리 포렌식 목적
-프로세스의 행위 탐지
-네트워크 연결 정보
-사용자 행위
-복호화, 언패킹, 디코딩된 데이터
-패스워드와 암호 키 획득
메모리 포렌식의 대상
-물리메모리
-페이지 파일
-하이버네이션 파일
하이버네이션이란 시스템전원을 끄기 전에 시스템 메모리에 있는 모든 내용을 하드 디스크와 같은 비휘발성 메모리에 기록하는 기능이다. (=> 최대 절전 모드)
물리 메모리 확인 방법
위의 링크에 나온대로 명령 프롬프트 실행시켜서 해보았는데 잘 안되었다.
그래서 그냥 터미널에서 systeminfo 하니까 정보 주르륵 뜨는데 이중에서 메모리 정보를 찾을 수 있었다.
물리주소확장(PAE, Physical Address Extension)
-물리적주소 지정 비트를 32비트에서 36비트로 확장 (4GB => 64GB)
접근 가능한 물리주소 공간 증가
윈도우 버전에 따라 설정 방법이 다르다
-주소 윈도잉 확장(AWE, Address Windowing Extensions)
확장된 메모리 접근 API
물리 주소 확장에 의해 확장된 메모리를 접근하기 위한 API
Lock Pages in Memory
사용자 응용프로그램의 경우, "Lock Pages in Memory"가 설정되어야 한다
데이터 실행 방지(DEP, Data Execution Prevention)
스택, 데이터 세그먼트, 힙과 같은 메모리 페이지를 실행 불가능하도록 설정
버퍼 오버플로우등의 공격 방지
-하드웨어 강제
CPU의 NX/XD 비트로 설정하며 OS와 사용자 애플리케이션 모두에서 사용 가능
PAE가 동작 할 때만 설정 가능
-소프트웨어 강제
비주얼 스튜디오의 /SafeSEH 링커 옵션 (SEH, Structured Exception Handler)
가상메모리
메모리 관리 기법의 하나로 기계에 실제로 이용 가능한 기억 자원을이상적으로 추상화하여 사용자들에게 대용량 메모리로 보이게 만드는 것. 멀티태스킹 운영체제에서 흔히 사용되며, 주기억장치보다 큰 메모리 영역을 제공하는 방법으로도 사용된다.
win32시스템의 모든프로세스는 4GB의 연속된 주소 공간 사용
사용자 영역 (0x00000000 - 0x7FFFFFFF)
커널 영역 (0x80000000 - 0xFFFFFFFF)
프로세스 생성 과정
1. 실행 파일 실행
2. 서브 시스템(POSIX, MS-DOS, Win32 등) 확인
3. EPROCESS, KPROCESS, PEB, 초기 주소 공간 설정
4. 기본 스레드 생성
5. 윈도우 하위 시스템에 새로 생성된 프로세스와 스레드 알림
6. 기본 스레드에 의해 프로세스 환경설정과 스레드 자원 할당
7. 새로운 프로세스와 스레드의 컨텍스트 내부주소 공간 초기화 완료
물리메모리 덤프
물리메모리 덤프 방식
1. 하드웨어를 이용한덤프
-PCI장치를 이용한덤프 - Tribble
PCI 장치를 이용해 물리메모리를 외부 저장장치로 덤프
추가적인 하드웨어/소프트웨어의 설치없이 무결성을 최대한보장
단, 사전에 미리 설치되어 있어야 한다.
-FireWire(IEEE 1394)를 이용한 메모리 덤프 - FireWire Attack
FireWire 인터페이스를이용해DMA에 접근하여 메모리 덤프
윈도우, 리눅스, 맥 OS에서 가능
악성프오그램에 영향받지않으며 빠른 메모리 덤프가 가능하다. 하지만 안정성 문제로 현재 연구용으로만 진행하고 있다.
2. 소프트웨어를 이용한 덤프
-Win(32|64)dd
Matthieu Suiche가 개발한 후 현재는 MoonSols Windows Memoy Toolkit에 포함
기능이 제한된 커뮤니티 버전은 무료
윈도우 xp부터 7까지 덤프를 지원한다.
-Memorize™
맨디언트에서 개발한 무료 메모리 이미징/분석 도구
윈도우 2000 SP4부터 윈도우 8까지 지원한다.
-FD(FastDump)Pro
HBGary에서개발한 상용 메모리 덤프 도구로 Responder 제품의 번들
무료버전은 64비트와 일부 운영체제 미지원
매우 빠른 이미징 속도와 대용량 메모리도 이미징 가능
3. 크래시 덤프
시스템 크래시
물리메모리에 가장 최소한의 영향을 미치는 방법
윈도우만 지원하며 수동 크래시를 발생시키려면 시스템 재부팅이 필요하다.
4. 가상화 시스템 덤프
5. 절전모드 덤프
추가적인 프로그램이나 장비가 불필요하나 전체 메모리 영역의 덤프가 아닌 사용 중인 영역만 덤프할 수 있다.
최근 메모리 덤프방식
하드웨어 방식은 미리 설치되어 있어야 하거나 안정성 문제가 있다.
절전모드, 크래시 덤프는 제한된 환경에서만 동작한다.
따라서, 주로 소프트웨어 방식을 이용해 메모리 덤프를한다.
물리메모리 분석
초기 메모리분석 방법
-문자열 추출
특정 패턴의 문자열 검색
이메일, 계정, 비밀번호, 메신저 대화 등
-파일 카빙
그래픽 이미지, HTML, 레지스트리 등 파일 카빙 기법으로 파일 획득
오브젝트 검색
-물리메모리 상의 오브젝트를 찾기 위한 방법으로 리스트 워킹과 패턴 매칭이 있다.
리스트 워킹
EPROCESS프로세스 이름을 이용한 프로세스 탐색 기법
EPROCESS 구조체 내부의 프로세스 이름을 검색하여 주요 프로세스 확인(system, smss 등)
이름이 확인되면 해당 위치를 기준으로 앞 뒤에 EPROCESS 구조가 존재하는지 검증
EPROCESS 구조가 존재한다면ActiveProcessLinks를 이용해 프로세스 탐색
KPCR을 이용한 프로세스 탐색 기법
DKOM과 같은 프로세스 은닉 기법 탐지는 불가능
패턴 매칭
프로세스 구조체의 패턴을 이용해 메모리 영역 전체 검색
은닉 프로세스라도 동일한프로세스 구조체를 가짐
물리메모리 분석 도구
앞선 실습에서 사용해 보았던 Volatility를 포함하여 Responder Pro, Volafox 등 여러도구가 있다.
도구에 따라인터페이스와 사용가능한 플랫폼이 다르다.
https://yenas0.tistory.com/7
volatility로하는 메모리 포렌식 실습은 위에서 볼 수 있다.
마치며
이전에 실습하면서 아는 용어가 없어 강의에 나온대로 따라하기 바빴는데 메모리포렌식 추가 자료를 보니까 개념에 대해 좀 더 알 수 있었다. 근데 아직도 이해 못 한 자료들이 많아서 아마 시험 끝나고 또 다시..공부해야 할 것 같다. 계속 모르는 말 나와서 넋 나가 있다가 후반에 메모리 분석 도구 보면서 volatiliy (그나마 아는거) 나와서 반가웠다.. 아는 거 많아져서 나중에 저 깃허브 자료 다 이해할 수 있으면 좋겠다^____^
'학회_공부해요 > 디지털포렌식' 카테고리의 다른 글
[디지털포렌식_기초]5주차 윈도우 포렌식 (0) | 2023.05.08 |
---|---|
[디지털포렌식_기초]4주차 메모리 포렌식 (0) | 2023.05.03 |
[디지털포렌식_기초]2주차 메모리 포렌식 (0) | 2023.04.04 |
디지털포렌식 퀴즈 (0) | 2023.03.28 |
[디지털포렌식_기초]1주차 디지털 포렌식 기초 (2) | 2023.03.28 |