[Digital Forensic] Live Response (실시간 대응) (2)

 

실시간 대응


(6) Windows 휘발성 정보 수집

 

1) 시스템 시간

  • 포렌식에서 중요한 의미를 가짐

  • 윈도우 명령 프롬프트에서 기본적 지원인 date와 time 명령어로 수집 가능

  • 윈도우 하단에 있는 트레이 패얼의 시간 패널 조작 시에 레지스트리에 기록이 남지만 커맨드 명령어로 수정 시 레지스트리 기록이 남지 않음 

 

[그림 1] 시스템 시간 수집 화면

 

2) 네트워크 연결 정보

  • 휘발성 중에 휘발성이라 할 수 있는 정보

  • 개별적 운영 방화벽 / 방화벽 어플리케이션 존재 시에 해당 정보보다 우선적으로 방화벽 로그의 분석 수행 필요 > 해당 정보는 순간 정보로, 방화벽 정보는 장기간 걸친 정보이기 때문

  • 윈도우 명령 프롬프트의 netstat 명령어로 수집 가능

  • 여러 가지 옵션이 있으므로 테스트 해보는 게 좋음

 

[그림 2]netstat 명령어 결과

 

[그림 3] pslist -t 옵션 실행 결과

 

3) 프로세스 목록

  • 프로세스 분석은 기본 중에 기본으로, 어떠한 이유에서 일어났는지에 대한 근거가 될 수 있음

  • 예로 system32 폴더에 없는 시스템 프로세스나, 부모 프로세스가 될 수 없는 프로세스에 자식 프로세스가 있는 등 이상 현상 탐지 가능

  • 윈도우 명령 프롬프트에서 기본적 지원인 tasklist가 있으며, 다른 도구로 pslist.exe가 있음

  • 둘 다 전체 경로는 나오지 않으며, pslist는 -t 옵션을 주면 트리 형식으로 프로세스 확인 가능 > 부모, 자식 프로세스 관계 직관적 파악 가능

  • GUI 도구로 Process Monitor, Process Explorer 존재

  • GUI는 CLI보다 시스템에 영향을 많이 주지만, 프로세스 전체 경로와 DLL, TCP 동작 등 여러 가지 정보 제공

 

[그림 4] tasklist 명령어 결과

 

4) 핸들 정보

  • 프로세스에 기본적으로 여러 개가 있으며, 핸들이 실제로 가리키는 오브젝트는 레지스트리에 기록됨

  • 수집 시 sysinternals.com에서 만든 Handle.exe 도구 주로 사용

 

[그림 5] Handle.exe 실행 결과

 

5) DLL 목록

  • 침해 사고가 일어난 시스템에서 DLL 인젝션으로 인해 일어난 사고라면, 프로세스 목록 만으로 원인 분석 어려움

  • DLL 목록은 sysinternals.com에서 만든 ListDlls.exe라는 도구 사용

 

[그림 6] ListDlls.exe 실행 결과

 

6) 로그온 사용자 정보

  • 사용 방법으로 net session이라는 명령어와 psloggedon, logonsession이라는 도구 사용

  • net session 경우 원격에서 로그온 한 사용자 정보를 보여 줌 

  • psloggedon과 logonsession 도구는 로컬 로그온 사용자와 원격 로그온 사용자 정보를 보여 줌

  • 더 자세한 정보는 해당 사용자가 실행한 프로세스까지 출력해주는 logonsession이 자세함 (/p 옵션)

 

[그림 7] psloggedon.exe 실행 결과

 

7) 파일 핸들

  • 파일 핸들의 정보를 수집하고 분석함으로써 해당 사용자가 어떠한 행동과 목적이 무엇인지 대략적 파악 가능

  • 명령어로는 net file, 도구로는 psfile이 있음

 

8) Open 포트와 프로세스 맵핑 정보

  • 해당 정보를 수집 / 분석하면 어떠한 프로세스가 어떤 포트로 어떤 서버와 연결하여 어떤 작업을 하고 있는지 파악 가능

  • 분석 시 well-known port라고 하여 모두 믿어서는 안되며(설정으로 변경 가능) 하나씩 자세히 살펴보는 게 좋음

  • netstat -b 명령어가 있으며, 간단한 정보 수집으로 편리하지만, 프로세스 전체 경로를 제공하지 않아 추후 또 다른 작업 필요

 

9) 히스토리

  • 매우 중요하면서 간단한 일이며, 어떠한 행동들을 하였는지 직관적으로 파악 가능

  • doskey/history 명령어가 있으며, 어떠한 명령어를 사용하였는지 보여준다.

  • 명령 프롬프트 창을 닫았을 때는 그 전 정보들이 모두 없어지기 때문에 주의 필요

 

