본문 바로가기

Kitri_NCS3기 보안과정/디지털포렌식

170427 사고대응과 분석 실습

http://www.woanware.co.uk/forensics/index.html  포렌식 무료 툴 제공


사고대응

< 휘발성 데이터 수집 / 비 휘발성 데이터 수집 / Process 정보수집 >

  • 휘발성데이터 수집 : 전원이 끊어지면 소실되는 데이터

process , Password, IP address, event log 등 악성코드 관련내용이 포함되어 있을 수 있다.

우선순위 고려 , 수집 유의

RFC3227 : 휘발성 데이터 수집시 우선순위 선별조치 가이드라인


※ 휘발성 데이터를 수집할 경우 (증거수집) 무결성 훼손에 주의 해야한다.

메모리 덤프시 

- USB 연결 : Setup APL log 변경( 드라이버인스톨) , event log 남음, redgit 변경 등

- 폴더 오픈 : shell back 등 변경

- 툴 사용 : prefetch 파일 생성, run mru 등 변경 

의 내용이 변경되어 무결성이 소실된다. 

  • process 정보 수집
  • 비 휘발성 데이터 수집

윈도우 시스템은 가상메모리가 있음.(페이지 파일의중요성)

메모리상의 현재 있는거 외에도 기존에 메모리에 있을법한 데이터들을 페이지 파일이 가지고 있다? 예 ) 메신저 대화내용, PW , 네이버 메일의 임시저장, 첨부파일 등이 남는다. (페이지 파일에)

디스크상에서 메일첨부 내용등 웹에서의 activity 내용을 페이지파일에서 가능하게도 해줌(반반)



휘발성 데이터

라이브 대응과 사후 포렌식과정에서 타임라인생성, 로그와 기타 포렌식 아티펙트와 함께 대상시스템을 식별에 활용

메모리덤프 - 통채로 떠와서 분석하기때문에 당연히 시스템정보가 있다. 지금은 메모리덤프가 아닌 선택적으로 파일을 떠오는경우.

<주요 수집대상 시스템 정보>

  1. 시스템 날짜 , 시간 : 처음과 마지막에 수집 / 필수 증명에 사용.
  2. 시스템 식별자 : ID 
  3. 네트워크 구성 : ipconfig, netstat -ano
  4. 서비스 정보 : net start /백도어 확인등에 사용
  5. 시스템 환경 : systeminfo
  6. 기타 : net share [공유이름] :   공유폴더정보 (공유폴더, 1. 보안취약점 2. 허가되지않은 공유폴더 생성시 원격지에서의 접근도                                      기록능,사내 악의적으로 기술을 훔치는 공모자들 색출가능 ) 

   doskey /history 명령 프롬프트에서 이전에 입력한 명령어 리스트 출력 (창이 열러있는 상태에서 유효, 닫으면 없어) 

   schtasks 예약 작업 확인 / 악성코드등의 예약작업을 잡아낼수도 있다.

배치파일 제작해서 씁시다.. 일일히 치지말고!



프로세스 정보수집 

Process에서는 많은 악성코드 표본의 흔적확인가능 ( 웜, 바이러스, 봇, 키로거, 트로이목마 등 )


이름 식별자와 함께 다음과 같은 주요 항목 수집

<주요 수집 항목> - 관련내용과 툴 




비 휘발성 데이터 수집

가용성이 중요한 서버및 시스템에는 동작할때 수집해야됨.

보안구성 평가 - WinUpdateList

