광고 닫기

메모리 오류는 소프트웨어 개발에서 가장 심각한 문제 중 하나이기 때문에 최근 Google에서는 메모리 보안을 최우선 과제로 삼았습니다. 실제로 이 영역의 취약점은 심각한 취약점의 대부분을 차지했습니다. AndroidGoogle이 상당한 양의 새로운 네이티브 코드를 생성했던 작년까지만 해도 AndroidC/C++ 대신 Rust 프로그래밍 언어로. 거대 소프트웨어 회사는 자사 시스템의 메모리 취약점을 완화하는 다른 수단을 지원하기 위해 노력하고 있으며 그 중 하나가 메모리 마킹입니다. 시스템이 지원되는 장치에서 Android 14에는 이 기능을 전환할 수 있는 고급 메모리 보호라는 새로운 설정이 있을 수 있습니다.

MTE(Memory Tagged Extension)는 Arm v9 아키텍처 기반 프로세서의 필수 하드웨어 기능으로, 다음과 같은 세부 정보를 제공합니다. informace 메모리 손상에 대해 정보를 제공하고 메모리 안전 오류로부터 보호합니다. Google은 다음과 같이 설명합니다. “MTE는 높은 수준에서 추가 메타데이터를 사용하여 각 메모리 할당/해제에 태그를 지정합니다. 메모리 위치에 마커를 할당한 다음 해당 메모리 위치를 참조하는 포인터와 연결할 수 있습니다. 런타임 시 프로세서는 로드 및 저장될 때마다 포인터와 메타데이터 태그가 일치하는지 확인합니다."

Google은 전체 소프트웨어 제품군에서 MTE를 지원하기 위해 노력하고 있습니다. Android 오랫동안. 에게 Androidu 12에는 Scudo 메모리 할당자가 추가되었으며 호환 장치에서 동기 모드, 비동기 모드 및 비대칭 모드의 세 가지 MTE 작동 모드에 대한 지원이 추가되었습니다. 또한 회사는 시스템 속성 및/또는 환경 변수를 통해 시스템 프로세스에 대해 MTE를 활성화할 수 있도록 했습니다. 애플리케이션은 속성을 통해 MTE 지원을 추가할 수 있습니다. android:memtagMode. 프로세스에 대해 MTE가 활성화된 경우 Androidu, Use-After-Free 및 버퍼 오버플로와 같은 전체 메모리 안전 오류 클래스는 자동 메모리 손상 대신 충돌을 유발합니다.

Do Androidu 13 Google은 원하는 MTE 작동 모드를 부트로더에 전달하기 위해 사용자 공간 ABI(애플리케이션 바이너리 인터페이스)를 추가했습니다. 이는 기본적으로 MTE가 활성화되어 있지 않은 호환 장치에서 MTE를 활성화하는 데 사용하거나 기본적으로 활성화된 호환 장치에서 비활성화하는 데 사용할 수 있습니다. 시스템에서 ro.arm64.memtag.bootctl_supported 시스템 속성을 "true"로 설정 Android 13에서는 부트로더가 ABI를 지원한다고 시스템에 알렸고 사용자가 다음 재부팅 시 MTE를 활성화할 수 있는 개발자 옵션 메뉴의 버튼도 활성화했습니다.

V Android너 14 그러나 호환 장치에서 MTE를 활성화하려면 이미 개발자 옵션 메뉴로 들어가야 할 수도 있습니다. 장치가 MTE를 지원하는 Arm v8.5+ 프로세서를 사용하는 경우 장치 구현은 원하는 MTE 작동 모드를 부트로더에 전달하기 위해 ABI를 지원하며 새로운 ro.arm64.memtag.bootctl_settings_toggle 시스템 속성이 "true"로 설정됩니다. , 새 페이지 고급 메모리 보호 v 설정→보안 및 개인 정보 보호→추가 보안 설정. 이 페이지는 새로운 ACTION_ADVANCED_MEMORY_PROTECTION_SETTINGS 작업을 통해 시작할 수도 있습니다.

흥미롭게도 Google Pixel 2 시리즈를 구동하는 Tensor G7 칩셋은 Arm v8.2 프로세서 코어를 사용하므로 MTE를 지원하지 않습니다. 다가오는 Google Pixel 8 시리즈가 다른 플래그십 시리즈와 마찬가지로 새로운 Arm v9 코어를 사용할 경우 android휴대폰의 하드웨어는 MTE를 지원할 수 있어야 합니다. 그러나 "고급 메모리 보호" 기능이 안정 버전에 포함될지 여부는 여전히 의문입니다. Android14.

오늘 가장 많이 읽은 책

.