[그림 8] doskey/history 명령어 결과

 

10) 윈도우 서비스 정보

  • 서비스들의 정보 수집 / 분석하여 어떠한 악성 프로그램이 서비스에 등록 되어 몰래 실행 되고 있는지를 판단 가능

  • 도구로 psservice라는 도구가 존재

  • 종종 서비스 설명(DISPLAY_NAME)이 없는 서비스가 있는데 그 서비스는 악성 서비스일 수도 있고 아닐 수도 있음 > 그렇다고 설명 있는 서비스가 꼭 정상 서비스는 아님

 

[그림 9] psservice 실행 결과

 

11) 시작 프로그램 목록 정보

  • 시작 프로그램 목록에 등록된 서비스는 시스템이 시작할 때마다 사용자가 따로 실행하지 않아도 OS에 의해 자동으로 시작되는 서비스를 뜻함

  • 악성 프로그램이나 해커는 이 목록에 악성 프로그램을 등록시키기 때문에 이 목록의 프로세스들은 필수적 분석 필요

  • 도구로는 autorunsc.exe 도구가 있음

 

12) 라우팅 테이블 정보 / 네트워크 인터페이스 정보

  • 라우팅 테이블은 라우터만이 아닌, 개인 PC에도 있으며 이 정보는 손 쉽게 조작 가능하여 네트워크의 데이터 흐름 조절 가능

  • 게이트웨이 등이 내부 PC 등으로 설정되어 있으면 중계 컴퓨터 의심 필요

  • 명령어로는 netstat -r이 있음

  • 네트워크 인터페이스 정보 분석 이유는 MAC의 변조 유무 파악을 위해서이며, 분석 시스템 MAC이 다른 시스템 MAC과 동일하다면 sniffer (promiscuous mode) 기능을 하고 있는 것을 의심 필요 (일반 사용자는 일반적으로 MAC 안 바꿈)

  • 네트워크 인터페이스 명령어로 ipconfig /all이 있고, promiscuous mode 유/무를 파악하려면 promiscDetect 도구 사용 > promiscuous mode 발견 시 WARNING 발생

  • netstat -r 결과에 Persistent Routes 부분은 정적 라우팅 정보 부분으로 NIC이 1개인 경우 불필요한 부분

 

[그림 10] netstat -r 실행 결과

 

[그림 11] ipconfig /all 실행 결과

 

13) 클립보드 정보

  • 복사나 붙여넣기 한 정보들의 저장 정보이며, 시스템 종료 전까지 정보가 유지 됨

  • 어떠한 중요 정보가 나올지 모르므로 필수적 수집 필요

  • XP에서는 clipbrd 명령어를 사용하면 되지만, 이후 버전은 따로 도구 사용 필요

 

14) 네트워크 공유 폴더 정보

  • 내부 네트워크 등에서 공유 폴더가 많이 쓰이며, 분석 시스템이 공유 폴더 사용 시에는 분석 범위를 공유하고 있는 컴퓨터에게 까지 넓혀야 한다.

  • 명령어로는 net use가 있으며, net share 명령어와 다른 점은 net use는 원격 컴퓨터 공유 폴더 목록, net share는 로컬 컴퓨터 공유 폴더 목록

 

[그림 12] net use 실행 결과

 

15) NetBios 정보

  • 데이터를 교환할 때 정하는 이름으로 TCP/IP 프로토콜 사용

  • NetBios를 통해 데이터 교환 시에 상대방 IP와 NetBios 이름을 테이블 형태로 저장, 이것을  Cached NetBios Name Table이라 함

  • 테이블 정보는 600초 동안 유지, 600초가 지나면 자동 삭제 됨

  • 테이블에서 찾고자 하는 컴퓨터 정보가 없다면, 네트워크에 브로드캐스팅 트래픽을 발생시켜 찾고자 하는 컴퓨터를 찾음

  • 명령어로 nbtstat -c가 있음

 

[그림 13] nbtstat -c 실행 결과

 

 

※윈도우 2000이후 NetBios 이름과 DNS 이름은 같도록 설정, 구별 방법

 

   1. DNS 이름은 255자, NetBios는 16자

 

   2. NetBios는 접미사가 붙는데 형태는 이름 뒤에 <>가 붙고, 16진수의 숫자가 <> 사이에 들어감

   예) NetBios <21>

 

 

