파일(File)
응용 프로그램의 처리 단위로서, 디지털 포렌식 분석의 주요 대상이며, 파일 시스템에 저장되는 기본 단위이고, 이름과 확장자(extensions)를 부여하고, 특히 확장자는 응용 프로그램에서 처리 가능한 파일을 분류하는 역할을 수행한다.
파일 포맷
1. 헤더(Header) : 해당 파일의 타입을 나타내는 시그니처(signature)가 포함되며, 파일의 크기와 메타데이터의 시작 위치 등의 부가 정보가 저장
2. 메타데이터(Metadata) : 사용자가 입력한 데이터를 설명하거나 관리하기 위한 데이터로 응용 프로그램에서 자동적으로 생성
3. 본문 데이터(Body data) : 파일의 본문(Body)을 구성하는 실제 데이터가 저장되는 영역
휘발성 데이터(Volatile data) 수집
침해사고 발생시 전원이 켜져 있는 대상 시스템의 경우, 휘발성 데이터에 중요한 정보인 패스워드, IP주소, 이벤트 로그, 기타 관련 정보 등을
RFC 3227
휘발성 데이터 수집 부분
https://www.ietf.org/rfc/rfc3227.txt
휘발성 데이터 수집 시에는 방대한 양을 수집하기 때문에 명령 쉘을 이용하여(bat) 수집자의 실수나 부주의로 인한 손실을 방지하기 위해 수집을 자동화한다.
대표적인 배치파일 : FPLive_win 배치파일을 참조하여 사용자들이 본인의 상황에 맞도록 수정하여 사용할 것을 권고
http://forensic-proof.com/resources
한글설명 : http://forensic.korea.ac.kr/DFWIKI/index.php/FPLive_win
휘발성 데이터 수집용 미디어는 개봉하지 않은 새로운 데이터 저장용 미디어(ex : SATA 하드디스크)를 사용, 미디어 개봉에 대한 내용을 동영상으로 촬영하여 무결성을 증명하며, 만약 한번 사용한 하드디스크는 하드디스크를 와이핑(wiping)하여 사용해야 함
Wiping : 하드디스크 데이터를 완전히 지워 논리적, 물리적 방법으로 복구가 불가능하게 만드는 프로그램(안티 포렌식), 와이핑 프로그램이라고도 한다.
소프트웨어적인 방법으로 디가우저와 같은 물리적인 파괴 방법보다 시간이 많이 걸리고 보안성도 살짝 떨어진다. 하드디스크를 재활용하려면 이와 같은 방법을 써야한다.
물리적 메모리 획득
물리적 메모리 획득 도구는 무수히 많으며 특정 운영체제에서만 제한적으로 동작하거나 물리적 메모리의 일정 부분만 수집하는 등 도구 특성에 주의
1. FastDump Pro(관리자 권한 필요)
32비트와 64비트 컴퓨터에 대한 메모리 수집이 모두 가능하고, RAM은 64GB까지 수집 가능
메모리 덤프와 함께 페이지 파일 수집 가능
2. DumpIt(관리자 권한 필요)
MoonSols에서 만든, XP 이상에서 실행 가능 x86, x64에서 모두 동작 가능
휘발성 데이터 분석
1 대상 시스템 정보
시스템 날짜와 시간(date /t & time /t)
대상 시스템에서 물리적 메모리의 이미지를 획득한 후 휘발성데이터 수집 시 첫 번째와 마지막에 수집해야 하는 항목은 시스템 날짜와 시간이며, 신뢰할 수
시스템 식별
대상 시스템의 호스트 이름, 현재 사용자, 운영체제 환경 등 시스템 정보 수집
Hostname
Whoami
Ver
Ipconfig /all
네트워크 구성 정보
Vpn이 구성되어 있는지, 네트워크 카드가 promiscuous 모드로 동작하는지 등에 대한 정보를 확인하고 문서화한다.
내가 통신하고자 하는 상대와 ARP 프로토콜을 이용할 때 브로드캐스트를 사용한다.
Promiscuous mode
일반적으로 네트워크 카드의 디바이스 드라이버는 자신이 아닌 다른 mac address로 보내진 이더넷 프레임을 확인하지 않고 폐기하지만, 이를 폐기하지 않고 상위 계층으로 전달하는 모드를 말한다.
PromiscDetect : http://ntsecurity.nu/....
Promiscdetect.exe
Uptime을 이용한 시스템 가동 시간
이어서 4차시 강의를 시작하도록 하겠습니다.
대상 시스템 정보중에 시스템 가동시간
대상 시스템이 재부팅되지 않았다는 사실을 파악하는 것은 메모리의 정보를 확인할 수 있는 동기 부여
시스템 가동 시간(uptime) 강사가 배포한 uptime.exe 파일 활용하기
시스템 환경
Psinfo : PSTools.zip – microsoft 다운로드
Sysinternals 에서 psinfo 설치 가능
Psinfo : 시스템 환경
Psinfo -d : 하드디스크 볼륨 정보 출력
Psinfo -s : 소프트웨어 볼륨 정보 출력
Wul(winupdatesview-x64.zip) http://www.nirsoft.net/utils/wul.html
시스템 환경
Pstools.zip 내에
Psservice : service 정보 출력
PsLoggedOn : 원격 시스템이나 로그인한 사용자 정보 출력
로그인 사용자 정보
Net session(C:/>net session)
서버 컴퓨터의 연결을 관리하는 명령으로 대상 시스템의 모든 session에 대한 정보 출력
컴퓨터 이름과 사용자 이름, 파일 오픈한 사용자 정보, 세션이 연결 유지된 opens idle time 정보 출력
Logonsessions(logonsessions.zip – ms download)
Sysinternals
Netusers.zip
로그인 했었던 사용자 계정 정보 출력
Netusers /local /history
종료하기 전까지 로그인 했었던 사용자 계정 정보를 반환
Netfile
열린 파일 정보
대상 시스템에 원격 로그인으로 열린 파일들에 대한 정보 수집
Openfiles 열린파일 정보
Nbtstat : NetBIOS over TCP/IP 프로토콜 통계, 로컬 컴퓨터와 원격 컴퓨터 모두에 대한 netBIOS 이름 테이블 및 이름 캐시 출력
Arp -a : 대상 시스템과 연결되었던 컴퓨터의 mac address 출력
동일 라우터를 이용한 컴퓨터끼리는 ip주소가 이닌 mac 주소를 이용하여 통신한다.
Arp 프로토콜을 이용해서 통신하고 가져온 ip주소를 뭐시기
Arp
나는 왜 다른 컴퓨터에 연결한 적이 없는데 통신했는가?
라우터와 통신을 해서 외부 라우터로 전송해야하기 때문에 최소한 라우터에 대한 뭐시기는...
Os가 자동적으로 외부와 통신함
Netstat : 대상 시스템과 네트워크 통신하는 서비스의 연결 상태 출력
Netstat -ano
상태 :
LISTENING : 현재 서비스 연결요구를 기다리는 상태로 포트가 열려있음
ESTABLISHED : 다른 컴퓨터와 서로 연결된 상태 (업데이트 서버, 해커 와 연결될 가능성)
TIME_WAIT : 연결은 종료되었지만 다음 연결을 위해 기다리는 상태
CLOSE_WAIT : 원격의 연결 요청을 받고 연결이 종료되길 기다리는 상태
LAST_ACK : 연결이 종료되었고 승인을 기다리는 상태
CLOSED : 연결이 완전히 종료된 상태
SYN_SENT : 클라이언트가 서버에 SYN패킷을 보내고 연결을 요청한 상태
SYN_RECV : 서버가 클라이언트의 SYN 패일으로 요청을 받은 후 응답으로 SYN/ACK패킷을 보내고 클라이언트에게 ACK를 받기 위해 기다리는 상태
Route PRINT : 현재 시스템의 route 설정 내용 출력
URLProtocolView(www.nirsoft.net/utils/url_protocol_view.html)
Zip 파일
활성화된 프로토콜을 찾아 문서화한다.