2P by neo 3달전 | ★ favorite | 댓글 1개
  • 소개

    • 이 글에서는 Windows 11(버전 24H2)에서 BitLocker 암호화를 우회하는 방법을 설명함. 이는 메모리에서 전체 볼륨 암호화 키(FVEK)를 추출하여 이루어짐.
  • 배경

    • 공격자가 물리적으로 장치에 접근할 수 있다면, 컴퓨터를 갑자기 재시작하고 최근 실행된 Windows 인스턴스의 RAM을 덤프하여 민감한 정보를 얻을 수 있음.
    • RAM의 내용은 전원이 차단되면 빠르게 손상되므로, 이를 방지하기 위해 RAM을 물리적으로 냉각하거나 외부 전원 공급원을 사용하는 등의 방법이 있음.
    • 보안 부팅은 장치 시작 시 실행할 수 있는 것을 제한하는 보안 표준이지만, 우회할 수 있는 방법이 존재함.
  • 단계 1: 부팅 가능한 USB 장치 생성

    • 대상 시스템의 RAM보다 큰 USB 저장 장치를 준비해야 함.
    • flashimage.sh 스크립트를 사용하여 부팅 가능한 애플리케이션을 생성하고 사용함.
  • 단계 2: 대상 시스템 갑작스러운 재시작

    • 컴퓨터가 완전히 전원이 꺼지는 시간을 최소화하는 것이 목표임.
    • Windows가 로딩되는 동안, 로그인 화면이 나타나기 전에 시스템을 재시작하는 것이 효과적임.
  • 단계 3: USB 장치에서 부팅

    • USB 장치에서 Memory-Dump-UEFI로 즉시 부팅하여 UEFI 셸에 도달함.
    • app.efi를 실행하여 메모리 덤프를 생성함.
  • 단계 4: 덤프 분석

    • FAT32 파일 시스템의 4GB 파일 크기 제한으로 인해 여러 덤프가 생성될 수 있음.
    • concatDumps 프로그램을 사용하여 여러 덤프를 하나로 결합할 수 있음.
    • searchMem 프로그램을 사용하여 덤프 내에서 특정 패턴을 검색할 수 있음.
  • 풀 태그

    • 풀 태그는 Windows 커널 메모리 풀의 위치를 나타내는 4자 식별자임.
    • pooltag.txt 파일에 다양한 풀 태그와 그 목적이 포함되어 있음.
  • FVEK 키 복구

    • dFVE 풀 태그 아래에서 FVEK 키를 찾을 수 있으며, 이는 BitLocker 드라이브 암호화의 전체 볼륨 암호화 충돌 덤프 필터와 관련됨.
    • None 태그 아래에서도 키를 찾을 수 있음.
  • 다음 단계

    • 얻은 키에 사용된 알고리듬을 추가해야 함.
    • dislocker 도구를 사용하여 드라이브를 잠금 해제할 수 있음.
  • 최종 노트

    • BitLocker의 구현을 이해하려면 커널 수준 디버깅을 수행하는 것이 가장 좋음.
    • Microsoft는 키를 파괴하려고 노력하지만, 모든 키를 파괴하지는 못함.
Hacker News 의견
  • BitLocker는 TPM(PCR 7+11)과 PIN을 함께 사용할 때 가장 큰 이점을 제공함. PIN 없이 FVEK를 읽을 수 없으며, 잘못된 PIN 입력이 많을 경우 TPM이 사전 공격 잠금 모드로 전환됨

    • Linux에서 비슷한 설정을 시도 중이며, systemd-cryptsetup/cryptenroll은 LUKS 전용이라 fscrypt로 민감한 디렉토리를 암호화하려고 함
    • TPM은 기본적인 것 이상을 구현할 때 매우 어려움
    • 개인 프로젝트로 진행 중이며, 완료되면 작성할 예정임
  • BitLocker의 보안 모델을 이해하지 못함. 대부분의 설치에서는 전원 버튼을 눌러 Windows로 부팅됨

    • 암호화된 하드 드라이브를 가진 기계를 도난당하면 그냥 켜면 되는 것인지 의문임
    • SPI 버스의 트래픽이 암호화되어 있어야 한다고 가정하지만, 기계가 쉽게 키를 제공할 것 같음
    • LUKS는 드라이브 잠금을 해제하기 위한 비밀번호 프롬프트가 있음
  • 특정 공격은 PC 클라이언트 작업 그룹 플랫폼 재설정 공격 완화 사양으로 완전히 방어됨

    • 운영 체제가 깨끗하게 종료되지 않으면 펌웨어가 RAM을 지우고 다음 부팅 전에 멈춤
    • Windows가 이를 사용하지 않는지, 테스트된 시스템이 구현하지 않았는지 궁금함
  • 기사 작성자임. 질문이 있으면 메시지 보내달라고 함. 작업이 재미있었고 참여에 감사함

  • Windows 11 BitLocker 우회에 관한 38C3 관련 토크가 있음

  • 물리적 접근이 가능한 임의의 적이 외부에서 "갑작스러운 재시작"을 할 수 없는 "엔터프라이즈" 기계가 있음

    • 대중적으로 사용되는 OEM이 여전히 "갑작스러운 재시작"을 쉽게 허용하는 것이 아쉬움
  • BitLocker는 컴퓨터가 꺼져 있을 때만 보호하며, 부팅 비밀번호를 요구하도록 구성해야 함

  • Windows는 메모리 암호화 옵션과 메모리 압축을 제안함

    • Intel과 AMD는 이를 CPU에 내장하려고 작업 중이며, 대상은 노트북이 아닌 다중 VM을 가진 서버임
  • 대상 기계의 메모리 덤프를 읽는 익스플로잇에 대해 물리적 접근이 가능할 때 "인터포저" 장치가 데이터를 복사하거나 수정하는 것이 가능한지 궁금함

    • Gameboy의 "Action Replay" 장치처럼 메모리를 수정하는 것이 가능한지 의문임
    • RAM과 마더보드 사이에 장치를 삽입하여 메모리 상태를 캡처할 수 있는지 궁금함
    • 전기공학자가 아니어서 제안이 비현실적일 수 있지만, 물리적 공간과 대역폭 제한이 있을 것 같음
  • BitLocker 암호화 디스크를 가진 Surface 5 Pro가 부팅 중 BSOD로 빠르게 전환됨

    • 이 상황에서 작동할 수 있을지 궁금하며, 디스크에서 사진을 추출하기 위한 익스플로잇을 기다리고 있음