16) 프로세스 메모리

  • 프로세스는 소스코드와 DLL 파일, 실행 전체 경로 등을 가상 메모리에 업로드하여 동작

  • 프로세스 덤프는 프로세스가 사용하는 가상 메모리를 덤프 하는 것이며, 덤프를 분석하여 좀 더 정확하고 중요한 정보 얻는 것이 가능

  • 방법으로는 userdump.exe 도구가 있으며, 일반적으로 OS에 포함되지 않아 별도 설치 필요

  • 도구 사용 시에 프로세스가 정지 상태여야 정확한 덤프 가능 > 동작 중이면 메모리 내용이 덤프 중 변경 되어 정확도 떨어짐


# Reference 

 

http://www.yes24.com/Product/Goods/8511539

[Digital Forensic] Live Response (실시간 대응) (1)

 

실시간 대응


(1) Live Response 정의

  • 구동되고 있는 시스템에서 휘발성 정보를 수집하는 행위 > 컴퓨터 포렌식 조사 과정 중 하나

  • 범위는 구동되고 있는 시스템에서 수집 가능한 모든 정보 수집 / 분석 ~ 이를 바탕으로 한 사고의 처리까지

  • 예전에는 침해사고 시스템 전원 플러그를 뽑고 하드 드라이브 이미지 복사 > 가장 기본적이고 상식적인 절차

  • 근래는 휘발성 정보의 중요성 인식 > 휘발성 정보를 수집하고 분석하는 쪽으로 연구와 방법론 구성


(2) Live Response 중요성

  • 휘발성 저장장치에서만 찾을 수 있는 정보(흔적)가 있기에 수행 여부는 디지털 포렌식 절차에서 중요

  • 수집한 휘발성 정보 우선적 평가 > 시스템 대략적인 상태 파악

  • 설치된 윈도우 버전, 서비스팩 파악 > 해당 시스템 취약점 목록화

  • 휘발성 정보 해당 취약점 연계 > 조사 범위를 좁혀 수사 시간 절약

  • 금융, 게임, 온라인 쇼핑 회사 등 24시간 운영 서버 컴퓨터에서 매우 유용 > 회사 서버 컴퓨터 종료 시 막대한 금전적 손실 >  Live 상태에서 모든 증거 수집 / 분석 (최우선 과제)

 

  1. 현재 동작 중인 프로세스

  2. 열려 있는 파일 목록

  3. 네트워크 연결 정보

  4. 클립보드

  5. 사용자 정보

  6. 비밀번호

  7. 복호화 된 데이터

  8. 기타


(3) Live Response 수행 여부

 

  • 상황에 따라 다름 > 해야 할 상황 정리 매우 힘듦, 반대로 하지 않아야 할 상황도 알아두어야 함

 

[그림 1] 서버 전원 플러그 제거

 

3-1. 해커나 악성코드 등에 의해 시스템 파일이 삭제되는 경우  

  • Live Response 수행보다는 시스템 전원 플러그 제거

  • 삭제되는 파일이 로그파일일 수도 있지만, 조직에 영향을 미치는 중요한 파일일 수도 있기 때문

 

 

3-2. 조사 수행 도구가 검증되지 않은 도구 경우

  • 주로 공개용 도구 해당, 검증되지 않은 도구 사용 시 시스템에 어떤 영향을 끼칠지 모름

  • 개인 PC 경우에는 본체 뒤 전원 플러그 제거해도 상관 없음

  • 서버 PC 경우에는 전원 플러그 제거 시 서버 어플리케이션들은 장애 대비 능력이 없어 시스템에 심각한 손상 위험이 크므로 정상적 종료 필요


(4) Live Response 원칙

  • 로카르드 교환 법칙 적용 (접촉하는 두 물체 사이에는 반드시 교환이 일어남)

  • 범죄자만 적용되는 것이 아닌 수사관에게도 적용되는 법칙조사관들은 Live Response 수행 시 시스템에 미치는 영향 최소화 필요

  • 수행 시 도구 수행 필요 > 도구가 수행되면서 시스템 영향 미침 > 검증되고 포렌식 특화 도구 사용 권장

 

 

※ Live Response 시스템 구성 요소들이 받는 영향

 

1) 메모리

  • 도구 실행 > 프로세스 생성, 메모리 적재 > 프로세스가 메모리 점유하면서 이전 데이터 덮어 씌움

 

2) 네트워크

  • 사용 도구 네트워크 사용 시 시스템은 소켓 열고 통신 시도

  • 위 과정에서 시스템 방화벽 존재 시 로그가 남고 로그 파일이 쌓이면서 사용하지 않던 하드 드라이브 영역 사용

  • 로그 파일 개수가 설정 개수 초과 시 오래된 로그 삭제 > 중요 로그 정보 지워짐

  • 네트워크 연결은 커널 오브젝트에 의해 관리 되어 커널 테이블 갱신

 

