YellowKey & BitUnlocker: 백도어처럼 보이는 Windows BitLocker 우회 기술의 내부
YellowKey와 BitUnlocker: 동일한 취약점 클래스의 두 독립적 발견 — WinRE의 자동 잠금 해제 신뢰 경계를 악용해 BitLocker 전체 볼륨 암호화를 우회. 하나는 외부 연구원이 발견해 백도어라고 부르며, 다른 하나는 Microsoft 자체 STORM 팀이 발견해 4개의 CVE로 패치.
같은 동전의 양면
1년이 채 안 되는 기간 동안 완전히 다른 방향에서 접근한 두 팀이 같은 무서운 결론에 도달했다: BitLocker의 기본 TPM 전용 보호가 Windows 복구 환경(WinRE)을 통해 조용히 우회될 수 있으며, 물리적 접근권이 있는 사람이라면 누구나 “암호화된” 드라이브에 대한 전체 명령줄 접근을 얻을 수 있다.
| 측면 | BitUnlocker (Microsoft STORM) | YellowKey (Nightmare-Eclipse) |
|---|---|---|
| 발견자 | Microsoft STORM 팀 | 독립 연구원 Nightmare-Eclipse |
| 공개 | Black Hat USA 2025 / DEF CON 33 (2025년 8월) | GitHub / 공개 공개 (2026년 5월) |
| 패치 | 2025년 7월 Patch Tuesday (4 CVE) | 현재까지 패치 없음 |
| 공격 벡터 | 다단계 BCD + PBR 조작 | 단일 USB, WinRE 부팅 중 CTRL 키 홀드 |
| 영향 | Windows 10/11 + Server | Windows 11 + Server 2022/2025만 |
불안한 점? 둘 다 AES를 깨지 않는다. 둘 다 복구 키를 무차별 대입하지 않는다. 둘 다 그냥 열려 있는 문을 통해 들어간다.
BitUnlocker: Microsoft가 자체 결함을 찾다
Microsoft STORM 팀은 Black Hat USA 2025와 DEF CON 33에서 BitUnlocker를 발표했다. WinRE의 4가지 별도 공격 벡터를 발견했으며, 모두 2025년 7월 Patch Tuesday로 패치됐다:
CVE-2025-48804: SDI 파일 인젝션
WinRE의 부트 프로세스는 Boot.sdi(System Deployment Image) 파일을 사용한다. 연구원들은 합법적인 Boot.sdi에 악성 Windows 이미지를 추가할 수 있다는 것을 발견했다. WinRE가 SDI 헤더 이후의 WIM을 제대로 검증하지 않으므로 신뢰할 수 없는 이미지가 신뢰된 것처럼 부팅되어 WinRE의 BitLocker 볼륨 자동 잠금 해제 권한을 상속받는다.
CVE-2025-48800: tttracer.exe 남용
WinRE의 “오프라인 스캐닝” 예약 작업은 암호화된 볼륨에 대한 안티바이러스 스캔을 실행한다. 합법적인 Microsoft 서명 바이너리인 tttracer.exe(Time Travel Debugger)는 BitLocker의 재잠금 메커니즘을 트리거하지 않고 cmd.exe를 프록시 실행하는 데 사용될 수 있다. 명령 프롬프트는 암호화된 볼륨에 접근할 수 있는 WinRE의 특별 권한을 상속받는다.
CVE-2025-48003: SetupPlatform.exe 핫키
Windows 업그레이드 후 신뢰된 앱 레지스트리에 남는 컴포넌트 SetupPlatform.exe는 Shift+F10 핫키를 등록해 명령 프롬프트를 실행한다. 결정적으로, 이것은 BitLocker 볼륨의 재잠금을 트리거하지 않는다. WinRE의 ReAgent.xml 설정에 영향을 줄 수 있는 공격자는 이를 지속적 접근에 악용할 수 있다.
CVE-2025-48818: PBR을 통한 완전 복호화
진정한 핵심. BCD(Boot Configuration Data) 저장소를 조작함으로써 공격자는 WinRE의 PBR(Push Button Reset) 흐름을 리디렉션할 수 있다. ResetSession.xml 파일은 DecryptVolume 지시어를 포함한다. 보호되지 않은 복구 볼륨에 악성 BCD 저장소를 배치함으로써 공격자는 PBR이 BitLocker로 보호된 OS 볼륨을 완전히 복호화하도록 속인다.
YellowKey: 인터넷을 뒤흔든 것
2026년 5월, 연구원 Nightmare-Eclipse가 YellowKey를 GitHub에 올리며 즉시 바이럴된 설명을 남겼다:
“내가 발견한 것 중 가장 미친 발견 중 하나, 거의 백도어처럼 느껴지지만, 내가 그냥 미친 걸 수도 있지.”
5단계 익스플로잇
- USB 스틱에
USB:\System Volume Information\FsTx폴더 생성 - BitLocker로 보호된 Windows 11 기계에 USB 연결
- SHIFT를 누른 상태로 다시 시작 클릭 (WinRE로 부팅)
- 시스템이 재부팅되면서 SHIFT에서 손을 떼고 CTRL을 누른 상태 유지
- BitLocker로 암호화된 볼륨에 대한 완전하고 제한 없는 접근 권한을 가진 명령 셸이 나타남
그게 전부다. 복잡한 페이로드도, 암호 파괴도, 복구 키도 없다. 그냥 USB 스틱과 적절한 타이밍의 키 누름.
작동 이유
이 동작을 담당하는 컴포넌트는 WinRE 이미지 내부에만 존재한다. 설정 파일(RecoverySimulation.ini)에서 FailRelock 플래그를 확인한다. 설정되면 WinRE가 복구 과정에서 BitLocker 드라이브를 잠금 해제한 후 다시 잠그지 않는다.
USB의 RecoverySimulation.ini 파일이 WinRE 복구 도구의 “테스트 모드”를 트리거한다:
[Simulation]Active=YesFailRelock=1테스트 모드가 활성화되면 WinRE의 cmd.exe가 잠금 해제된 상태를 상속받아 BitLocker가 없는 것처럼 암호화된 볼륨을 읽고 쓴다.
백도어인가 버그인가? 증거
YellowKey를 특히 불안하게 만드는 것은 의도성을 시사하는 증거 패턴이다:
| 관찰 | 함의 |
|---|---|
FailRelock 디버그 플래그가 WinRE에만 존재하며, 동일한 파일명의 일반 Windows 컴포넌트에는 없음 |
의도적인 테스트 기능이 프로덕션에 출하됨 |
| 동일한 바이너리 이름이 일반 Windows에 우회 기능 없이 존재함 | 일반 디버깅 잔재가 아님 — 특별히 WinRE에 배치됨 |
| Windows 10이 아닌 Windows 11+만 영향 | Windows 11용 새 WinRE 이미지에 코드가 도입됨 |
| 문서, 설정 도구, 공개 참조 없음 | 표준 디버그/테스트 플래그는 보통 내부 문서화됨 — 이것은 의도적으로 숨겨진 것으로 보임 |
방어 전략
즉시 (재부팅 불필요)
- TPM + PIN 보호기 활성화 —
manage-bde -protectors -add C: -TPMAndPIN - BIOS/UEFI 암호 설정 — 부팅 장치 선택 변조 방지
- 외부 부팅 비활성화 — UEFI가 내부 저장소에서만 부팅하도록 설정
- WinRE 비활성화 —
reagentc /disable(프로덕션 권장 안 됨, 최후 수단)
장기 (조직 정책)
| 통제 | 구현 |
|---|---|
| BitLocker 그룹 정책 | 시작 시 추가 인증 필요 → TPM 시작 PIN 구성: TPM과 함께 시작 PIN 필요 강제 |
| Secure Boot + DBX | 최신 해지 목록(dbx)으로 Secure Boot 활성화 |
| Windows Defender System Guard | System Guard Secure Launch (SMM 보호) 활성화 |
| WinRE 업데이트 | 최신 WinRE 서비스 스택 업데이트 적용 |
결정적 시사점
- Windows 11의 TPM 전용 BitLocker는 결정된 물리적 공격자에게 사실상 장식용이다
- 노트북 도난은 이제 데이터 유출과 동일하다 — TPM+PIN 또는 더 강력한 보호가 활성화되지 않은 경우
- 기본 BitLocker 설정에 의존하는 엔터프라이즈 배포는 노출되었다 — “체크하고 잊어버리는” 시대는 끝났다