Windows Forensic/Partition Recovery & Bitlocker Recovery

[Digital Forensic] BitLocker Analysis

DF_m@ster 2023. 12. 31. 09:42

BitLocker

BitLocker: 마이크로소프트 윈도우 시스템에 내장된 데이터 암호화 기능이다. 기능은 하드 드라이브의 전체 또는 일부를 암호화하여 데이터를 보호한다. 사용자는 비밀번호나 복구 키를 사용하여 암호화된 드라이브에 접근할 있다.

 

아래는 암호를 사용하여 드라이브에 비트라커를 적용하고 암호화된 드라이브를 키로 여는 과정이다.

'BitLocker 드라이브 암호화' 시스템으로 이동하고, 암호화하려는 드라이브의 'BitLocker 켜기'를 선택한다.

 

추가적으로 '암호를 사용하여 드라이브 잠금 해제'를 선택하고 암호를 입력하면 아래처럼 복구 키를 어떻게 백업할지 선택하는 창이 나타난다.

먼저 비트라커의 키에 대하여 설명하면, 드라이브를 복호화할 수 있는 키는 두 가지 종류가 있다. 하나는 처음 입력한 '암호'이고, 나머지 하나는 랜덤으로 생성되는 48자리의 '복구 키'이다. 해당 페이지는 랜덤으로 생성되는 48자리의 복구 키를 어떻게 백업할지 선택하는 항목이다.

 

1. Microsoft 계정에 저장: Window 설치 시 설정했던 Microsoft 계정에 복구 키를 저장한다.

2. USB 플래시 드라이브에 저장: 이동식 디스크에 복구 키를 저장한다.

3. 파일에 저장: PC 드라이브에 복구 키를 저장한다.

 

디지털 포렌식 문제의 관점에서는 세 번째 저장 방법인 파일 저장에 초점을 두어야 한다. 디지털 포렌식 문제의 경우 비트라커로 암호화된 드라이브를 풀기 위해 복구 키를 저장하는 파일을 찾고 이후에 복구 키를 이용해 비트라커가 적용된 드라이브를 복호화하는 식으로 진행하는 풀이가 많이 존재하기 때문이다. 필자는 이러한 이유로 세 번째 방법으로 복구 키를 저장해 보았다.

 

복구 키를 파일에 저장할 때, 저장할 파일의 경로를 선택하면 파일의 이름은 복구 키의 식별자로 자동 생성된다. 아래는 생성된 복구 키 파일의 모습이다.

 

비트라커의 복구 키는 구체적으로 '식별자'와 '복구 키'로 나뉜다. 식별자는 각 드라이브에 알맞은 복구 키 쌍을 식별하는 데에 사용되는 값이고, 복구 키는 48자리의 순수 복구 키값을 의미한다. 해당 txt 파일을 열면 식별자와 복구 키가 존재한다.

 

비트라커가 적용된 드라이브는, 잠금 아이콘과 함께 디스크가 표시된다.

 

비트라커가 적용된 드라이브를 복호화하기 위해 드라이브를 선택하면 다음과 같은 화면이 나타난다. 이때 암호는 처음 비트라커를 적용할 때 직접 입력한 암호이다.

 

복구키로 드라이브를 복호화하기 위해서는 '기타 옵션' '복구 키 입력'을 선택하면 48자리의 복구 키를 입력하는 칸이 나타나고, 해당 드라이브의 '키 ID'(FFABE9D0)가 나타난다. 이때 '키 ID'는 식별자의 첫 번째 값이다. '키 ID'를 참조하여 해당 드라이브에 알맞은 비트라커 복구 키를 식별하고 복구 키를 입력하면 복호화가 된다.

 

 

 

BitLocker Recovery

'암호 키'와 '복구 키'를 모르는 상태에서 비트라커로 암호화된 드라이브를 복구하는 것은 불가능하다. 해당 글은 디지털 포렌식 문제에서 비트라커로 암호화된 드라이브를 어떻게 풀어나가야 하는지를 초점에 맞춰 다룬 글이다.

디지털 포렌식 문제에서는 대부분 '복구 키' 파일을 비트라커가 적용되지 않은 다른 드라이브에 저장하고, '복구 키' 파일을 찾아 비트라커로 암호화된 드라이브를 '복구 키'로 복호화하는 방식으로 풀이를 진행해 나간다.

 

비트라커가 적용된 드라이브를 분석하기 위해 직접 디스크를 생성하고 비트라커를 적용하여 분석해 보았다. 구체적으로 단일 파티션의 경우와 다중 파티션의 경우로 나누어 분석하였다. 아래는 분석한 결과이다.

 

 

 

Single Partition

