[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

+ Recent posts