메메메 메메메 메메메 메메 메 메메 메메 메메 System & Network Security Lab 석석 25 석 석석석 2013.6.24
Feb 08, 2016
메모리 덤프를 이용한 분석 및 공격 기법 분석
System & Network Security Lab석사 25 기 유창훈
2013.6.24
Table of Contents
1. 서론2. 메모리 덤프란 ?3. 메모리 덤프 방법4. 메모리 덤프 기술을 이용한 공격 사례5. 메모리 분석6. 예제7. Q & A
서론
메모리 덤프란 ?
메모리 덤프란 ? 메모리 덤프의 목적 ?
프로세스열린파일과 레지스트리네트워크 정보패스워드 암호화 키 복호화된 데이터숨겨진 데이터 악성코드
메모리 덤프 방법
하드웨어방식- Tribble
- 시스템에 영향이 적음- 미리 설치되어 있어야 함 .
메모리 덤프 방법
소프트웨어방식- Win32(64)DD
- XP 이후 모든 버전 , 32/64 비트 . - 네트워크 전송기능 지원- 다양한 옵션을 지원 가능- 커뮤니티 버전은 무료 , 프로페셔널버전은 유료 .- Windbg 에서 분석가능
win32dd /d /f memorydump.dmp - Standard Microsoft crash dump.Win32dd /l /f c:\memory.bin - Waiting for a local connection on port 1337.
메모리 덤프 방법
소프트웨어방식- MDD
- 모든 32 비트 지원- 4GB 이상의 램 정보 수집 불가
mdd –o test_mdd.mdd
메모리 덤프 방법
크래시방식- Crash Dump
- BSOD(Blue Screen of Death)- 윈도우가 자동으로 생성- WinDbg 를 통해 디버깅 가능- 크래시덤프 종류
- 작은메모리덤프 - 커널메모리덤프- 전체메모리덤프
메모리 덤프 방법
크래시방식
SessionManager
WinLogon
SaveDump
NtCreatePagingFile
User mode
Kernel mode
Paging file
Memory.dmp
① pagefile.sys 에 메모리 내용 저장
② 시스템 재부팅
③ savedump.exe 프로세스 실행
④ memory.dmp 생성 후 pagefile.sys 에 기록된 내용을 복사
메모리 덤프 방법
크래시방식- 크래시 덤프 강제 생성방법
- PS/2 Keyboard- HKEY_LOCAL_MACHINE\System\CurrentControlSet\
Services\i8042prt\Parameter- USB Keyboard
- HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\kbdhid\Parameter
- CrashOnCtrlScroll 을 새로 만들고 DWORD 값을 0x01 로 설정
- 오른쪽 CTRL + SCROLL 을 두 번 눌러 크래시 발생 가능
메모리 덤프 방법
가상화 방식- VMware
- 가상화 기반 프로그램을 이용한 메모리 덤프 획득- 세션이 일시정지 될 경우 , 메모리의 내용
을 .vmem 파일로 저장
메모리 덤프 방법
절전모드 방식- 윈도우 절전모드
- 윈도우는 절전 모드 (Hibernation) 로 들어갈 경우 물리메모리 내용을 압축하여 c:\hiberfil.sys 파일로저장
- 추가적인 장비가 불필요- 숨김 파일 설정 되어있음 .
메모리 덤프 기술을 이용한 공격 사례
개인 정보 도출 사례
국내 유명 증권사들의 홈트레이딩시스템 (HTS) 이 해킹에 무방비로 노출돼 있지만 당국과 증권사들은 알고도 쉬쉬하는데 급급하다는 지적이 일고 있다 .
홈페이지로부터 다운받은 각 증권사의 HTS 를 다양한 디버거 (Debugger) 툴을 이용해 분석한 결과 ID 도용 · 주문조작 · 데이터 조작 · 타인 계좌로 자금이체 조작 등이 손쉽게 가능한 것으로 나타났다는 지적이 잇따르고 있다 .
증권사의 HTS 가 주식거래를 위해 거치는 본인확인 장치는 증권 게좌번호와 비밀번호 , 공인인증서 , 보안카드 등 4~5 가지다 .
하지만 해커들은 증권 계좌만으로도 곧바로 계좌에 돈이 얼마나 들었는 지 찾아내는 것으로 최근 KBS 실험결과 밝혀졌다 .
메모리 덤프 기술을 이용한 공격 사례
암호화 키 도출- Cryptographic key recovery from Linux memory
dumps 』 Torbjörn Pettersson, 2007 논문에서 리눅스 환경에서 암호화 키 도출
메모리 분석
분석 범위- 주 메모리는 시스템 메인보드의 RAM 을 의미- 메모리 분석은 단순히 RAM 에 저장된 내용을
분석하는 것만은 아님
메모리 분석
가상메모리- Win32 시스템에서 모든 프로세스는 4GB 의 가상
메모리를 할당- 가능한 이유 ? 페이지 파일- 사용자영역 2 GB
- 어플리케이션코드 , 전역변수 , DLL 코드 , 스택- 커널영역 2 GB
- 커널 , 필수 데이터 , I/O 버퍼공간 , EPROCESS 영역
메모리 분석
가상메모리
메모리 분석 - 루트킷 탐지
ActiveProcessList- 환형 이중 링크드리스트 형태의 프로세스 연결정보를
담고 있는 구조체- EPROCESS 커널 오브젝트 이하에서 접근가능 .
메모리 분석 - 루트킷 탐지
메모리 분석 - 루트킷 탐지 -DKOM 방식
메모리 분석 - 루트킷 탐지 -DKOM 방식
커널오브젝트검색- 메모리를 분석하기 위해서는 덤프 이미지에서 커널
오브젝트를 찾아야 함- 커널 오브젝트 검사 방법
- 리스트 워킹- 패턴 매칭
메모리 분석 - 루트킷 탐지 -DKOM 방식
커널오브젝트검색 – 리스트 워킹- 특정한 프로세스 이름을 이용- 덤프 이미지상에서 오브젝트 구조를 이용해 검색가능- ActiveProcessLinks 를 이용해 프로세스 검색
- DKOM 과 같은 은닉기법은 탐지 불가능
메모리 분석 - 루트킷 탐지 -DKOM 방식
커널오브젝트검색 – 패턴매칭- 숨겨진 프로세스라 하더라도 동일한 오브젝트의
구조는 동일하게 존재 - 오브젝트의 구조를 이용하여 패턴을 매칭하여 검색
- DKOM 과 같은 기법 탐지 가능
메모리 분석
전통적인 메모리 분석 기법– 문자열 추출
- 메모리 내무 문자열을 acsII 로 열어 검색- 이메일 , 계정 , 비밀번호 , 어플리케이션 데이터
분석 도구를 이용한 분석 기법- Volatility : https://
www.volatilesystems.com/default/volatility- Memoryze :
http://www.mandiant.com/products/free_software/memoryze/
예제
1. 이메일 계정 암호 추출
예제
1. 이메일 계정 암호 추출
예제
2. FreeBSD - root 계정 및 암호
예제
3. KakaoTalk - 메신저 대화내용
Q&A