Android Pie로 출시되는 휴대폰에는 Android Oreo의 롤백 보호가 필요합니다.

Android Pie(Android 9)로 출시되는 모든 장치는 롤백 보호를 허용하는 자체 검사 부팅(Android 자체 검사 부팅 2.0)을 지원해야 합니다.

안드로이드 파이(안드로이드 9) 오늘 방금 라이브 시작했어요 Google Pixel, Google Pixel 2 및 심지어 필수 전화. 우리는 인터뷰를 통해 출시에 대해 최대한 많이 배우고 있습니다(Google Pixel 3 동작 탐색만 가능합니다!), AOSP 코드 드롭, 마지막으로 호환성 정의 문서(CDD)입니다. 우리는 "무거운" 앱을 위한 새로운 기능 오늘 오전에 Google이 Android Oreo에 도입된 기능에 대한 문구를 변경한 것을 확인했습니다. 롤백 보호. 이 기능은 다음을 통해 가능해졌습니다. Android 자체 검사 부팅 2.0 (단순히 검증된 부팅이라고도 함) 그러나 OEM은 Oreo 릴리스에서 AVB 2.0을 구현할 필요가 없었습니다. 이제 Google은 Android Pie로 출시되는 모든 장치가 자체 검사 부팅을 지원하고 더 나아가 롤백 보호를 지원하도록 의무화하고 있습니다.

Android Oreo의 롤백 보호

이 기능의 핵심은 기기가 다운그레이드되었음을 감지하면 휴대전화가 부팅되지 않도록 한다는 것입니다. 보안 문제로 인해 안전하지 않은 것으로 간주되는 이전, 현재는 승인되지 않은 소프트웨어 버전 취약성. 좀 더 기술적으로 설명하면 부팅 파티션의 해시를 보유하는 VBMeta 데이터 구조와 시스템 및 공급업체 파티션에 대한 해시트리 메타데이터는 롤백 인덱스를 사용하여 이전 롤백이 있는 이미지를 거부합니다. 색인.

Android 자체 검사 부팅의 롤백 보호. 원천: Google.

이 기능은 Google Pixel 2, Razer Phone 및 OnePlus 6과 같은 장치에 있지만 Samsung Galaxy S9와 같은 다른 많은 장치에는 없습니다(삼성은 자체 형식을 제공하지만). Knox의 롤백 보호.) 이제 Google은 Android Pie를 실행하는 모든 기기에 이 기능을 필수로 설정하고 있습니다.

Android Pie의 자체 검사 부팅

호환성 정의 문서의 "장치 무결성" 섹션에 업데이트된 문구에 따르면 Android 9로 출시되는 장치는 자체 검사 부팅을 지원해야 합니다.

9.10. 장치 무결성

다음 요구 사항은 장치 무결성 상태에 대한 투명성을 보장합니다. 장치 구현:

  • [C-0-1] 부트로더 상태가 시스템 이미지 플래싱을 허용하는지 여부를 시스템 API 메서드 PertantDataBlockManager.getFlashLockState()를 통해 올바르게 보고해야 합니다(MUST). FLASH_LOCK_UNKNOWN 상태는 이 새로운 시스템 API 메서드가 존재하지 않는 이전 버전의 Android에서 업그레이드하는 기기 구현을 위해 예약되어 있습니다.
  • [C-0-2] 기기 무결성을 위해 자체 검사 부팅을 지원해야 합니다(MUST).

이전 버전의 Android에서 자체 검사 부팅을 지원하지 않고 기기 구현이 이미 실행된 경우 시스템 소프트웨어 업데이트로 이 기능에 대한 지원을 추가할 수 없는 경우 요구 사항.

