> For the complete documentation index, see [llms.txt](https://sul.skill.or.kr/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://sul.skill.or.kr/android-security-test/gwp-asan-kfence.md).

# GWP-ASan 및 KFENCE

## GWP-ASan 및 KFENCE 란?

GWP-ASan과 KFENCE는 각각 사용자 공간과 커널의 확률적 메모리 감지 도구입니다. 이를 사용 설정하면 할당된 메모리를 둘러싸는 추가 메모리 페이지로 소수의 할당이 보호됩니다. 이를 통해 미미한 성능 오버헤드로 버퍼 오버플로와 use-after-free를 감지할 수 있습니다. 보호된 할당의 샘플링 레이트가 작더라도 대규모 배포 시 메모리 안전 버그를 효과적으로 감지할 수 있습니다. 도입 후 이러한 도구는 수많은 플랫폼 버그를 식별하는 데 도움이 되었으며 안정성과 보안을 개선하는 데 유용한 도구임이 입증되었습니다. 공급업체는 이를 사용 설정하여 최종 사용자 기기에서 감지된 버그를 면밀히 모니터링하는 것이 좋습니다.

개발자는 `/data/tombstones`, `logcat`을 확인하거나 공급업체 [`DropboxManager`](https://developer.android.com/reference/android/os/DropBoxManager?hl=ko) 파이프라인에서 최종 사용자 버그를 모니터링하여 비정상 종료가 있는지 확인해야 합니다.

자세한 내용은 Android 네이티브 코드 디버깅에 관한 문서를 참고하세요. [- 바로가기 -](https://source.android.com/docs/core/tests/debug?hl=ko)

## 사용자 공간 메모리 안전 버그를 감지하기 위한 GWP-ASan <a href="#gwp-asan-userspace" id="gwp-asan-userspace"></a>

GWP-ASan은 Android 11에서 사용자 공간 힙 할당을 위해 도입되었습니다. GWP-ASan이 버그를 감지하면 `Cause: [GWP-ASan]:`를 사용하여 비정상 종료 보고서를 기록하고 프로세스를 종료합니다. 버그 신고에는 추가 할당 및 할당 해제 정보가 포함되어 근본 원인을 더 쉽게 식별할 수 있습니다.

GWP-ASan은 시작 시 1%의 시스템 프로세스나 앱 및 `AndroidManifest.xml` 파일에서 `android:gwpAsanMode`를 설정하는 애플리케이션에서 무작위로 사용 설정됩니다.

## 커널 메모리 안전 버그를 감지하기 위한 KFENCE <a href="#kfence-kernel" id="kfence-kernel"></a>

Android 12에서는 커널 힙 할당을 위한 KFENCE를 도입했습니다. KFENCE가 버그를 감지하면 `BUG: KFENCE,`로 시작하는 비정상 종료 보고서를 기록하고 보호 페이지를 사용 중지하며 실행을 계속합니다. 이를 통해 사용자 환경에 최소한의 영향을 미치는 커널 버그 감지 메커니즘이 가능해집니다.

KFENCE에 관한 자세한 내용은 [https://www.kernel.org](https://www.kernel.org/doc/html/latest/dev-tools/kfence.html)에서 문서를 참고하세요.

## 출처 : [바로가기 ](https://source.android.com/)

{% embed url="<https://doc.skill.or.kr>" %}
NHN Cloud 정보 사이트&#x20;
{% endembed %}

{% embed url="<https://ssv.skill.or.kr>" %}
취약점 진단 분석 평가 방법 사이트
{% endembed %}
