Linux 부팅/efi 파티션이 Windows에 의해 변조되는 것을 방지하는 방법은 무엇입니까?

Linux 부팅/efi 파티션이 Windows에 의해 변조되는 것을 방지하는 방법은 무엇입니까?

LUKS를 사용하여 루트 파티션을 암호화하고 ecryptfs를 사용하여 기본 파티션을 암호화했으므로 해당 파티션의 데이터만 손상됩니다. 문제는 Windows에서 boot/efi 파티션의 내용을 쉽게 수정할 수 있다는 것입니다. 이런 일이 발생하지 않도록 하려면 어떻게 해야 합니까?

답변1

민감한 데이터는 절대 넣지 마세요 /boot/efi. 암호화할 수 없습니다. 그 이유는 시스템을 부팅하려면 시스템 펌웨어가 EFI를 읽어야 하기 때문입니다. 암호화된 경우 펌웨어는 부트로더에 액세스할 수 없습니다.


시스템에 TPM이 있는 경우 TPM의 "측정"(PCR 레지스터)을 사용하여 부팅 구성 요소가 /boot/efi변조되지 않았는지 확인할 수 있습니다.

TPM은 또한 암호화 키를 저장하고 PCR 레지스터를 기반으로 이를 "봉인"(잠금)할 수 있습니다. 그러면 TPM이 "차단 해제"되어 이러한 암호화 키를 읽을 수 있게 됩니다.오직부팅 프로세스가 변조되지 않은 경우.

어떤 PCR에서 무엇을 측정하는지 결정하는 것이 중요합니다. 중요한 PCR을 포함하도록 TPM을 구성하지 않으면 변조에도 불구하고 차단이 해제될 수 있습니다.

TPM은 100% 방탄이 아닙니다. 이론적으로는 보드에서 제거하고 마더보드와 마더보드 사이에 하드웨어를 배치함으로써 물리적인 중간자 공격 형태로 변조될 수 있습니다. 이것은 종종 매우 어렵지만 불가능하지는 않습니다.


grub 구성을 포함하여 PCR의 모든 것을 측정하는 대신 grub에 옵션 이 있습니다 check_signatures. 자체 PGP 공개 키와 grub이 로드한 다른 모든 파일에 공개 키와 일치하는 디지털 서명이 있어야 하는 기본 구성이 포함된 EFI 바이너리를 빌드합니다.

이렇게 하면 커널, initrd, grub 구성에 디지털 서명을 하고 TPM PCR을 통해 grub EFI가 변조되지 않았는지 확인할 수 있습니다. 부팅을 위해 구성을 약간 변경할 때마다 TPM을 조작할 필요가 없으므로 사용하기가 더 쉬울 수 있습니다.


다른 분이 제안하셨으니 "Secure Boot"에 대해 댓글을 달고 왜 안되는지 설명하겠습니다...

보안 부팅은 다른 목적으로 사용되는 보호 유형입니다. EFI 파티션의 변조 방지보다 공급망 검증에 관한 것입니다.

이는 부팅 초기 단계에서 신뢰할 수 있는 공급업체가 제공하지 않은 제품을 설치하는 것에 대해 일부 보호(완전한 보호는 아님)를 제공합니다. 예: 부트로더를 속여 해커를 설치하지 못하도록 보호합니다.

신뢰할 수 있는 CA를 통해 바이너리에 서명하는 방식으로 작동합니다. 대부분의 하드웨어에는 기본적으로 Microsoft CA가 설치되어 있으며 다양한 Linux 공급업체에는 Microsoft 서명 인증서가 있습니다.

노트북을 설치, 설정 또는 구성하는 동안 생성된 콘텐츠는 보호하지 않습니다. 실제로 바이너리가 평판이 좋은 공급업체에서 제공되었는지 확인하는 것뿐입니다. 누군가가 귀하의 부트로더를 다른 유명 공급업체의 다른 부트로더로 교체하거나 귀하의 부트로더를 재구성하여 어떤 작업을 수행하는 것을 막지는 못합니다. 따라서 실제로 EFI 변조에 대한 보호 기능은 거의 제공되지 않습니다.

답변2

문제는 Windows에서 boot/efi 파티션의 내용을 쉽게 수정할 수 있다는 것입니다. 이런 일이 발생하지 않도록 하려면 어떻게 해야 합니까?

보안 부팅이 활성화된 경우에는 그렇지 않습니다.

편집자: Philip Kulin 씨의 주장"해커"는 커널 부팅 매개변수를 변경하고 init=/bin/bash위반을 유발하는 콘텐츠를 추가할 수 있습니다.그러나 OP가 데이터를 암호화했기 때문에 이 공격은 분명히 작동하지 않습니다. 난교는 없습니다. 해커가 외부 위치에서 이를 사용하더라도 /bin/bash사용자 데이터는 암호화되어 있기 때문에 여전히 아무것도 할 수 없습니다. 간단히 말해서, 이 "공격"은 가치가 없으며 전혀 작동하지 않습니다.

둘째, Philip Couling이 강력히 제안한 것처럼 해커가 귀하의 컴퓨터에 물리적으로 접근할 수 있다면 이는 훨씬 더 위험한 영향을 미치며 귀하 자신을 보호하기 위해 할 수 있는 일은 아무것도 없습니다. 해커는 하드웨어 키보드 스니퍼 또는 기타 장치를 설치하여 사용자가 아무것도 모르는 상태에서 시스템에 액세스할 수 있습니다.

마지막으로 Windows 자체는 Linux보다 훨씬 안전합니다. Linux 보안은 대부분 보안보다는 모호함에 기반을 두고 있기 때문에 우스꽝스럽습니다. 예를 들어, Linux에서는 커널과 모듈만 디지털 서명된 반면, Windows에서는 실행 중인 모든 Microsoft 바이너리가 서명되어 시스템이 변조되지 않았음을 보장합니다. Bitlocker, 하이퍼바이저 기반 프로세스 격리, 그룹 정책 시행 등과 같은 다른 기능은 말할 것도 없습니다.

관련 정보