위키득계정 ↗
기술

HWAddressSanitizer

HWAddressSanitizer기술
약칭
HWASan
분류
메모리 접근 검사
기반 개념
포인터 태그와 메모리 태그
관련 도구
AddressSanitizer
HWAddressSanitizer는 포인터와 메모리의 태그를 비교해 잘못된 접근을 찾는 메모리 안전성 검사 도구다. 하드웨어의 주소 태깅 지원을 일부 활용하는 방식으로 설계되었다.

태그 일치 검사

객체와 이를 가리키는 포인터에 태그를 부여하고 메모리 접근 시 일치 여부를 확인한다. 태그가 맞지 않으면 잘못된 접근의 단서가 된다. 모든 메모리 접근의 의미를 이해하는 방식이 아니라 태그와 계측 규칙을 이용한 검사다.

하드웨어 지원의 의미

AArch64의 주소 태깅 기능 등을 활용할 수 있다. 다른 아키텍처의 구현과 제한은 같지 않으므로 지원 조건을 확인해야 한다. 하드웨어 보조라는 이름이 모든 검사를 전용 하드웨어만으로 처리한다는 뜻은 아니며 컴파일러 계측도 참여한다.

비용과 탐지 범위

AddressSanitizer의 레드존과 격리 방식과는 메모리 비용 및 탐지 특성이 다르다. 유한한 태그와 객체 배치가 검사 결과에 영향을 주므로 오류가 없다는 증명으로 사용하지 않는다. 대상 플랫폼과 빌드에 맞는 실행 검사 결과로 해석한다.

관련 문서

AddressSanitizer / MemorySanitizer / LeakSanitizer / Clang