
CVE-2026-45585 (YellowKey)에 대한 BitLocker TPM+PIN 강화
아직 완전한 패치가 없는 WinRE BitLocker 우회에 대한 자동 완화
YellowKey는 물리적 접근이 가능한 공격자에게 BitLocker로 보호된 Windows 11 드라이브에 대해 복구 키, PIN, 자격 증명 없이도 제한 없는 셸을 제공하는 공개된 BitLocker 우회 방법입니다.
Windows 복구 환경 내의 구성 요소(autofstx.exe)가 트랜잭션 NTFS 재생 루틴을 수행하여 winpeshl.ini를 삭제합니다. 그 부작용으로 복호화된 볼륨에 대한 전체 액세스 권한으로 셸이 실행됩니다. 공격자는 USB 드라이브(또는 EFI 파티션에 직접)에 폴더를 복사하고 WinRE로 재부팅한 후 CTRL을 누르면 이를 트리거합니다.
TPM 전용에서 TPM+PIN으로 전환하면 공격을 완전히 차단합니다. 부팅 시 PIN이 필요하면 WinRE 셸이 어떻게 생성되든 공격자는 드라이브를 복호화할 수 없습니다. TPM은 올바른 PIN 없이 볼륨 마스터 키를 해제하지 않기 때문입니다.
TPM 전용 BitLocker는 동일한 하드웨어에서 부팅할 때마다 자동으로 잠금 해제됩니다. TPM+PIN은 사용자만 아는 비밀이 필요하므로 YellowKey 갭을 해결합니다.
이 스크립트는 기본적으로 manage-bde가 PIN 보호기를 추가하지 못하게 하는 그룹 정책 필수 조건을 처리한 후, 한 번의 실행으로 드라이브를 TPM 전용에서 TPM+PIN으로 안전하게 전환합니다.
Add-BitLockerTPMPin.ps1 실행 (관리자 권한)
│
▼
[버전 확인] ──→ Windows 10에서는 정상 종료 (영향 없음)
│
▼
[BitLocker 상태 확인] ──→ C:에서 암호화가 활성화되어 있는지 확인
│
▼
[그룹 정책 수정] ──→ UseAdvancedStartup + UseTPMPIN + UseEnhancedPin 설정
│ (필수 — 이 설정 없이 manage-bde가 TPM+PIN을 거부함)
▼
[gpupdate /force] ──→ 재부팅 없이 즉시 정책 적용
│
▼
[manage-bde -protectors -add C: -TPMAndPIN] ──→ PIN을 대화식으로 요청
│
▼
[보호기 나열] ──→ 확인을 위해 모든 현재 보호기 표시
│
▼
[TPM 전용 보호기 제거] ──→ 선택 사항, 확인 후 제거
# 승격된 PowerShell 프롬프트에서 두 개의 별도 명령어로 실행:
Set-ExecutionPolicy Bypass -Scope Process -Force
# 모든 BitLocker 보호 드라이브 (자동 감지):
.\Add-BitLockerTPMPin.ps1
# 또는 특정 드라이브를 대상으로:
.\Add-BitLockerTPMPin.ps1 -Drive C
.\Add-BitLockerTPMPin.ps1 -Drive D
드라이브별로 PIN을 설정하라는 대화 상자가 나타납니다. 영숫자 PIN이 지원됩니다 (스크립트가 레지스트리를 통해 향상된 PIN을 활성화).
참고: TPM+PIN 보호기는 OS 드라이브에만 적용됩니다 (TPM을 통해 부팅되는 드라이브). 데이터 드라이브(D:, E: 등)는 암호 또는 복구 키 보호기를 사용합니다. 스크립트가 자동으로 감지하여 건너뜁니다.
BitLocker 보호 드라이브 발견:
C:\ 완전 암호화 보호: 켜짐
D:\ 완전 암호화 보호: 켜짐
그룹 정책 키 설정됨. 정책 새로고침 중...
==============================
드라이브: C:\
==============================
TPM+PIN 보호기 추가 중. PIN을 입력하라는 메시지가 표시됩니다.
PIN은 6자 이상이어야 합니다. 영숫자 지원.
볼륨을 보호하는 데 사용할 PIN을 입력하세요:
PIN을 다시 입력하여 확인:
키 보호기 추가됨:
TPM 및 PIN:
ID: {XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}
C:\의 현재 보호기:
...
TPM 전용 보호기 발견됨: {YYYYYYYY-YYYY-YYYY-YYYY-YYYYYYYYYYYY}
C:\에서 TPM 전용 보호기를 제거하시겠습니까? 이렇게 하면 TPM+PIN만 남습니다. (y/N): y
TPM 전용 보호기가 제거되었습니다.
==============================
드라이브: D:\
==============================
D:\에 TPM 보호기가 없습니다. TPM+PIN은 OS 드라이브에만 적용됩니다. 건너뜁니다.
완료. 확인: manage-bde -status <drive>
manage-bde -status C:
# 표시되어야 함: 키 보호기: TPM 및 PIN
# 보호 상태: 보호 켜짐
실행 전에 복구 키를 준비하세요. 스크립트는 TPM+PIN 보호기가 성공적으로 추가된 후에만 TPM 전용 보호기를 제거하지만, 실행 중간에 시스템이 재부팅되거나 manage-bde -add 단계가 부분적으로 실패하면 드라이브를 잠금 해제하는 데 복구 키가 필요합니다.
지금 복구 키를 검색하세요:
# 복구 키를 콘솔에 출력 (안전한 곳에 저장)
manage-bde -protectors -get C: -Type RecoveryPassword
또는 Microsoft 계정 account.microsoft.com/devices/recoverykey에서 찾으세요.
PIN 선택이 중요합니다. 짧은 숫자 PIN은 표적 물리적 공격에 대해 약한 보호를 제공합니다. 최소 8자를 사용하세요. 스크립트에 의해 영숫자 PIN이 활성화됩니다.
스크립트는 HKLM:\SOFTWARE\Policies\Microsoft\FVE 아래에 네 개의 레지스트리 값을 설정합니다:
이는 Windows 그룹 정책(gpedit.msc)이 기록하는 정확한 키입니다. 레지스트리를 통해 설정하는 것은 MMC 스냅인을 통해 정책을 구성하는 것과 동일합니다.
단계를 개별적으로 실행하려면:
# 1. 그룹 정책 레지스트리 키 설정
$p = "HKLM:\SOFTWARE\Policies\Microsoft\FVE"
if (-not (Test-Path $p)) { New-Item -Path $p -Force }
Set-ItemProperty -Path $p -Name "UseAdvancedStartup" -Value 1 -Type DWord -Force
Set-ItemProperty -Path $p -Name "UseTPMPIN" -Value 2 -Type DWord -Force
Set-ItemProperty -Path $p -Name "UseTPM" -Value 2 -Type DWord -Force
Set-ItemProperty -Path $p -Name "UseEnhancedPin" -Value 1 -Type DWord -Force
gpupdate /force
# 2. TPM+PIN 보호기 추가
manage-bde -protectors -add C: -TPMAndPIN
# 3. TPM 전용 보호기 ID 찾기
manage-bde -protectors -get C:
# 4. 제거 (GUID를 3단계의 ID로 교체)
manage-bde -protectors -delete C: -id {YOUR-TPM-ONLY-GUID}
# 5. 확인
manage-bde -status C:
yellowkey-mitigation/
├── Add-BitLockerTPMPin.ps1 # 주요 완화 스크립트
└── README.md
이 스크립트는 **Claude (Anthropic)**와 공동 개발되었습니다. 모든 로직은 저자가 Windows 11에서 검토하고 테스트했습니다.
MIT — 자유롭게 사용, 수정, 배포 가능.
| 세부 정보 |
|---|
| CVE | CVE-2026-45585 |
| CVSS 점수 | 6.8 (중간) |
| CVSS 벡터 | CVSS:3.1/AV:P/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| CWE | CWE-77 (명령 주입) |
| 공격 벡터 | 물리적 접근 필요 |
| 공개일 | 2026년 5월 19일 |
| 패치 | 아직 없음 — Microsoft는 수동 완화만 발행 |
| MSRC 권고 | msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45585 |
| PoC | 공개적으로 사용 가능 (Nightmare-Eclipse/YellowKey) |
| 영향을 받는 버전 | Windows 11 (24H2, 25H2, 26H1), Windows Server 2022/2025 |
| 영향을 받지 않음 | Windows 10 |
| 키 | 값 | 목적 |
|---|
UseAdvancedStartup | 1 | "시작 시 추가 인증 요구" 정책을 활성화 — 이 값 없으면 모든 UseTPM* 키가 무시됩니다 |
UseTPMPIN | 2 | 0 = 차단, 1 = 필수, 2 = TPM+PIN 허용 |
UseTPM | 2 | PIN과 함께 TPM 전용을 허용 (정책 충돌 방지) |
UseEnhancedPin | 1 | PIN에 영숫자 문자 허용 |