2015년 12월 26일 토요일
2015.12.27 영어회화
I'll take it (something) out of my locker. ~로 부터 꺼낼게요.
Do you happen to (혹시) have a phone(뽄) charger? 혹시 충전기 있으세요?
알유 기빈잇 투미? are you giving it to me? 나한테 주는거에요?
잇 심스라잌 뉴원 it seems like new one. (새것 같아요.)
마이 베러리 이즈 러닝 아웃럽 파워 My better is running out of power. (베터리가 다떨어져가요)
더 웨더 이즈 퍼팩트 포어 피잌닉 the weather is perfect for our picnic.
홀던 hole on (잠깐만)
I will ask her out. 나 데이트 신청한걸야
He broke up with her 그녀와 해어졌어
I want to go out with her. 그녀와 사귀길 원해
are you going out with him? 그와 사귀냐?
2015년 12월 23일 수요일
사고조사 방법론
근무 외 시간에 외부 IP로 접근
1. 업무 외 시간 접근 정보 : 주말, 휴일, 근무 외 시간
2. 외부 IP 접속 여부
3. 사용 단말기 정보 : 어떤 PC를 사용했나? Mac이 확인 가능한가?
4. 출입 카드 : 업무 외 시간에 회사에 있었는가?
1. 업무 외 시간 접근 정보 : 주말, 휴일, 근무 외 시간
2. 외부 IP 접속 여부
3. 사용 단말기 정보 : 어떤 PC를 사용했나? Mac이 확인 가능한가?
4. 출입 카드 : 업무 외 시간에 회사에 있었는가?
2015년 12월 17일 목요일
해킹 방어 전략
1. VirusTotal Site 활용
- 세계 대표적인 멀티 백신을 통해서 악성코드 감염 여부 진단함
- 보통 기업은 비용 및 성능을 이슈로 1개의 백신을 선택하여 사용하므로
해당 백신을 타겟으로 점검 패턴을 우회해서 들어오면 대응이 불가함
- 따라서 멀티 백신을 통해 점검이 가능한 Site를 통해서 주요 확장자에 대한 감염 여부를
점검하면 악성코드 감염 여부를 쉽게 진단 할 수 있을 것이다.
- 해킹은 주요 시스템 파일의 확장자로 은닉하여 파일이 설치 되므로 주요 확장자나 파일 명을 정의하고 주기적으로 점검해볼 필요 성이 있음
2. 패스워드 관리
- 패스워드 복잡성을 유지하며, 해쉬 코드를 수집하여 역으로 크랙이 가능하므로 해쉬 보간을 Salt를 적용하여 저장하다.
- 패스워드에 대해서는 정기적으로 기존 패스워드가 쉽게 크랙이 가능한지 크랙 툴로 분석하여 복잡성에 대한 점검이 필요하다.
2015년 12월 6일 일요일
20151207_영어_회화
I was wondering if you could ~ ~ 해주실수 있는지 궁금합니다. (요청,부탁)
I was wondering if I could ~ ~ 해도 될지 모르겠습니다. (허락을 구함)
How can I get there? 어떻게 거기 가요?
Can you tell me where the station is located? 역이 어디에 있나요?
2015년 12월 3일 목요일
20151125_영어_회화
있다. 표현
You've got 유브She's got 쉬즈 (has)
They've got 데이브
It's got 잇츠 (has)
머리 아파
I've got a headache 아브가러 해잌
She's got a headache
야 너 오고 있냐? Are you coming?
곧 갈게요 I'm coming.
나 가는 길이야 I'm on my way.
너 아직 근처 안왔어? Are you getting close yet?
거의 다왔어 I'm almost there.
2015년 11월 23일 월요일
20151124_영어_회화
Why don't you come over to my place?
I'm so lazy for that (아이 귀찮아)
as long as they haven’t been used, you can exchange them for another pair.
~하는한, 해브은
as you all know, I am a people person.
사교적인 사람
So tell me about you.
I was 13 when they found it (cencer)
Pretty much 꽤 the worst case scenario. 프리리
Not much they can do, but they didn't stop it. 할 수 있는게 없어
What's wrong with you? 도대체 너 왜 그래? 제정신이 아닌가봐
Why is it? 그거 왜 그래요? (사실)
Stop whinning (와이닝) 징징 거리지마
2015년 11월 22일 일요일
SQL Injection 이란?
* 이 글을 보고 악용할 시 생기는 피해의 책임은 저에게 없음을 알립니다.
SQL Injection 이란?
SQL Injection 은 단어 그대로 SQL 을 Injection(주입) 하는 웹 해킹 기법이다.
SQL 란 데이터베이스를 구축하고 활용하기 위해 사용하는 언어가 바로 SQL이다.
SQL Injection 기본 원리
우리가 흔히 알고있는 네이버, 다음, 구글, 네이트, 줌 등등 90%의 사이트는 DB를 갖추고 있다.
이때 DB에 데이터를 추가, 수정, 삭제를 하기 위해서 SQL를 이용하는데 SQLi (SQL Injection)로
위 내용을 역으로 이용해서 사용자단(Client)에서 DB의 데이터를 추가, 수정, 삭제. 즉 열람이 가능하게 한다.
SQL Injection 의 간단한 예
사용자가 로그인을 시도하면 아이디와 패스워드의 값이 PHP를 지나 sql문에 담겨 DB로 전송이 된다.
'select * from members where id = '[id]' and pwd = '[pw]' ' 이렇게 생긴 로그인을 담당하는 sql가 있다.
관리자의 아이디는 admin 이라고 치고 간단한 가상 SQL injection 을 해보자.

