위키득계정 ↗
기술

MemorySanitizer

MemorySanitizer기술
약칭
MSan
대표 논문
CGO 2015
검사 대상
초기화하지 않은 메모리의 사용
주요 기반
컴파일 계측과 그림자 메모리
MemorySanitizer는 초기화하지 않은 메모리의 사용을 실행 중에 찾는 C·C++ 검사 도구다. 컴파일 계측과 비트 단위의 그림자 메모리를 이용하며 값의 출처를 추적하는 방식도 제공한다.

초기화 여부의 추적

메모리 주소가 유효한지만으로 값이 올바르게 준비됐는지 알 수는 없다. MemorySanitizer는 초기화되지 않은 메모리를 사용하는 문제를 동적으로 탐지하는 데 초점을 맞춘다.

그림자 정보의 전파

실행 중 비트 단위로 정밀한 그림자 메모리를 사용한다. 초기화하지 않은 메모리를 단순히 복사하는 과정에서 불필요한 오탐이 생기지 않도록 그림자 정보를 전파한다.

값의 출처를 함께 보고하기

선택적인 출처 추적 모드는 문제의 메모리가 어디서 왔는지 더 자세한 보고를 제공한다. 지역 변수 이름과 중간 저장을 포함한 이력을 보여 주어 원인을 따라가는 데 도움을 준다.

추가 정보와 실행 비용

출처 추적을 켜면 더 자세한 정보를 얻는 대신 추가 비용이 든다. 초기 연구는 큰 규모에 도구를 적용한 경험과 컴파일 계측이 동적 바이너리 계측에 비해 갖는 이점을 분석했다.

관련 문서

ThreadSanitizer / AddressSanitizer / UndefinedBehaviorSanitizer / libFuzzer / 소프트웨어 테스트 / 디버깅