배경
Shim은 컴파일 중에 내장된 인증서를 가질 수 있습니다("Shim 키" 단락 참조).여기). 그러면 부트로더/관리자 및 커널은 해당 개인 키를 사용하여 서명될 수 있습니다. 이 접근 방식은 이러한 구성 요소에서 Microsoft의 UEFI 서명을 추상화합니다. 심에만 Microsoft 서명이 필요하고 나머지에는 배포 서명이 필요하므로 신뢰 체인을 유지하면서 빠르게 업데이트하고 릴리스할 수 있습니다.
블랙리스트에 등록됨
부트로더/관리자 또는 커널에서 취약점이 발견되면 패치를 적용하고 새 버전을 서명 및 출시해야 합니다. 하지만 더 이상 동일한 서명 키를 사용할 수 없습니다. 그렇죠? 이렇게 하면 shim은 여전히 취약한 이전 버전을 로드할 수 있습니다. 이러한 취약점을 악용하여 임의 코드를 실행할 수 있는 경우 공격자는 이를 부트킷으로 전환하여 보안 부팅을 우회할 수 있습니다. 이는 새 인증서를 사용하여 새 shim을 구축해야 하며 보안 부팅을 위해 이전 shim의 해시를 dbx에 블랙리스트에 추가해야 함을 의미합니다.
나는 커널 모듈이 배포판에서 어떻게 서명되고 확인되는지 잘 알지 못합니다. 하지만 어떤 경우에는 커널에 내장된 인증서에 대해 서명되고 확인될 수도 있다고 추측할 수 있습니다. 임의 코드 실행을 허용하는 모듈에서 취약점이 발견되면 패치를 적용하고 새 커널 키로 서명해야 합니다. 이는 커널이 새 심 키로 서명되어야 함을 의미합니다. 즉, 이전 심을 다시 서명해야 함을 의미합니다. . dbx에 의해 블랙리스트에 올랐습니다.
질문
이는 장기적으로 실행 가능한 접근 방식이 아닌 것 같습니다. 부트로더, 커널 및 커널 모듈의 취약점은 지속적으로 발견되고 수정되고 있습니다. 즉, 지속적으로 새로운 키 쌍을 생성하고, 새 인증서로 shim을 다시 빌드하고, 오래된 shim을 블랙리스트에 등록해야 함을 의미합니다. 또한 보안 부팅이 활성화된 경우 사용자가 설치 및/또는 실행할 수 있도록 허용하고 사용자에게 보안 부팅 데이터베이스에 인증서/해시를 설치하라는 메시지를 표시하지 않는 모든 배포판은 배포판에 내장된 shim을 사용할 가능성이 높습니다. 자격증. 즉, 위에서 언급한 구성 요소 중 하나에서 임의 코드 실행 취약점이 발견될 때마다 영향을 받는 모든 배포판에 대해 shim을 블랙리스트에 추가해야 합니다. 이는 Microsoft 키를 자신의 키로 교체할 수 있는 고급 사용자에게는 문제가 되지 않지만 일반 사용자는 보안을 유지하기 위해 dbx를 계속 업데이트해야 하는 것 같습니다. 여기 정말 그런가요? 아니면 내장된 키를 사용하는 배포 횟수가 너무 적어 문제가 되지 않는 걸까요?