위처럼 생긴 로그인창이 있다고 가정하자.
관리자의 아이디는 admin 이라고 한다.

이렇게 어드민을 대입해주자.
근데 비밀번호를 모른다, 하지만 이 로그인 창의 가장 취약한 취약점은 쿼리 전송방식이다.
select id from [table_name] where id='' and pw='' 이렇게 쿼리문이 있다면
나는 지금 id부분에 admin 을 넣었다. 그러면 id에는 'admin' 이 들어간다.
select id from [table_name] where id='admin' and pw=''
위에서 말했듯이 패스워드를 모른다. 나는 pw가 무조건 참으로 처리되도록 질의문을 보낼것이다.
id = admin 이후에 것을 모두 주석처리해버린다면 어떻게 될까?

이렇게 한다면
select id from [table_name] where id='admin'--' and pw=''
위 처럼 id 뒤에부터 모두 주석처리가 되어 버린다.

(가짜) 관리자 로그인 성공 사진.PNG
SQL Injection 는 주로 어디서 발생하나?
사실 위 예제처럼 막 ID부분에 '-- 를 대입한다고 로그인이 슝슝 되지는 않는다.
SQL Injection 의 발생 이유는 질의문을 확인하지 않고 바로 서버로 넘겨서 발생하는 취약점인데
로그인창같은 이용자에게 바로 눈으로 보이는곳 보단 url 뒤에붙는 파라미터에서 주로 발생한다.
예를 들어서 abc.com 이란 사이트가 있고 p라는 파라미터를 받고 게시글의 내용을 띄워준다고 가정하자.
abc.com/index.php?p=1
위는 파라미터에 1을 전달해주고 게시글의 내용을 잘 띄워주는 정상적인 URL 이다. 하지만
abc.com/index.php?p='
위는 싱글쿼터를 넣어줬다. 이렇게 되면 db에 있는 게시글의 내용을 가져올때
싱글쿼터로 인해서 sql 전달에 문제가 발생하게 되면서 SQLi 취약점이 발견될 수 있다.
2015년 11월 20일 금요일
(이벤트로그) USB 접속, 해제 로그 확인
이번 시간에는 Windows 이벤트 로그를 활용하여 USB 접속 흔적을 분석해 보겠다.
USB 접속의 경우, Registry를 통해서도 가능하지만 마지막 접속 시간만 확인 가능하여 제한적이다.
하지만 Event Log의 경우, 매 접속 시간을 확인이 가능하므로 분석에 보다 용이하다.
프로그램 실행에서 eventvwr을 치고 뷰어 화면에 들어간 뒤 응용프로램의 Microsoft 하위 폴더를 뒤지면 (Microsoft-Windows-DriverFrameworks-UserMode)를 찾아 들어 갈 수 있다.
또는 아래 위치를 접속하여 분석해 보자
USB 접속의 경우, Registry를 통해서도 가능하지만 마지막 접속 시간만 확인 가능하여 제한적이다.
하지만 Event Log의 경우, 매 접속 시간을 확인이 가능하므로 분석에 보다 용이하다.
프로그램 실행에서 eventvwr을 치고 뷰어 화면에 들어간 뒤 응용프로램의 Microsoft 하위 폴더를 뒤지면 (Microsoft-Windows-DriverFrameworks-UserMode)를 찾아 들어 갈 수 있다.
또는 아래 위치를 접속하여 분석해 보자
- %SystemRoot%\System32\winevt\Logs\Microsoft-Windows-DriverFrameworks-UserMode%4Operational.evtx
위 로그가 기본적으로 분석하려면 Event 로깅을 걸어야 한다. Win7의 경우 Default로 설정 되어 있는나 Win8의 경우 별도로 옵션을 설정해야한다.
이벤트 로그는 컴퓨터 시작, 종료 시점 등 여러모로 활용점이 많다.
해당 로그에 대해서 사용 가능한 옵션을 정리하고 필요한 Size를 정하여 회사 정책으로 내리는 전략이 필요하다.
다음시간에 전체 Event만 놓고 분석하는 시간을 가져야 겠다.
파일 시스템 클러스터 크기
NTFS, FAT 또는 exFAT를 하드 디스크 파티션 (볼륨)을 나타낼 수 있습니다. 다음 방법 중 하나는 파티션을 포맷 하는 데 사용 됩니다 때 기본값이 Windows에서 사용 됩니다.
기본적으로 Windows NT 4.0 및 이후 버전의 Windows NTFS의 최대 클러스터 크기는 4 킬로바이트 (KB)입니다. 이것은 더 큰 클러스터 크기를 가진 드라이브에 NTFS 파일 압축 불가능 하기 때문 에입니다. Format 명령을 특별히 기본 설정을 재정의 하는 경우 4KB 보다 큰 클러스터를 사용 하지 않습니다. Format 명령 함께 /a: 스위치를 사용 하 여 또는 Windows 탐색기의 포맷 대화 상자에서 더 큰 클러스터 크기를 지정 하 여 수행할 수 있습니다.
FAT 파티션을 NTFS로 변환 하려면 Convert.exe 유틸리티를 사용 하는 경우 Windows 항상 원래 FAT 클러스터 크기를 사용 클러스터에 대 한 NTFS 클러스터 크기는 4 KB 최대 크기를 합니다. FAT 클러스터 크기가 4KB 보다 큰 클러스터 4KB NTFS로 변환 됩니다. 즉, FAT 구조가 클러스터 경계에 정렬 됩니다. 따라서 더 큰 클러스터 크기 함수 변환할 수 없습니다. 참고 또한 Windows NT 3.5, 3.51에서 때 고 4.0 설치 파티션이 먼저 FAT로 포맷 이며 이므로 클러스터 크기는 또한 항상 설치 프로그램에서 파티션을 포맷할 때 앞에서 설명한 대로 NTFS로 변환 합니다.
참고: 별표 (*)는 마스터 부트 레코드 (MBR)의 제한으로 인해 지원 되지 않음을 의미 합니다.
참고: 별표 (*) 미디어 섹터 크기가 512 바이트 보다 큰 경우에 사용할 수 있다는 것을 의미 합니다.
- 클러스터 크기를 지정 하지 않고 명령줄에서 FORMAT 명령을 사용 합니다.
- 포맷 대화 상자의 할당 단위 상자 때 Windows 탐색기에서 볼륨을 포맷 기본 할당 크기를 나열 합니다.
기본적으로 Windows NT 4.0 및 이후 버전의 Windows NTFS의 최대 클러스터 크기는 4 킬로바이트 (KB)입니다. 이것은 더 큰 클러스터 크기를 가진 드라이브에 NTFS 파일 압축 불가능 하기 때문 에입니다. Format 명령을 특별히 기본 설정을 재정의 하는 경우 4KB 보다 큰 클러스터를 사용 하지 않습니다. Format 명령 함께 /a: 스위치를 사용 하 여 또는 Windows 탐색기의 포맷 대화 상자에서 더 큰 클러스터 크기를 지정 하 여 수행할 수 있습니다.
FAT 파티션을 NTFS로 변환 하려면 Convert.exe 유틸리티를 사용 하는 경우 Windows 항상 원래 FAT 클러스터 크기를 사용 클러스터에 대 한 NTFS 클러스터 크기는 4 KB 최대 크기를 합니다. FAT 클러스터 크기가 4KB 보다 큰 클러스터 4KB NTFS로 변환 됩니다. 즉, FAT 구조가 클러스터 경계에 정렬 됩니다. 따라서 더 큰 클러스터 크기 함수 변환할 수 없습니다. 참고 또한 Windows NT 3.5, 3.51에서 때 고 4.0 설치 파티션이 먼저 FAT로 포맷 이며 이므로 클러스터 크기는 또한 항상 설치 프로그램에서 파티션을 포맷할 때 앞에서 설명한 대로 NTFS로 변환 합니다.
Ntfs의 기본 클러스터 크기
다음 표에서 ntfs의 기본 클러스터 크기를 설명합니다.볼륨 크기 | Windows NT 3.51 | Windows NT 4.0 | Windows 7, Windows Server 2008 R2, Windows Server 2008, Windows Vista, Windows Server 2003, Windows XP, Windows 2000 |
---|---|---|---|
7MB-512 MB | 512 바이트 | 4 KB | 4 KB |
512MB-1GB | 1KB | 4 KB | 4 KB |
1GB-2GB | 2 KB | 4 KB | 4 KB |
2GB-2TB | 4 KB | 4 KB | 4 KB |
2TB-16 TB | 지원 되지 않습니다 * | 지원 되지 않습니다 * | 4 KB |
16TB-32 테라바이트 | 지원 되지 않습니다 * | 지원 되지 않습니다 * | 8 KB |
32 TB – 64 TB | 지원 되지 않습니다 * | 지원 되지 않습니다 * | 16 KB |
64 TB – 128 TB | 지원 되지 않습니다 * | 지원 되지 않습니다 * | 32KB |
테라바이트 128-256 TB | 지원 되지 않습니다 * | 지원 되지 않습니다 * | 64 KB |
> 256 TB | 지원 되지 않음 | 지원 되지 않음 | 지원 되지 않음 |
참고: 별표 (*)는 마스터 부트 레코드 (MBR)의 제한으로 인해 지원 되지 않음을 의미 합니다.
F a t 16에 대 한 기본 클러스터 크기
다음 표에서 f a t 16에 대 한 기본 클러스터 크기를 설명합니다.볼륨 크기 | Windows NT 3.51 | Windows NT 4.0 | Windows 7, Windows Server 2008 R2, Windows Server 2008, Windows Vista, Windows Server 2003, Windows XP, Windows 2000 |
---|---|---|---|
MB 7-8 MB | 지원 되지 않음 | 지원 되지 않음 | 지원 되지 않음 |
8MB-32MB | 512 바이트 | 512 바이트 | 512 바이트 |
32 MB-64 MB | 1KB | 1KB | 1KB |
64MB-128MB | 2 KB | 2 KB | 2 KB |
128-256 MB | 4 KB | 4 KB | 4 KB |
256MB-512 MB | 8 KB | 8 KB | 8 KB |
512MB-1GB | 16 KB | 16 KB | 16 KB |
1GB-2GB | 32KB | 32KB | 32KB |
2 GB-4 GB | 64 KB | 64 KB | 64 KB |
4 GB-8GB | 지원 되지 않음 | 128 KB * | 지원 되지 않음 |
8 GB-16GB | 지원 되지 않음 | 256 KB * | 지원 되지 않음 |
> 16GB | 지원 되지 않음 | 지원 되지 않음 | 지원 되지 않음 |
F a t 32에 대 한 기본 클러스터 크기
다음 표에서 f a t 32에 대 한 기본 클러스터 크기를 설명합니다.볼륨 크기 | Windows NT 3.51 | Windows NT 4.0 | Windows 7, Windows Server 2008 R2, Windows Server 2008, Windows Vista, Windows Server 2003, Windows XP, Windows 2000 |
---|---|---|---|
7MB – 16 MB | 지원 되지 않음 | 지원 되지 않음 | 지원 되지 않음 |
16MB-32MB | 512 바이트 | 512 바이트 | 지원 되지 않음 |
32 MB-64 MB | 512 바이트 | 512 바이트 | 512 바이트 |
64MB-128MB | 1KB | 1KB | 1KB |
128-256 MB | 2 KB | 2 KB | 2 KB |
256MB – 8 GB | 4 KB | 4 KB | 4 KB |
8 GB-16GB | 8 KB | 8 KB | 8 KB |
16GB-32GB | 16 KB | 16 KB | 16 KB |
32GB-2TB | 32KB | 지원 되지 않음 | 지원 되지 않음 |
> 2 테라바이트 | 지원 되지 않음 | 지원 되지 않음 | 지원 되지 않음 |
ExFAT에 대 한 기본 클러스터 크기
다음 표에서 exFAT에 대 한 기본 클러스터 크기를 설명합니다.볼륨 크기 | Windows 7, Windows Server 2008 R2, Windows Server 2008, Windows Vista, Windows Server 2003 (영문) |
---|---|
7MB-256 MB | 4 KB |
256MB-32GB | 32KB |
GB-256 TB | 128 KB |
> 256 TB | 지원 되지 않음 |
https://support.microsoft.com/ko-kr/kb/140365
2015년 11월 16일 월요일
파일시스템과 파일 복구 원리
파일 시스템과 파일 복구 - 파일 시스템에 구조와 파일 시스템에서의 주소 지정방식, 클러스터, 발생 가능한 슬랙 공간
파티션과 MBR의 개념, 구조와 확장 파티션
FAT 파일 시스템의 예약 영역, FAT 영역, 데이타 영역 내용을 확인함
NTFS 에 대한 기본 내용과 NTFS 특징인 USN 저널, ADS, Sparse 파일, 파일 압축, EFS, VSS, Quotas, 유니코드 지원, 동적 배드 클러스팅 재할당에 대한 확인
NTFS구조와 VBR, MFT 내용과 주고를 확인
파일 시스템 이해
생성된 데이터를 관리하기 위해 기록물을 적당한 위치에 보관하여 쉽게 접근할 수 있도록 분류, 체계화(windows FAT, NTFS)
운영체제는 독자적인 파일시스템을 사용하며 유사한 추상화된 구조를 가짐
메타영역(파일 관리를 위한 이름, 위치 크기들의 기록), 데이타 영역(파일의 내용이 기록됨)
CHS(Sylinder-ead-Sector) 실린더(Cylinder), 헤드(Head), 섹터(Sector)를 의미
LAB(Logical Block Addresses) 디스크의 마지막 섹터까지 순차적으로 주소를 지정
클러스터(Cluster) - 여러개의 섹터를 묶어서 한번에 처리 ex) 4MB 파일은 4KB의 클러스터의 경우 1024번, 512btye 클러스터는 8192번의 입출력 명령 수행
슬랙공간(Slcack Space) - 물리적인 구조와 논리적인 구조의 차이로 발생하는 낭비 공간, 정보은닉이 가능함
램 슬랙(RAM Slack) - 512바이트씩 기록되는 특성 떄문에 발생하는 공간으로 섹터 슬랙(Sector Slack)이라고 함.
파일 슬랙(File Slack) - 램슬랙을 제외한 나머지 부분으로 드라이브 슬랙(Drive Slack)이라고도 함
파일 시스템 슬랙(File System Slack) - 클러스터 크기의 배수만큼 사용하고 끝 부분에 생긴 남은 부분
볼륨 슬랙(Volume Slack) - 전체 불륨 크기와 할당된 파티션 크기의 차이로 발생
파티션과 MBR
파티션(Partition)- 사용용도 별로 논리적으로 분할하여 개별 공간으로 사용
Boot Record - 파티션의 크기, 위치, 설치된 운영체제 정보를 담고 있는 영역
MBR(Mast Boot Record) - 부트코드(445Byte), 파티션 테이블(64Byte), 시그니처(2Byte)
확장 파티션(Extended Partition) - MBR 영역에서 64바이트로 총 4개만 파티션을 분할 할수 있어 이러한 한계극복을 위해 나온 개념
FAT 파일 시스템
FAT(File Allocation Table) - 파일 시스템 자체를 가르키는 용어 , FAT 뒤에 숫자는 파일시스템에서 관리하는 클러스터 개수
FAT 파일 시스템 분석시 부트 섹터 BPB의 오프셋 14-15(Reserved Sector Count) 값을 확인하여야 함
FAT 파일 시스템 구조 - 예약된 영역, FAT 영역, 데이터 영역
일반적으로 두개의 FAT 1, FAT 2가 존재하며, FAT 2는 FAT!의 복사본임
FAT Entry의 값 - 데이터 영역의 각 클러스터가 사용되고 있는지 타나냄, 특정 파일이 점유하고 있는 클러스터 위치
FAT 32 - FAT 영역의 바로뒤가 아닌 임의로 시작이 가능
NTFS
NTFS(New Technology System) - 윈도우 NT부터 사용된 파일 시스템
USN 저널(Update Sequnce Number jounal) - 시스템 재부팅 될 떄 완료하지 못한 작업을 복원
ADS(Altermate DAta Stream) - 파일 당 하나 이상의 데이터 스트림을 저장할 수 있도록 지원하는 것 (은닉용도로 사용될 수 있음)
Sparse 파일 - 실제 데이터를 기록하지 않고 크기 정보만 유지
파일 압축 - LZ77 알고리즘을 변형한 압축 방식을 지원
EFS(Encryping File System) - 파일 및 디렉토리를 대칭키 방식으로 암호화
VSS(Volume Shadow Copy Service) - 윈 2003 부터 지원 되며 좀더 안전한 복구
Quotas - 사용자 디스크 사용량 제한
유니코드 지원 - 다국어 지원
동적배드 클러스터 재할당 - 새롭게 할당한 클러스터에 복사
NTFS 구조
VBR - 부트 섹터와 추가적인 부트 코드가 저장
MFT - 파일 위치, 시간 정보, 크기, 파일 이름등의 속성 정보를 저장한 구조, 파일 시스템의 메타 파일 역활을 함
DATA
디지털 포렌식 관점에서의 파일 시스템 분석
파일 삭제, Directory Entry 또는 MFT Entry가 덮어 쓰이지 않은 경구 - 파일 내용 복구 가능. 시간순으로 정렬, 사용자가 의도적으로 파기한 파일을 찾을 수 있음
FAT 파일 시스템 - 데이터 영역의 루트 디렉토리부터 모든 하위 디렉터리를 탐색하면서 오프셋 0x00의 값이 0xE5를 갑는 Directory Entry를 찾음
NTFS 시스템 - MFT Entry 0qjsdml $MFT의 $BITMAP 속성에서 0x00 값을 갖는 MFTP Entry를 찾음
비할당 클러스터 - 파일 시스템에서 사용하지 않는 클러스터가 아닌 메타정보를 통해 접근할 수 없는 클러스터
슬랙 영역 - 운영체제를 통해 확인되지 않는 영역
파일 시스템 별로 시간 정보 위치
FAT - Directory Entry 정보 확인
NTFS - 파일의 MFT Entry에서 $STATNDARD_INFORMATION, $FILE_NAME 속성에서 확인
부트코드 분석- 운영체제가 로드되기 전에 정상적인 실행 흐름에 벗어났는지 여부 확인
미사용 영역분석 - 특정 데이터가 삽입된 흔적이 있는지 파악
은닉 파일 분석 - 운영체제 의해 기본적으로 숨긴 속성이 설정된 시스템파일
FAT - 파일의 Directory Entry 항목 중 오프셋 11개의 Attribute가 0x02 값을 가짐
NTFS - 파일의 MFT Entry에서 $STANDARD)INFORMATION 속성이 오프셋이 32~35의 FLAGS가 0x0002임
ADS - NTFS는 하나의 파일을 두개 이상의 데이터 속설을 가징수 있는 ADS를 지원( 윽닉 목적으로 사용될 수 있음)
파일복구
파일 시스템에서 파일은 메타 정보와 파일 내용으로 저장됨 , 파일을 삭제하면 메타 정보의 특정 플래그만 변경시키므로 메타정보를 이용해 복구 가능
파일 카빙 - 저장매체의 비할당 영역으로 부터 파일을 복구하는 기법
시그니처 기반 카빙 - 파일 포맷별로 존재하는 고유한 시그니처를 이용
램 슬랙 카빙 - 램 슬랙을 통해 파일의 조각을 찾는 기법
파일 구조체 카빙 - 효과적으로 파일 구조를 분석하여 카빙
file : Forensic data recovery from the Windows Search Database
2015년 11월 15일 일요일
(레지스트리) USB 접속 정보 분석
USB가 연결되면, 레지스트리에 ID에 맞는 적절한 드라이버가 설치되어 있는지 확인하고
드라이브가 있으면 로드하고 설치가 안된 경우 PnP관리자 기능에 의해 드라이브를 설치한 뒤 레지스트리에 기록한다.
그리고 마지막으로 이 일련에 과정을 %SystemRoot%\inf\Setupapi.dev.log에 저장한다.
따라서 우리는 레지스트리와 Setupapi 로그를 분석하여 USB 접속 정보 확인이 가능하다.
그리고 Live 환경이라면 http://www.nirsoft.net/utils/usb_devices_view.html에서 프로그램을 다운 받아서 쉽게 확인이 가능한다. 하지만 DKWay와 함께 어떻게 이러한 값들이 확인 되는지 알아가는게 중요하겠지? 모든 Tool들은 단지 PC에 조각 조각 기록된 정보를 보기 좋게 출력한 것 뿐이니까...
우선 오늘의 분석은 기본이되는 레지스트리를 통해서 알아 보겠다.
위치는 HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\
아래에 USB와 USBSTOR 이다.
1. USB는 스마트폰, 마우스 등의 장치 정보를
2. USBSTOR는 외장USB와 같은 저장장치의 연결 정보가 담겨져 있다.
하지만, 최근 안드로이드폰의 SD메모리는 연결 방법에 따라서 USBSTOR에 정보가 남지 않는다. 따라서 이러한 경우, 링크파일 분석과 레지스트리의 USB 및 EMDMgmt 정보를 조합하여 확인 할 수 있다.
단, EMDMgmt의 경우 OS가 XP이거나 SSD의 경우 남지 않는다.
일단 USBSTOR의 분석 방법을 살펴보자.
USBSTOR의 처음 폴더를 살펴보면 아래 Naming 구조를 띈다. 위 캡쳐 화면의 2번째 폴더의 경우 1. Generic 2. External 3. 0108을 확인 할 수 있다.
[Naming 구조 : VID&PID]
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\USBSTOR\Disk&Ven_{Vendor Name}&Prod_{Product Name}&Rev_{Version}
이 다음으로 조사에서 확인할 사항은 Serial Number이다. 포렌식에서 가장 자주 활용되는 정보로써 연결한 저장장치를 확인하는데 사용된다. 압수물과 Serial Number를 대조하여
해당 PC에 연결했던 USB가 맞는지 확인이 가능하다. 아래는 Naming 구조이며 위 예를 들어보면 VID&PID 하위 폴더 이름인 LG-F180K-d809500f가 Serial 정보이다. 그리고 뒤에 &0은 USB 포트의 번호이다. USB 포트가 여러개이고 연결 될때마다 드라이브가 설치되는데 이때 &# 위치에 1,2,3 이렇게 넘버링이 된다.
[Naming 구조 : Serial Number]
HKLM\SYSTEM\ControlSet00#\Enum\USBSTOR\{Device Class ID}\{Serial Number}&#
Serial 정보까지 확인했으면 이 정보를 가지고 연결되었던 Drive Letter 정보를 확인 할 수 있다. 아래 위치에서 드라이브 할당 값들을 더블 클릭하여 해당 Serial Number를 검색하여야 한다.
[Naming 구조 : Drive Letter]
HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices
시리얼 정보 확인 후 MountedDevice에서 검색 수행하여 H: 임을 확인함
단 드라이브 할당 정보는 최근 연결된 장치 정보만을 저장하고 있음.
마지막으로, 포렌식을 수행하다 보면 USB에 어떠한 정보를 복사했는지 확인이 필요한 경우가 많다. 이러한 경우, 링크파일을 분석하여 E:\, F:\ 등에서 연결된 폴더 및 파일 정보를 확인하여 외장하드에 자료가 저장되어 있음을 추측할 수 있다.
하지만 이때, 해당 드라이브에 사용된 저장매체가 무엇인지 구체적으로 확인이 필요할 때가 있는데 이럴때는 레지스트리의 EMDMgmt 정보와 조합하여 확인 가능하다.
링크파일에는 Volume Serial Number가 포함되어 있어 EMDMgmt에 있는 USB의 Volume Serial Number와 맵핑하여 연결점을 찾을 수 있다.
맵핑할때 주의점은 EMDMgmt의 볼륨 시리얼은 10진수 표현값이며, 링크파일의 볼륨 정보는 16진수있다. 따라서 16진수를 10진수로 변환하여 비교해야 한다. (공학용 계산기 활용)
[Naming 구조 : Volume Serial Number]
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\EMDMgmt\
_??_USBSTOR#{Device Class ID}#{Unique Instance ID}#{GUID}{Volume Label}_{Volume Serial Number}
볼륨 시리얼 정보는 불행하게도 SSD나 XP에서는 확인 불가하다.
SSD는 삭제 파일의 복구나 로그 기록 면에서 문제가 있어 아직 기업에서 사용을 권장하기에는 포렌식 관점에서 문제가 있어 보인다.
지금까지는 회사에서 제한하고 있으나 시대가 시대인 만큼 확산이 되기 전에 대응 방안을 강구해야 겠다.
드라이브가 있으면 로드하고 설치가 안된 경우 PnP관리자 기능에 의해 드라이브를 설치한 뒤 레지스트리에 기록한다.
그리고 마지막으로 이 일련에 과정을 %SystemRoot%\inf\Setupapi.dev.log에 저장한다.
따라서 우리는 레지스트리와 Setupapi 로그를 분석하여 USB 접속 정보 확인이 가능하다.
그리고 Live 환경이라면 http://www.nirsoft.net/utils/usb_devices_view.html에서 프로그램을 다운 받아서 쉽게 확인이 가능한다. 하지만 DKWay와 함께 어떻게 이러한 값들이 확인 되는지 알아가는게 중요하겠지? 모든 Tool들은 단지 PC에 조각 조각 기록된 정보를 보기 좋게 출력한 것 뿐이니까...
우선 오늘의 분석은 기본이되는 레지스트리를 통해서 알아 보겠다.
위치는 HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\
아래에 USB와 USBSTOR 이다.
1. USB는 스마트폰, 마우스 등의 장치 정보를
2. USBSTOR는 외장USB와 같은 저장장치의 연결 정보가 담겨져 있다.
하지만, 최근 안드로이드폰의 SD메모리는 연결 방법에 따라서 USBSTOR에 정보가 남지 않는다. 따라서 이러한 경우, 링크파일 분석과 레지스트리의 USB 및 EMDMgmt 정보를 조합하여 확인 할 수 있다.
단, EMDMgmt의 경우 OS가 XP이거나 SSD의 경우 남지 않는다.
![]() |
안드로이드 Gpad를 연결한 모습 |
USBSTOR의 처음 폴더를 살펴보면 아래 Naming 구조를 띈다. 위 캡쳐 화면의 2번째 폴더의 경우 1. Generic 2. External 3. 0108을 확인 할 수 있다.
[Naming 구조 : VID&PID]
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\USBSTOR\Disk&Ven_{Vendor Name}&Prod_{Product Name}&Rev_{Version}
이 다음으로 조사에서 확인할 사항은 Serial Number이다. 포렌식에서 가장 자주 활용되는 정보로써 연결한 저장장치를 확인하는데 사용된다. 압수물과 Serial Number를 대조하여
해당 PC에 연결했던 USB가 맞는지 확인이 가능하다. 아래는 Naming 구조이며 위 예를 들어보면 VID&PID 하위 폴더 이름인 LG-F180K-d809500f가 Serial 정보이다. 그리고 뒤에 &0은 USB 포트의 번호이다. USB 포트가 여러개이고 연결 될때마다 드라이브가 설치되는데 이때 &# 위치에 1,2,3 이렇게 넘버링이 된다.
[Naming 구조 : Serial Number]
HKLM\SYSTEM\ControlSet00#\Enum\USBSTOR\{Device Class ID}\{Serial Number}&#
Serial 정보까지 확인했으면 이 정보를 가지고 연결되었던 Drive Letter 정보를 확인 할 수 있다. 아래 위치에서 드라이브 할당 값들을 더블 클릭하여 해당 Serial Number를 검색하여야 한다.
[Naming 구조 : Drive Letter]
HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices
시리얼 정보 확인 후 MountedDevice에서 검색 수행하여 H: 임을 확인함
단 드라이브 할당 정보는 최근 연결된 장치 정보만을 저장하고 있음.
마지막으로, 포렌식을 수행하다 보면 USB에 어떠한 정보를 복사했는지 확인이 필요한 경우가 많다. 이러한 경우, 링크파일을 분석하여 E:\, F:\ 등에서 연결된 폴더 및 파일 정보를 확인하여 외장하드에 자료가 저장되어 있음을 추측할 수 있다.
하지만 이때, 해당 드라이브에 사용된 저장매체가 무엇인지 구체적으로 확인이 필요할 때가 있는데 이럴때는 레지스트리의 EMDMgmt 정보와 조합하여 확인 가능하다.
링크파일에는 Volume Serial Number가 포함되어 있어 EMDMgmt에 있는 USB의 Volume Serial Number와 맵핑하여 연결점을 찾을 수 있다.
맵핑할때 주의점은 EMDMgmt의 볼륨 시리얼은 10진수 표현값이며, 링크파일의 볼륨 정보는 16진수있다. 따라서 16진수를 10진수로 변환하여 비교해야 한다. (공학용 계산기 활용)
[Naming 구조 : Volume Serial Number]
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\EMDMgmt\
_??_USBSTOR#{Device Class ID}#{Unique Instance ID}#{GUID}{Volume Label}_{Volume Serial Number}
볼륨 시리얼 정보는 불행하게도 SSD나 XP에서는 확인 불가하다.
SSD는 삭제 파일의 복구나 로그 기록 면에서 문제가 있어 아직 기업에서 사용을 권장하기에는 포렌식 관점에서 문제가 있어 보인다.
지금까지는 회사에서 제한하고 있으나 시대가 시대인 만큼 확산이 되기 전에 대응 방안을 강구해야 겠다.
피드 구독하기:
글 (Atom)