3) 프리패치 파일 (Windows 환경)

  • 윈도우에서 새로운 프로그램 실행 시 생성되는 파일로, 조사관이 사용하는 도구 실행 시 프리패치 파일 생성

  • 최소 클러스터 하나 이상의 비할당 영역을 새로 할당받아 사용 > 윈도우는 하드 드라이브 할당 시 클러스터 단위

  • Windows XP 프리패치 파일 최대 120개 > 개수 초과 시 오래된 파일 삭제 > 중요 파일 삭제

 

4) 레지스트리 (Windows 환경)

  • 많은 Live Response 도구는 레지스트리에 접근하여 그 값을 이용

  • 레지스트리에 마지막 접근 시간 갱신

  • 레지스트리에 어떠한 값 설정 > 레지스트리 키에 대한 마지막 쓰기 시간도 갱신

 

5) DLL (Dynamic Link Library/Windows 환경)

  • 동적 컴파일 시 필요한 파일로, 여러 가지 비슷한 함수들의 모임

  • 조사관 도구가 시스템 DLL 사용 > 파일 마지막 접근 시간 갱신

 

6) 로그 파일

  • 조사관 도구 에러 발생 > 기본적으로 에러 로그 남음 > 악성 오류나 실행, 이벤트 등 로그가 밀려 삭제 위험 가능성

  • 어떤 식으로든 조사관, 해커, 악성 프로그램은 시스템에 영향을 미침

 

 

※ 효과적인 방법

  • 도구 프로그래밍부터 여러 경우 고려하여 도구 제작

  • 여러 가지 도구들을 미리 테스트 > 가장 성능이 좋으면서 영향 최소화 도구 선별 / 사용


(5) 휘발성 정보 수집

 

  • 정확히 표준으로 정해진 것이 없으며, 조사관마다 판단에 의해 절차가 정해져 수집이 이루어짐

 

※ 가이드 라인별 비교표 (많은 조사관들에게 길잡이 역할)

RFC 3227

NIST Special Publication 800-86

레지스터, 캐시

네트워크 연결 정보

라우팅 테이블, ARP 캐시, 프로세스 테이블, 커널 사용 정보, 물리적 메모리

로그온 세션

임시 파일

물리적 메모리

디스크

프로세스 정보

원격 로그인 모니터링 정보

열린 파일

물리적 설정, 네트워크 구성

네트워크 설정 정보

기타 저장장치

 
  • 두 가이드 순서를 100% 의존 X > 주관적으로 정한 것

  • 휘발성 정보 수집 > 윈도우 기본 지원 명령어 사용 / 인터넷에서 검증받은 Live Response 도구 사용하여 수집

  • 도구 사용 위해 대상 컴퓨터의 관리자 권한 필요

 

※ 관리자 권한 올바른 예

  • Runas 라는 윈도우 기본 지원 명령어 사용 (일시적 권한)

 

[그림 2] Runas 명령어

 

※ 관리자 권한 올바르지 않은 예

  • 로그오프 후 관리자 로그인 방법 (해당 세션 휘발성 정보 사라짐)

  • BOF (Buffer Over Flow) 해킹

  • 리눅스 su 명령어 같은 해당 세션 유지 관리자 권한 (윈도우 기준 / 불법 프로그램 가능성 큼)


# Reference 

 

http://www.yes24.com/Product/Goods/8511539

Memory Forensic #25 (GrrCON 2015 #25)

 

메모리 포렌식 25번 문제

 

악성코드가 처음에 설치되었다는 지문을 통하여 악성코드가 유입되는 것을 생각해보면 가장 일반적인 것을 예로 들면 인터넷에서의 다운로드다.

 

인터넷 사용 기록 확인을 위해 volatility를 실행하여 iehistory 플러그인을 사용하여 확인하였다.

 

[그림 1] iehistory 플러그인 사용

 

실행 결과를 확인해보면 C&C 서버로부터 어떤 파일을 다운로드하였는지 확인 가능하다.

 

그리고 iehistory 출력 내용에서 allsafe_update.exe라는 파일 이전에 악성코드와 관련 있는 파일이 존재하지 않기 때문에 해당 파일이 악성코드가 처음에 설치된 파일이라는 것을 확인할 수 있다.

 

따라서 해당 파일 이름을 플래그로 입력하게 되면 문제를 해결할 수 있다.


# Reference

 

http://www.yes24.com/Product/Goods/59156934

Memory Forensic #24 (GrrCON 2015 #24)

 

