GWP-ASan 및 KFENCE
Android 사이트 참고
Last updated
Android 사이트 참고
Last updated
GWP-ASan과 KFENCE는 각각 사용자 공간과 커널의 확률적 메모리 감지 도구입니다. 이를 사용 설정하면 할당된 메모리를 둘러싸는 추가 메모리 페이지로 소수의 할당이 보호됩니다. 이를 통해 미미한 성능 오버헤드로 버퍼 오버플로와 use-after-free를 감지할 수 있습니다. 보호된 할당의 샘플링 레이트가 작더라도 대규모 배포 시 메모리 안전 버그를 효과적으로 감지할 수 있습니다. 도입 후 이러한 도구는 수많은 플랫폼 버그를 식별하는 데 도움이 되었으며 안정성과 보안을 개선하는 데 유용한 도구임이 입증되었습니다. 공급업체는 이를 사용 설정하여 최종 사용자 기기에서 감지된 버그를 면밀히 모니터링하는 것이 좋습니다.
개발자는 /data/tombstones
, logcat
을 확인하거나 공급업체 DropboxManager
파이프라인에서 최종 사용자 버그를 모니터링하여 비정상 종료가 있는지 확인해야 합니다.
자세한 내용은 Android 네이티브 코드 디버깅에 관한 문서를 참고하세요. - 바로가기 -
GWP-ASan은 Android 11에서 사용자 공간 힙 할당을 위해 도입되었습니다. GWP-ASan이 버그를 감지하면 Cause: [GWP-ASan]:
를 사용하여 비정상 종료 보고서를 기록하고 프로세스를 종료합니다. 버그 신고에는 추가 할당 및 할당 해제 정보가 포함되어 근본 원인을 더 쉽게 식별할 수 있습니다.
GWP-ASan은 시작 시 1%의 시스템 프로세스나 앱 및 AndroidManifest.xml
파일에서 android:gwpAsanMode
를 설정하는 애플리케이션에서 무작위로 사용 설정됩니다.
Android 12에서는 커널 힙 할당을 위한 KFENCE를 도입했습니다. KFENCE가 버그를 감지하면 BUG: KFENCE,
로 시작하는 비정상 종료 보고서를 기록하고 보호 페이지를 사용 중지하며 실행을 계속합니다. 이를 통해 사용자 환경에 최소한의 영향을 미치는 커널 버그 감지 메커니즘이 가능해집니다.
KFENCE에 관한 자세한 내용은 https://www.kernel.org에서 문서를 참고하세요.