단일 파티션의 경우 300MB 크기의 디스크를 MBR로 초기화하고, NTFS를 단일 파티션으로 생성하였다. 이후에 디스크에 비트라커를 적용하였다.

단일 파티션 디스크 생성 후 BitLocker 적용

 

디스크를 처음 분석할 때 일반적으로 E01으로 이미징 하여 분석을 진행한다. 초기 디스크 분석 단계 즉, E01으로 이미징 된 파일을 분석하는 단계에서 분석하려는 디스크의 비트라커 적용 여부를 판별할 줄 알아야 한다.

아래는 비트라커가 적용된 단일 파티션을 E01으로 이미징 하고 FTK Imager의 Avidence Tree에 업로드한 경우로, Unrecognized File System문구가 나타난다.

 

특징으로는 0번 섹터에 EVF(Encrypted Volume Footer)라는 텍스트가 존재한다.

 

비트라커가 적용된 디스크라는 정보를 얻은 이후에 RAW(dd) 파일로 다시 이미징 하고, FTK Imager의 Avidence Tree에 업로드한 경우와 MBR의 Partition Table Entry가 E01과 동일하게 Unrecognized File System문구가 나타난다.

 

비트라커가 적용된 디스크라는 정보를 얻은 이후에 RAW(dd) 파일로 다시 이미징 하고, HxD로 열어본 결과이다.

MBR의 Partition Table Entry가 한 개 존재하며, Partition Type이 '0x07'이라는 정보와 Starting LBA가 ‘0x80’이라는 정보를 알 수 있다. 해당 정보를 통해 디스크는 Starting LBA가 128번 섹터인 NTFS 파티션을 하나 가진다는 사실을 알 수 있다.

 

128번 섹터로 이동해 본 모습니다. FVE-FS-을 통해 File System이 FVE(Full Volume Encryption)되었음을 알 수 있다. 즉 해당 파티션은 비트라커가 적용되었음을 알 수 있다. 또한 NTFS임에도 불구하고, FAT이라는 텍스트가 존재하며, 다음섹터에 BOOTMGR 또한 존재하지 않는다.

 

 

 

Multiple Partition

다중 파티션의 경우는 300MB 크기의 디스크를 MBR로 초기화하고, 150MB 크기의 NTFS 파티션과 150MB크기의 FAT32 파티션으로 생성하였다. 이후에 디스크에 비트라커를 적용하였다.

 

비트라커가 적용된 다중 파티션을 E01으로 이미징 하고 FTK Imager의 Avidence Tree에 업로드한 경우 Unrecognized File System문구가 나타난다.

 

특징으로는 0번 섹터에 EVF(Encrypted Volume Footer)라는 텍스트가 존재한다.

 

 

 

비트라커가 적용된 디스크라는 정보를 얻은 이후에 RAW(dd) 파일로 다시 이미징 하고, FTK Imager의 Avidence Tree에 업로드한 경우와 MBR의 Partition Table Entry가 E01과 동일하게 Unrecognized File System문구가 나타난다.

 

 

 

첫 번째 Partition Table Entry의 Partition Type이 '0x07'이라는 정보와 Starting LBA가 ‘0x80’이라는 정보를 알 수 있다. 해당 정보를 통해 첫 번째 파티션은 Starting LBA가 128번 섹터인 NTFS 파티션을 가진다는 사실을 알 수 있다.

두 번째 Partition Table Entry의 Partition Type이 '0x0C'이라는 정보와 Starting LBA가 ‘0x4B080’이라는 정보를 알 수 있다. 해당 정보를 통해 두 번째 파티션은 Starting LBA가 307,328번 섹터인 FAT32 파티션을 가진다는 사실을 알 수 있다.

 

 

 

추가적으로 첫 번째(128번 섹터), 두 번째(307,328번 섹터) 파티션의 Boot Sector에 접근해 보면 모두 'FVE-FS-' 문구가 존재한다.  또한 NTFS, FAT32의 파일시스템에 상관없이 FAT이라는 텍스트가 존재하며, 다음섹터에 BOOTMGR 혹은 RRaA와 같은 문구 또한 존재하지 않는다.

 

 

 

Result

비트라커 사용하여 암호화된 디스크를 E01 형식으로 이미징하고, HxD 프로그램으로 0 섹터를 확인하면 'EVF'라는 단어가 존재한다. 반면에, 같은 디스크를 RAW(dd) 형식으로 이미징하고 HxD 0 섹터를 확인하면, 기본적인 MBR 구조가 보이며, Boot Sector에는 NTFS FAT32 상관없이 'FVE-FS-', 'FAT'라는 문구 존재한다. 또한, 'BOOTMGR' 'RRaA' 같은 표준 부트 관련 문구는 존재하 않는다.