Android 14에는 메모리 안전 버그로부터 기기를 보호하기 위해 고급 메모리 보호 기능이 추가될 수 있습니다.

Android 14에는 호환 기기의 메모리 안전 버그로부터 보호할 수 있는 '고급 메모리 보호'라는 새로운 베타 기능이 추가될 수 있습니다.

메모리 안전 버그는 소프트웨어 개발에서 가장 심각한 버그 중 하나이기 때문에 최근 Google에서는 메모리 안전을 최우선 과제로 삼았습니다. 실제로 심각한 Android의 대다수를 설명하는 데 사용되는 메모리 안전 취약점 Google이 Android의 새로운 기본 언어의 상당 부분을 작성한 2022년까지 취약점이 존재합니다. 코드 러스트 프로그래밍 언어 C/C++ 대신. Google은 Android의 메모리 안전 취약성을 완화하기 위한 다른 수단을 지원하기 위해 노력해 왔으며 그 중 하나가 메모리 태깅이라고 합니다. 지원되는 장치에서 실행 중 안드로이드 14, 이 기능을 전환할 수 있는 새로운 "고급 메모리 보호" 설정이 있을 수 있습니다.

MTE(Memory Tagged Extension)는 메모리로부터 보호하는 Arm v9 CPU의 필수 하드웨어 기능입니다. 메모리에 대한 자세한 정보를 제공하여 안전 버그(약간의 런타임 성능 비용 오버헤드 포함) 위반. 구글이 설명하듯이, “높은 수준에서 MTE는 추가 메타데이터를 사용하여 각 메모리 할당/할당 해제에 태그를 지정합니다. 태그를 메모리 위치에 할당한 다음 해당 메모리 위치를 참조하는 포인터와 연결할 수 있습니다. 런타임 시 CPU는 각 로드 및 저장에서 포인터와 메타데이터 태그가 일치하는지 확인합니다."

Google은 현재 여러 릴리스의 Android 소프트웨어 스택 전체에서 MTE를 지원하기 위해 노력해 왔습니다. Android 12에서는 Android의 힙 할당자인 scudo가 호환 기기에서 동기 모드, 비동기 모드, 비대칭 모드의 세 가지 MTE 작동 모드에 대한 지원을 추가했습니다. 또한 Google은 빌드 시 또는 시스템 속성 및/또는 환경 변수를 통해 시스템 프로세스에 대해 MTE를 활성화할 수 있도록 했습니다. 애플리케이션은 다음을 통해 MTE 지원을 선택할 수 있습니다.

안드로이드: memtagMode 기인하다. Android의 프로세스에 대해 MTE가 활성화되면 use-after-free 및 버퍼 오버플로와 같은 전체 메모리 안전 버그 클래스가 자동 메모리 손상 대신 충돌을 유발합니다.

~ 안에 안드로이드 13, Google은 요청된 MTE 작동 모드를 부트로더에 전달하기 위해 사용자 공간에 대한 ABI를 추가했습니다. 이는 기본적으로 활성화되어 있지 않은 호환 장치에서 MTE를 활성화하는 데 사용될 수 있습니다. 또는 다음을 통해 활성화된 호환 장치에서 비활성화하는 데 사용할 수도 있습니다. 기본. Android 13에서 ro.arm64.memtag.bootctl_supported 시스템 속성을 'true'로 설정하면 시스템에 부트로더가 ABI를 지원하고 사용자가 다음 번에 MTE를 활성화할 수 있는 개발자 옵션 메뉴에 표시되는 버튼을 트리거합니다. 재부팅. 이는 MTE가 활성화된 앱의 동작을 테스트하려는 개발자를 대상으로 했습니다.

하지만 Android 14에서는 호환되는 기기에서 MTE를 활성화하려면 더 이상 개발자 옵션으로 들어가야 할 수 있습니다. 장치에 MTE를 지원하는 Arm v8.5+ CPU가 있는 경우 장치 구현은 요청된 MTE 작동 모드를 부트로더에 전달하기 위해 ABI를 지원하고 새로운 시스템 속성 'ro.arm64.memtag.bootctl_settings_toggle'이 true로 설정되면 설정 > 보안 및 개인 정보 보호 > 추가 보안에 새로운 "고급 메모리 보호" 페이지가 나타날 수 있습니다. 설정. 이 페이지는 새로운 메뉴를 통해서도 시작할 수 있습니다. ACTION_ADVANCED_MEMORY_PROTECTION_SETTINGS 의도적인 행동.

특히, Tensor G2 칩셋은 구글 픽셀 7 시리즈는 Arm v8.2 CPU 코어를 사용하므로 MTE를 지원하지 않습니다. 곧 출시될 Google Pixel 8 시리즈가 다른 많은 주요 Android 장치처럼 새로운 Arm v9 CPU 코어를 사용한다면 MTE를 지원할 수 있는 하드웨어를 갖게 될 것입니다. 그러나 이 "고급 메모리 보호" 기능이 실제로 안정 릴리스에 포함될지는 아직 알 수 없습니다.

보안연구원님 감사합니다 @flawedworlddev 이 기사에 도움을 주셔서 감사합니다!