사악한 하녀와의 싸움, /boot 파티션 삭제 처리 방법

사악한 하녀와의 싸움, /boot 파티션 삭제 처리 방법

LUKS 전체 디스크 암호화를 사용할 때 어떻게 자신을 보호합니까?사악한 하녀?

악의적인 가정부 공격은 귀하가 자리를 비운 동안 누군가 귀하의 컴퓨터에 물리적으로 접근하여 다음에 컴퓨터를 부팅할 때 FDE 비밀번호를 캡처하기 위해 암호화되지 않은 /boot 파티션을 손상시키는 것입니다.

한 가지 해결책은 /boot 파티션을 가지고 다니는 USB 스틱에 남겨 두는 것입니다(메이드는 액세스할 수 없음). 그러나 거기에서 어떤 파일 시스템을 사용해야 하며 USB 제거를 적절하게 처리하도록 시스템을 구성하려면 어떻게 해야 합니까? (그리고 /boot 파티션 자체도)?

CentOS를 사용하고 있지만 배포에 구애받지 않는 일반적인 답변은 환영합니다. 감사해요.

답변1

마침내 알아 냈습니다. 시스템은 시스템이 /boot설치되지 않았을 수도 있다는 사실을 결코 인식하지 못하고 쓰기 작업(시스템 업데이트 등)을 수행하기 전에 수동으로 설치해야 하기 때문에 여전히 매우 해킹적이고 지저분하게 느껴지지만 그 외에는 완벽하게 작동합니다. .

  • 플래시 드라이브용 파티션을 준비하고 여기에 부팅 플래그를 설정하세요. shred -n 1 -v /dev/sdX이전 부팅 섹터를 포함하여 이를 완전히 지우려면 이 프로그램을 실행하여 원하는 fdisk파티션과 파일 시스템을 생성 할 수 있습니다 .mkfs
  • 플래시 드라이브를 어딘가에 마운트하거나 /mnt/boot그냥 /newboot마운트하세요.
  • /boot모든 것을 플래시 드라이브 로 이동 을 사용하십시오 mv /boot/* /newboot.
  • 플래시 드라이브와 일치하도록 원래 부팅 파티션의 UUID를 편집 /etc/fstab하고 변경합니다(또는 UUID가 없는 경우 항목을 만듭니다). 를 통해 UUID를 얻을 수 있습니다 lsblk -o name,uuid. 또한 noautoFS를 손상시키지 않고 시스템이 부팅을 시작하자마자(커널을 로드한 후) 드라이브를 제거할 수 있도록 드라이브가 자동으로 마운트되지 않도록 옵션을 추가하십시오.
  • 원래 부팅 파티션과 USB 플래시 드라이브( umount /boot && umount /newboot)를 마운트 해제하고 USB 플래시 드라이브를 마운트합니다. fstab 항목이 올바른 경우 실행 mount /boot하면 fstab에 지정된 UUID를 기반으로 자동으로 마운트됩니다.
  • 새 파티션의 UUID와 "물리적" 위치를 반영하도록 부트로더의 구성을 다시 생성하면 GRUB의 경우 플래시 드라이브가 실제로 hd0컴퓨터의 첫 번째 하드 드라이브( )로 나타납니다. 대부분의 배포판과 함께 제공되는 기본 GRUB 구성 스크립트에 액세스할 수 있는 경우 grub-mkconfig -o /path/to/grub.cfg이를 실행할 수 있으며 현재 설치된 파티션 및/또는 fstab을 기반으로 파일이 생성됩니다. CentOS 7의 경우 올바른 위치 grub.cfg는 실제로 /boot/grub2/grub.cfg.

부팅 파티션 에 액세스할 수 있는 작업을 수행하는 동안 USB 스틱을 연결하고 실행하면 mount /boot. umount /boot후자의 명령은 버퍼를 디스크로 플러시하므로 완료하는 데 다소 시간이 걸릴 수 있습니다(디스크 자체는 느리기 때문에 커널은 작업 속도를 높이기 위해 일부 쓰기를 버퍼링합니다).

답변2

이 특정 문제를 해결하는 또 다른 방법은 TPM을 사용하여 암호화 키를 저장하는 것이지만 방어는 실제로 사용자가 이를 효과적으로 수행하도록 의존합니다. 기본 RHEL7 기반 솔루션은 tpm-luks(https://github.com/GeisingerBTI/tpm-luks).

작동 방식은 시작 시 시작 프로세스의 각 단계에서 다음 단계를 측정하고 측정값을 TPM의 PCR에 저장하는 것입니다. 부팅 프로세스가 완료된 후 tpm-luks는 "알려진 양호한" 구성과 비교하여 PCR 상태를 확인합니다. "알려진 양호한" 구성인 경우 TPM은 LUKS 키 차단을 해제하고 tpm-luks는 이 데이터를 전달하여 루트 LUKS 파티션의 잠금을 해제합니다.

중요한 것은 모두 비밀번호 해시로 측정되므로 사악한 하녀가 GRUB/커널/램디스크를 교체하여 FDE 비밀번호를 악의적으로 수집할 수 있는 방법은 기본적으로 없습니다. 추가 보너스로 FDE 비밀번호가 전혀 필요하지 않습니다! 이론적으로는 사람이 읽을 수 있는 비밀번호를 완전히 제거하고 tpm-luks에 전적으로 의존할 수 있지만 해당 접근 방식을 선택하는 경우 LUKS 헤더를 저장하고 백업으로 유지하는 것이 좋습니다.

앞서 언급했듯이 이를 위해서는 사용자 측의 노력이 필요합니다. 컴퓨터를 방치하고 암호 문구 프롬프트가 나타나는 경우 조사를 완료하기 전에 암호를 입력하는 것은 아마도 좋지 않은 생각일 것입니다. 이 시점에서 Live CD 환경으로 부팅하여 tpm-luks에 오류가 있는지 또는 파티션이 /boot실제로 변경되었는지 확인해야 합니다. 암호화되지 않은 파티션은 계속 유지되지만 /boot중요한 사항이 변경되면 메인 디스크의 암호가 해독되지 않습니다.

관련 정보