...

  • [C-1-10] Android에서 사용하는 파티션(예: 부팅, 시스템 파티션)에 대한 롤백 보호를 구현해야 합니다(MUST). 최소 허용 OS를 결정하는 데 사용되는 메타데이터를 저장하기 위해 변조 방지 스토리지를 사용합니다. 버전.
  • 영구 펌웨어(예: 모뎀, 카메라)가 있는 모든 구성요소에 대해 롤백 보호를 구현해야 합니다(SHOULD). 허용되는 최소값을 결정하는 데 사용되는 메타데이터를 저장하기 위해 변조 방지 저장소를 사용해야 합니다(SHOULD). 버전.

마지막 두 글머리 기호 세트에서 볼 수 있듯이 주목해야 할 한 가지 주의 사항이 있습니다. Android에서 사용하는 파티션(부팅, 시스템, 공급업체 등)에는 롤백 보호가 필요하지만 영구 펌웨어가 있는 파티션(모뎀, 카메라 등)에는 롤백 보호가 필요하지 않습니다. 이전 파티션 세트는 대부분의 보안 취약점이 발견되고 패치되는 곳이므로 이러한 파티션을 보호해야 한다는 점을 알 수 있어서 좋습니다. 그러나 영구 펌웨어가 있는 파티션도 대상으로 하는 공격이 있었기 때문에 Google이 해당 파티션에 대한 롤백 보호를 의무화하지 않는 이유는 확실하지 않습니다.

XDA 수석 회원 np존슨LineageOS 팀의 일원인 는 영구 펌웨어가 있는 파티션에 롤백 보호를 요구하면 SBL(Secondary Bootloader) 및 XBL(eXtensible Bootloader) 연결이 필요합니다. 이러한 파티션은 부팅 초기에 마운트되기 때문입니다. 프로세스. 소규모 OEM이 맞춤형 모뎀 및 기타 영구 파티션과 일치하도록 맞춤형 XBL을 구현하는 데 비용이 많이 듭니다. 따라서 Google은 기기 제조업체가 CDD의 최신 요구 사항을 더 쉽게 충족할 수 있도록 하기 위해 이를 요구 사항으로 만들지 않을 수도 있습니다.

휴대폰이 AVB 2.0을 지원하는지 확인하는 방법

휴대폰이 AVB 2.0을 지원하는지 확인하는 데 사용할 수 있는 두 가지 ADB 셸 명령이 있습니다.

adb shell
dumpsys package | grep "verified_boot"

또는

adb shell
getprop | grep "avb"

첫 번째 명령의 출력이 "android.software.verified_boot"이면 AVB 2.0이 지원됩니다. 두 번째 명령의 출력에 "[ro.boot.avb_version]" 및 "[ro.boot.vbmeta.avb_version]"이 표시되고 각각의 버전 번호가 나열되면 지원되는 것입니다.

자체 검사 부팅 및 맞춤 개발

Android 자체 검사 부팅은 일부 경우에 해결해야 할 보안 계층을 추가하기는 하지만 대부분의 맞춤 ROM 사용자에게 실제로 영향을 미치지 않습니다. 예를 들어, 일반 시스템 이미지 플래싱 AVB를 비활성화해야 합니다. OnePlus 6의 공급업체와 같은 특정 파티션을 수정하려면 AVB도 비활성화해야 합니다. 내가 최근에 배운 대로. 에 따르면 np존슨, 올바르게 구현된 AVB 2.0을 사용하면 사용자 정의 부팅 이미지가 잠긴 부트로더와 함께 작동할 수 있습니다. Android Pie와 함께 제공되는 기기에 AVB 2.0을 포함하면 환경에 어떤 영향을 미치는지 살펴보겠지만, 다음과 같은 상황이 발생하지 않기를 바랍니다. 최근 벽돌공포증 Xiaomi Redmi Note 5 Pro 커뮤니티에서. 필수 AVB 2.0은 Google이 Android 플랫폼 보안 개선하지만 우리가 보기에 가장 큰 변화는 정기적인 보안 패치를 의무화하기 위한 OEM 계약 재작업.