메모리 접근의 오류
C와 C++ 같은 언어에서는 버퍼의 범위를 넘거나 이미 해제한 메모리를 사용하는 오류가 생길 수 있다. AddressSanitizer는 이런 문제를 실행 중에 발견하는 메모리 오류 탐지기로 제안됐다.
여러 저장 영역의 검사
초기 논문은 힙과 스택, 전역 객체에서 경계를 벗어난 접근을 찾는다고 설명했다. 특정한 한 영역의 할당 오류만을 대상으로 하는 것은 아니다.
할당기와 계측의 결합
전용 메모리 할당기와 코드 계측을 이용한다. 코드의 동작을 관찰할 수 있는 검사를 추가해 잘못된 메모리 접근이 발생하는 지점을 알아내도록 한다.
초기 연구의 발견 사례
2012년 논문은 Chromium에서 이전에 알려지지 않은 300개 이상의 오류와 다른 소프트웨어의 오류를 발견했다고 보고했다. 이 수치는 당시 연구의 사례이며 현재 실행의 오류 개수나 속도를 보장하는 값은 아니다.
관련 문서
UndefinedBehaviorSanitizer / libFuzzer / Csmith / 소프트웨어 테스트 / 컴파일러 / 디버깅