SBAT(Secure Boot Advanced Targeting)의 정의
- UEFI Secure Boot가 처음 지정되었을 때, 모든 관련자들이 다소 순진했음
- Secure Boot의 기본 보안 모델은 커널 레벨의 권한 환경에서 실행되는 모든 코드가 실행 전에 검증되어야 한다는 것
- 취약점이 발견된 서명된 구성 요소를 폐기하는 방법이 포함되어 있음
- 그러나 Secure Boot 생태계에서 작동하는 모든 Linux 배포판은 자체 부트로더 바이너리를 생성하므로, 취약점이 식별되면 폐기해야 할 바이너리가 많음
- 해시를 저장할 수 있는 공간이 제한되어 있어 SBAT가 개발됨
SBAT의 작동 방식
- 부트 체인의 모든 중요 구성 요소는 서명된 바이너리에 포함된 보안 생성을 선언함
- 취약점이 식별되고 수정되면 해당 생성이 증가함
- 업데이트를 통해 최소 생성을 정의할 수 있음
- 부트 구성 요소는 체인의 다음 항목을 보고, 이름과 생성 번호를 펌웨어 변수에 저장된 것과 비교하여 실행 여부를 결정함
- 개별 해시를 많이 폐기하는 대신, 특정 번호 이하의 보안 생성을 가진 grub 버전을 신뢰할 수 없다고 말하는 하나의 업데이트를 푸시할 수 있음
최근 이슈의 원인
- Microsoft는 특정 수준 이하의 보안 생성을 가진 grub 버전을 신뢰하지 않도록 Windows 업데이트를 내보냄
- 이는 해당 grub 버전에 Windows 보안 부팅 체인을 손상시킬 수 있는 실제 보안 취약점이 있기 때문
- 문제는 몇몇 Linux 배포판이 새로운 보안 버전의 grub 버전을 아직 제공하지 않았다는 것
- Microsoft의 의도는 Windows만 있는 시스템에만 SBAT 업데이트를 적용하는 것이었지만, 이는 의도대로 작동하지 않았음
요약
- Microsoft는 취약한 grub 버전을 사용하여 Windows를 공격할 수 없도록 하기 위해 Windows 업데이트를 밀어냄
- 이 업데이트는 이중 부팅 시스템에는 적용되지 않도록 했지만, 무시되었음
- 일부 Linux 배포판은 grub 코드와 SBAT 보안 생성을 업데이트하지 않았음
- 결과적으로 일부 사용자는 시스템을 부팅할 수 없게 되었음
비난의 대상
- Microsoft는 이중 부팅 설정을 정확하게 식별할 수 있도록 더 많은 테스트를 했어야 함
- 그러나 또한 서명된 부트로더를 제공하는 배포판은 이를 업데이트하고 보안 생성을 업데이트해야 함
- 이는 다른 운영 체제를 공격하는 데 사용될 수 있는 벡터를 제공하기 때문
결론
- 갑자기 원하는 OS를 부팅할 수 없게 된 최종 사용자가 피해자가 된 것은 안타까운 일임
- 이는 절대 일어나서는 안 되는 일임
- UEFI Secure Boot가 대부분의 최종 사용자에게 이점이 없다고 느끼지만, 사후에 필요한 것을 알게 되는 것은 원하지 않는 일이므로 기본적으로 켜져 있는 Microsoft의 선택에 공감함
- 이중 부팅 시스템에서 업데이트를 피하려는 실패한 시도를 제외하고는 Microsoft의 선택에 공감함
GN⁺의 의견
- 이 사건은 보안과 사용자 경험 사이의 균형을 맞추는 것이 얼마나 어려운지 보여줌
- Microsoft와 Linux 배포판 모두 사용자를 보호하기 위해 최선을 다하고 있지만, 이 과정에서 사용자 경험이 희생될 수 있음
- 이중 부팅 시스템을 사용하는 사용자의 경우 이러한 문제에 직면할 가능성이 더 높음
- 따라서 이중 부팅을 사용하는 사용자는 두 운영 체제 모두 최신 버전으로 유지하고 정기적으로 업데이트하는 것이 중요함
- 장기적으로는 Linux와 Windows 커뮤니티 간의 더 나은 협력과 조정이 필요할 것으로 보임