연구실세미나_20130625_메모리덤프및분석공격

Download Report

Transcript 연구실세미나_20130625_메모리덤프및분석공격

메모리 덤프를 이용한 분석 및 공격 기법 분석
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
Win32dd /l /f c:\memory.bin
- Standard Microsoft crash dump.
- Waiting for a local connection on port 1337.
메모리 덤프 방법
 소프트웨어방식
- MDD
- 모든 32 비트 지원
- 4GB이상의 램 정보 수집 불가
mdd –o test_mdd.mdd
메모리 덤프 방법
 크래시방식
- Crash Dump
- BSOD(Blue Screen of Death)
- 윈도우가 자동으로 생성
- WinDbg 를 통해 디버깅 가능
- 크래시덤프 종류
- 작은메모리덤프
- 커널메모리덤프
- 전체메모리덤프
메모리 덤프 방법
 크래시방식
WinLogon
Session
Manager
Memory.dmp
② 시스템
재부팅
① pagefile.sys에
메모리 내용 저장
③ savedump.exe
프로세스 실행
SaveDump
User mode
④ memory.dmp 생성 후
pagefile.sys에
기록된 내용을 복사
Kernel mode
NtCreate
PagingFile
Paging file
메모리 덤프 방법
 크래시방식
- 크래시 덤프 강제 생성방법
- 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