(tool - http://nirsoft.net/utils/wul.html )


호스트 파일 획득 - %SystemRoot%\system32\drivers\etc\ 


Prefetch 파일 조사 -  %SystemRoot%\Prefetch 


자동시작 리스트 조사 - AutoRuns

(tool - https://technet.microsoft.com/ko-kr/sysinternals/bb963902(en-us).aspx )


파일 시스템 조사 - HFind 

(tool - https://www.mcafee.com/us/downloads/free-tools/forensic-toolkit.aspx )


레지스트 덤프 - regdump 

(tool - http://download.microsoft.com/download/d/2/5/d2522ce4-a441-459d-8302-be8f3321823c/LogoToolsv1.0.msi)


본생성 : 

풀 디스크 이미징. - 비 휘발성데이터의 수집은 원본데이터에 손상이 가면안됨, 흔적을 남기면 절대안됨. 쓰기방지장치사용

- 옵셔닝 - MD5, sha 해쉬값만떠와라 , 떠와서 한번더 검증해라 등의 옵션

- 배드섹터 - 만나면 이미징 중에 멈춤 , 요즘 듀플리케이터는 스킵하는 옵션이있음.

증거 원본과 사본이 동일여부는 해시값을 비교해보고 확인. (디스크에 대한 full 해시값이 있다고함) 이 해시값을 비교일치검사.

로지컬 이미징 - 개인의 프라이버시를 위해 어떤 특정 자료 ( 수사에 필요한 자료 ) 를 수집할때 필요 키워드를 사용해서 그 부분만 수집



메모리 포렌식

- 메모리상의 덤프파일 분석(휘발성 데이터 대상)

- 메모리포렌식으 주된 목적은 악성코드와 직접적으로 관련이 되어있는 데이터를 추출하고 어떠한 이벤트가 발생했는지, 악성코드가 어떻게 설치 됬는지와 같은 맥락정보를 식별하는데 있다.


도구로 확인하는 정보

Volatailty 

: 수집툴이 아닌 분석툴. (수집은 임의 적으로)

 숨겨져 있거나 종료된 Process를 포함한 Process와 Thread 정보를 수 집하고, 상세 분석을 바탕으로 어떤 Process가 악성코드와 연관되어있는지 분석

cheat sheet : https://digital-forensics.sans.org/media/memory-forensics-cheat-sheet.pdf

관련 Volatility 플러그인 정보 

  • psscan: 전체 Process 구조체를 카빙
  • pslist: 동작중인 Process 목록 확인
  • psdiff: psscan과 plist 목록을 비교 
  • dlllist: 해당 Process에 로드된 DLL목록 확 인 
  • csrpslist: Process의 세부 정보를 추출 해 숨겨진 Process 확인
  • modules: 시스템에서 동작 중인 모듈 목록 제공 
  • driverscan: 특정 드라이버 객체를 메 모리에서 검색 
  • moddump: 특정 모듈에 대해 실행 파일 포맷 형태로 파일을 추출 
  • dlldump: 메모리 덤프에서 특정 DLL추출

Responder 
: 위험도를 가시적으로 보여줌, 유료 툴



하드디스크 포렌식

  컴퓨터의 하드디스크에는 악성코드, 레지스트리, 로그 파일 같 은 악성코드의 흔적뿐만 아니라, Prefetch와 같은 실행 또는 조작여부 를 알 수 있는 다양한 정보가 존재


알려진 코드 검색 

: Rootkit / Sniffer (tool - http://www.nirsoft.net/utils/hash_my_files.html)


설치된 프로그램 조사 

: Program files폴더 하부 및 레지스트리에서 설치된 목록 확인 , 의심 프로그램 등 탐지


실행파일 점검

확장자변경- 파일 헤더값의 분석은 라이브러리가 하는데, 고유 헤더값이 있다. 알려진 exe(악성 실행파일) 파일들도 헤더값의 시그니쳐를 보고 판단한다. 

패킹 : 못보게 캡슐링함, 인코딩,압축 등 ( 악의적으로 압축을 중첩해서 분석에 지장을 주는 경우도 있다. )

ADS(대체 데이터 스트림) : 다른 파일이나 폴더의 대체 데이터 스 트림에 존재하는 실행파일을 찾는다.


서비스, 드라이버, 자동실행위치, 예약된 작업점검 

: 악성코드는 재부팅후에도 실행될 수 있도록 서비스 ,드라이버 , 예약된작업 같은 다양한 루트에 적용한다.

- 예약된 작업 : %SystemRoot%\Tasks 폴더 내에 예약된 작업을 조

- 서비스 : 악성코드는 보통 새로운 서비스로 자신을 등록하거나, 기존 서비스에 자신을 추가

- 자동실행 : 오토런을 정지시키고 회피하는 공격도 있다. 


로그조사

- 윈도우 이벤트 로그 : 보안 이벤트 로그 기록 (setup ALP 등 드라이버 셋업 이벤트 로그)

- 웹 브라우저 히스토리 : explorer - dlt 파일 / web cache dlt 파일 

※ dlt 파일을 못뜨게 시스템이 잡는데 덤프뜨는 툴중에 시스템을 죽이고 떠오는 클리닝방식? 사용 하는 툴도 있다고함.

- Desktop 방화벽 로그 


사용자 계정과 로그인 활동 검토

: 감염된 시스템에 새로운 비인가 계정, 패스워드 없는 계정 , 관리자 그룹에 추가된 계정 확인등 ...

- 비인가 계정 생성 

- 관리자 그룹 : 있어선 안되는 관리자 계정이 있는가 ?

- 취약한 패스워드

 

레지스트리 조사

: 운영체제 내에서 작동하는 모든 하드웨어, 소프트웨어, 사용자 정보 및 시스템 구성요소 등을 담고있는 데이터베이스

레지스트리 구성

◎ HKEY_CLASSES_ROOT

• 파일 확장자에 대한 정보, 각 파일과 프로그램간의 연결에 대한 정보, 마우스 오른쪽 단추의 등록 정보 등 

• 모든 형식의 파일 확장자가 서브키 형태로 구성 

• HKLM\SOFTWARE\Classes키에 동일하게 저장되어 두 곳이 연동됨

 HKEY_CURRENT_USER

• 현재 로그인중인 사용자들에 대한 등록 정보 (사용자 배경화면, 디스플레이 설정이나 단축 아이콘 정보 등) 

• 응용 프로그램의 우선 순위, 보안 접근 허용 여부 

◎ HKEY_LOCAL_MACHINE

• 하드웨어 구성 초기화 파일, 제어판과 밀접 

• 사용중인 하드웨어 및 소프트웨어에 대한 정보 

• 로그온 한 사용자와 관계없이 컴퓨터에 등록된 모든 사용자에게 동일

 HKEY_USERS

• 이전 사용자 초기화 파일을 보관 

 두 키 사이가 겹치면 HKEY_CURRENT_USER가 우선

 HKEY_CURRENT_CONFIG

• 현재 사용중인 윈도우의 디스플레이(화면 글꼴이나 해상도)정보와 프린터 관련 정보 

• HKLM\Config 키의 내용과 같음



윈도우 레지스트리 조사

사용자 계정확인

 HKLM\SOFTWARE\Microsoft\CurrentVersion\ProfileList 

: 이하에 각 사용자에 대한 Profile 정보가 포함

 HKLM\SAM\Domains\Users\ 

:  User Name, 로그온 횟수, 패스워드 변경시간 등을 확인

F → 최종 로그온시간, PW 설정시간, 횟수 등

V → 유저의 기본정보, SID 값, 이름


최근열어본 문서

 HKCU\Software\Microsoft\Windows\Current 

 Version\Explorer\RecentDocs 

: Windows Explorer를 통해서 최근에 Open된 파일의 목록을 기록하고 있음 

 파일 확장자로 구분되어 있으며, “Folder”는 최근에 Open한 파일의 폴더 목록 을 유지함

 office 등에도 Temp 파일이 남기때문에 확인가능

자동 실행 프로그램 (autoruns)

• HKEY_USERS\SOFTWARE\Microsoft\Winodws\CurrentVersion\Run

• %SystemRoot%\System32\Tasks\

: 컴퓨터 재부팅후 자동으로 실행되는 프로그램 리스트

설치된 프로그램

• HKEY_USERS\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\

• HLKM\SOFTWARE\Microsoft\Winodws\CurrentVersion\Uninstall\

• HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\

: 제어판에서 삭제를 해도 레지스트리에 키값이 남는다. 

최근실행명령어

• HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU

: [시작] → [실행] 에서 수행한 명령어

컴퓨터정

• HKLM\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\

포트에 가장 처음에 들어가야될 부분 분석대상 PC 의 정보. 

OS 설치 날짜의 중요성 ? : 보안취약점, 악의적인 행동을 회피하기위한 행위를 구분하기위한 단서가됨. 정밀분석의 대상.


기타 포렌식 분석 >>


Prefetch파일(실행프로그램 확인)

 (WinPrefetchView - tool : http://www.nirsoft.net/utils/win_prefetch_view.html)

응용 프로그램 실행정보. 응용프로그램의 원할하고 신속한 실행을 위해 사용,,, 이지만 포렌식의 단서 분석데이터로 사용 할 수 있다.

‘%systemroot%\Prefetch’에 .pf 확장자로 저장됨 


외장형 저장장치 분석 

(USBDeviceForensics - tool : http://www.woanware.co.uk/forensics/usbdeviceforensics.html)

USB는 가장 흔하게 조사되는 대상. 

USBSTOR 에서 확인가능 

HKLM\SYSTEM\ControlSet00x\Enum\USBSTOR 

- USB장치 정보 저장 

- Device Class ID: Disk&Ven(제조사)_XXX&Prod(제품명)_YYY&Rev(버전)_ZZZ 

- XXX(Vender), YYY(Product), ZZZ(Version) 

- HLKM\SYSTEM\MountedDevices를 참조하여 어떤 USB 장치가 어떤 드라이브(C:, D:등)에연결되었는지 확인가능

서브스토리지 등을 사용해서 보안설비된 장치에서 아무것도없는 서브 스토리지로 데이터를 그냥 가져올수도 있기 때문에 마운트를 확인해야한다.

조금씩 값이 다른 이유는 pc에 있는 포트가 여러개인 것과 관련이 있다.


연결기록

‘%SystemRoot%\System32\winevt\Logs\’ 폴더에 존재하는

‘Microsoft-Windows-DriverFrameworks-UserMode%4Operational.evtx’

: 이벤트 로그 분석을 통하여 외장형 저장장치의 연결/해제 관련 로그 확인(win7)


SID

: 시스템 고유 숫자를 이요하여 장치의 연결이력을 확인 할 수 있다.

 외장형 저장장치 및 HDD가 다른 윈도우 시스템에 연결될 경우 해당 시스템의

SID 값으로 휴지통 폴더가 생성된다.

휴지통 폴더 정보를 통해 장치의 연결 기록을 확인할 수 있다.




인터넷 사용이력 

- IE 9이전 - Index bat Analyzer : http://www.systenance.com/indexdat.php

- IE 10이후 : ※ 파일 경로(User\사용자명\AppData\Local\Microsoft\Windows\WebCache\WebCacheVXX.dat)

: esedbViewer - tool : http://www.woanware.co.uk/forensics/esedbviewer.html



히스토리정보

캐시정보

쿠키정보

-- > 프라이버시 기능으로 인해 안남음.



실습 

FTK 로 덤프한 이미지에서 분석할 SYSTEM , SAM , SOFTWARE

root \ windows \ system32 \ config

USER의 NTUSER.DAT 

root \ windows \ user \ [user name]


다음 표의 정보를 분석하라

추출한 파일을 Registry Viewer 를 사용하여 분석 실시

1. 운영체제 / 설치시간 / 등록된 사용자 / 시스템 루트 : • HKLM\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\

2. 사용자 계정 :  HKLM\SOFTWARE\Microsoft\CurrentVersion\ProfileList 

    • HKLM\SAM\Domains\Users\ 

3. 설치된 프로그램 : 

• HKEY_USERS\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\

• HLKM\SOFTWARE\Microsoft\Winodws\CurrentVersion\Uninstall\

• HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\

4. 자동실행 프로그램 : 

• HKEY_USERS\SOFTWARE\Microsoft\Winodws\CurrentVersion\Run

• %SystemRoot%\System32\Tasks\

5. 최근 실행 프로그램 : 

%systemroot%\Prefetch

6. 최근 열어본 문서 : 

 HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs 

여기선 비어있는 모습. 내용이 없다. 


7. 연결된 외부장치:

HKLM\SYSTEM\ControlSet00x\Enum\USBSTOR 

8. 최근실행 명령어 : 

• HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU

9. 접속한 웹사이트 : 

 User\사용자명\AppData\Local\Microsoft\Windows\WebCache\WebCacheVXX.dat


결과