윈도우 침해사고가 발생하였을 때 수집할 데이터 항목 못지않게 중요한 부분이 수집 방법인데, 수집할 자료를 어떻게 보관하여, 분석을 위해 어떻게 가져갈 것인지를 사전에 정해야 하는데, 크게 수집 경로와 수집 방법이 있다.
수집 경로는 로컬로 저장하는 방법과 원격지로 저장하는 방법등이 있으며, 수집 방법은 이 수집 경로에 따라 변화 하게 된다.
그리고 따로 수집툴을 가지고 다녀야 한다. 문제가 발생한 머신에 저장되어 있는 툴들은 이미 감염되어 정보를 조작하여 보여줄 수 있음을 고려하여야 한다.
그리고 수집데이터는 분석 사건마다 약간시 달라질수 있지만, 대부분의 수집 항목은 비슷하므로, 수집을 위해 사전에 수집 데이터를 스크립트로 만들어 두어야 한다.
만들 때 역시 네트워크 사용이 불가능한 경우와 로컬 사용이 불가능한 경우를 대비해 로컬 저장과 원격지 저장이 가능한 버전등을 고려해, 2×2(32비트와 64비트 운영체제)즉 4가지를 만들것을 추천한다.
그리고 비 휘발성 데이터의 경우, 따로 수집하는 것이 좋다. 이유인즉 용량이 매우 큰경우가 발생할 수 있어, 네트워크에 전송하도록 지정할 경우, 수집에 문제가 발생하면, 더 큰 어려움을 격게 된다. 따라서 상황에 맞게 로컬에 먼저 수집후 전송하거나, 네트워크 드라이브를 이용, 혹은 이동식 디스크를 이용하여도 좋다. 이와 같이 분석하여야하는 서버를 고려해 진행하도록 하자.
필자는 아래와 같이 각 단계별로 나누어 보았다.
기본은 각 사고별 기본적으로 수집해야하는 정보로 구분하였고, 1단계는 레지스트리와 로그 그리고 시스템에서 로드된 파일들 그리고 3단계에는 메모리 덤프를 생성하여 정밀 분석을 하는 방식으로 나누었다. 반드시 이 기준을 따라 수집하라는 것이 아니고(이외에 더 많은 정보가 필요할 수 도 있다.), 아래와 같이 본인에게 알맞은 수집 항목을 사전에 스크립트로 생성해 놓으면 사고 발생시 발 빠르게 대처 할 수 있을 것이다.
기준 |
수집 정보 |
이용 명령/도구 |
기본 |
컴퓨터 이름, 시스템 정보 |
Hostname, Psinfo |
환경 변수 설정 정보 |
Set |
|
계정 정보 |
Wmic useraccount |
|
로그온 세션 |
Psloggedon |
|
예약된 작업 |
Cchtasks /query, at |
|
공유 리스트 |
Wmic share list |
|
공유 연결 정보 |
Net use |
|
네트워크 설정 정보 |
Ipconfig |
|
네트워크로 연결된 세션 |
Tcpvcon |
|
DNS 설정 |
Type c:\windows\system32\drivers\etc\hosts |
|
ARP 정보 |
Arp |
|
라우트 테이블 정보 |
Route print |
|
자동실행 리스트 |
Autorunsc –a |
|
시스템 파일 시그니처 확인 |
Sigcheck –u –e c:\windows\system32 |
|
인터넷 브라우저 주소 입력 |
Reg query “HKCU\SOFTWARE\MICROSOFT\Internet Explorer\TypedURLs” /s |
|
1단계 |
레지스트리, 이벤트 로그 |
Hobocopy C:\WINDOWS\system32\config\* |
사용 Dll 리스트 |
Listdlls |
|
사용 핸들 리스트 |
Handle –a –u |
|
최근 접근 파일 |
Afind –d 1 c: |
|
인터넷 브라우저 히스토리 |
Xcopy “c:\Documents and Settings\%Username%\Local Settings\History\*” |
|
사용한 실행 파일 정보 |
dir %windir%\prefetch\*.pf /b /s | pf –m |
|
2단계 |
메모리 덤프 |
Mdd |
ADS 파일 |
Streams –s c:\ |
|
디스크 덤프 |
dd |
이제 각 수집 위치에 따라서 어떻게 수집하는지에 대해 알아보도록 하자.
원격 저장이 원활하지 않을 경우 로컬 수집이 유용할 것이다. 하지만, 로컬에 저장할 경우 비휘발성 데이터중 디스크데이터에 대한 손상을 감수하여야 한다.
따라서 분석 대상의 저장 공간에 수집은 추천하지 않는 방식이며, 되도록 원격지 혹은 별도의 저장 매체(이동식 디스크, 대용량 USB 메모리등)을 이용하여 진행하기를 바란다.
로컬 수집 방법은 배치 스크립트를 이용한 간단히 기술 할 수 있다.
그럼 지금까지 확인하였던 데이터들을 배치파일로 만든다면 아래와 같이 만들 수 있다.
Hostname > %computername%-%Date%.txt
Date /t > %computername%-%Date%.txt
Time /t > %computername%-%Date%.txt
PsLoggedon -accepteula > %computername%-%Date%.txt
Logonsessions -p -accepteula > %computername%-%Date%.txt
Tasklist /v > %computername%-%Date%-tasklist.txt
Handle /accepteula > %computername%-%Date%-handle.txt
Listdlls /accepteula > %computername%-%Date%-listdll.txt
Sigcheck -u -e c:\windows\system32 /accepteula > %computername%-%Date%-sigcheck.txt
Hfind c:\ > %computername%-%Date%-hfind.txt
AFind c:\ /d 2 > %computername%-%Date%-Afind.txt
ipconfig /all > %computername%-%Date%-ipconfig.txt
route print > %computername%-%Date%-route.txt
promiscdetect > %computername%-%Date%-promiscdetect.txt
netstat -anob > %computername%-%Date%-netstat.txt
net file > %computername%-%Date%-netfile.txt
nbtstat -c > %computername%-%Date%-nbtstat.txt
Tcpvcon /q /accepteula > %computername%-%Date%-tcpvcon.txt
Psloglist -h 24 application /accepteula > %Computername%-%Date%-eventapp.txt
Psloglist -h 24 system /accepteula > %Computername%-%Date%-eventsys.txt
Psloglist -h 24 security /accepteula > %Computername%-%Date%-eventsec.txt
//메모리 덤프는 이후 부터는 구분하여 따로 배치파일로 만드는 것이 좋다.
mdd -o %1\%Computername%-%Date%-Phys.dmp > %Computername%-%Date%-Physmem.txt
Hobocopy.exe “%HOMEDRIVE%\windows\system32\config\ %Computername%-%Date%-Registry
Hobocopy.exe “%HOMEDRIVE%\Documents and Settings\” %Computername%-%Date%-Registry
누차 애기하지만 위 배치 스크립트는 절대적이지 않으며, 용도에 맞는 툴을 사용자가 선정하여 사용하면 되겠다.
'Security' 카테고리의 다른 글
인프라 보안와 침해 대응의 방식 변화 (0) | 2020.11.05 |
---|---|
최고의 .NET / C# 디컴파일러 Decompilers Best TOP3 (0) | 2020.11.04 |
WordPress bypass Google Authenticator plugin (0) | 2020.11.03 |
Powershell Hacking Script and Study (0) | 2020.11.03 |
Tools - 포랜식 증거 확보/분석을 위한 데이터 수집 도구 (0) | 2020.11.03 |