메모리 포렌식 24번 문제

 

이전 문제와 똑같이 malfind 플러그인을 사용하여 멀웨어인 iexplore.exe를 추출한다.

 

[그림 1] malfind 사용 -> 추출

 

멀웨어가 추출되었으면 strings 프로그램을 사용하여 문자열을 분석한다.

 

 

[그림 2] strings 프로그램 사용

 

텍스트 파일로 변환시키지 않고, dmp 파일을 strings 프로그램을 통하여 문자열을 확인하였다.

 

문자열을 확인하면 마지막에 보이는 exe 파일이 문제에서 제시한 화이트리스트로 정의된 악성코드로 확인된다.

 

따라서 악성코드 이름을 플래그로 입력하면 문제를 해결할 수 있다. 


# Reference

 

http://www.yes24.com/Product/Goods/59156934

Memory Forensic #23 (GrrCON 2015 #23)

 

메모리 포렌식 23번 문제

 

이전 문제에서 iexplore.exe가 멀웨어라는 것을 확인하였다.

 

이 멀웨어의 일반적인 이름을 확인하기 위해 malfind 플러그인으로 멀웨어를 추출한다.

 

[그림 1] malfind 플러그인 사용 -> 멀웨어 추출

 

추출이 완료되면 복구된 파일을 Virus Total 사이트를 통하여 검사한다.

 

Virus Total 사이트 : https://www.virustotal.com/gui/home/upload

 

VirusTotal

 

www.virustotal.com

 

[그림 2] Virus Total 검사 완료

 

검사 결과를 확인해보면 많은 백신 프로그램들이 해당 프로세스를 멀웨어로 탐지한다.

 

많은 이름 중에서 Avast 프로그램의 Dexter라는 명칭이 일반적인 이름으로 확인된다.

 

Dexter : 2012년 12월 전 세계의 POS 시스템을 감염시킨 컴퓨터 바이러스

 

해당 이름을 플래그로 입력하면 문제를 해결할 수 있다.


# Reference

 

http://www.yes24.com/Product/Goods/59156934

'Digital Forensics > CTF-D' 카테고리의 다른 글

[Memory Forensic] GrrCON 2015 #25  (0) 2020.02.24
[Memory Forensic] GrrCON 2015 #24  (0) 2020.02.24
[Memory Forensic] GrrCON 2015 #22  (0) 2020.02.24
[Memory Forensic] GrrCON 2015 #21  (0) 2020.02.24
[Memory Forensic] GrrCON 2015 #20  (0) 2020.02.24

Memory Forensic #22 (GrrCON 2015 #22)

 

메모리 포렌식 22번 문제

 

22번 문제부터 새로운 문제 파일로 진행된다.

 

volatility를 실행하여 메모리 정보를 확인하였다.

 

[그림 1] 메모리 정보 확인

 

메모리 정보를 확인해보면 Windows 7 운영체제에서 사용된 메모리인 것을 확인할 수 있다.

 

멀웨어의 C&C 서버를 알기 위해서 먼저 어떤 것이 멀웨어인지 알아야 한다.

 

알아내기 위해 volatility를 실행하여 malfind 플러그인을 사용하여 확인하였다.

 

 

malfind : 멀웨어로 의심되는 dll이나 exe 파일의 각 프로세스 내부의 쉘 코드를 검색

 

[그림 2] malfind 플러그인 사용

 

여러 파일들이 멀웨어로 확인되지만, 이번 문제의 멀웨어는 iexplore.exe 파일이다.

 

그리고 이 프로세스가 멀웨어이고 현재 네트워크 통신 중이라면 C&C 서버와 통신 중일 것이다.

 

따라서 netscan 플러그인을 사용하여 네트워크 통신 상태를 확인한다.

 

[그림 3] netscan 플러그인 사용

 

실행 결과를 확인해보면 iexplore.exe 프로세스가 네트워크 통신 중이며, C&C 서버의 IP 주소 정보가 확인된다.

 

C&C 서버의 IP 주소를 플래그로 입력하면 문제를 해결할 수 있다.


# Reference

 

http://www.yes24.com/Product/Goods/59156934

'Digital Forensics > CTF-D' 카테고리의 다른 글

[Memory Forensic] GrrCON 2015 #24  (0) 2020.02.24
[Memory Forensic] GrrCON 2015 #23  (0) 2020.02.24
[Memory Forensic] GrrCON 2015 #21  (0) 2020.02.24
[Memory Forensic] GrrCON 2015 #20  (0) 2020.02.24
[Memory Forensic] GrrCON 2015 #19  (0) 2020.02.24

+ Recent posts