검색 여닫기
검색
메뉴 여닫기
535
243
4
2.1천
noriwiki
둘러보기
대문
최근 바뀜
임의의 문서로
미디어위키 도움말
특수 문서 목록
파일 올리기
환경 설정 메뉴 여닫기
notifications
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.
user-interface-preferences
한국어
개인 도구
로그인
Debloating Address Sanitizer 문서 원본 보기
noriwiki
문서 공유하기
다른 명령
←
Debloating Address Sanitizer
문서 편집 권한이 없습니다. 다음 이유를 확인해주세요:
요청한 명령은 다음 권한을 가진 사용자에게 제한됩니다:
사용자
.
문서의 원본을 보거나 복사할 수 있습니다.
[[분류: USENIX Security]] Yuchen Zhang, Chengbin Pang, Georgios Portokalidis, Nijos Triandopoulos, Jun Xu USENIX Security 2022 == 개요 == [[AddressSanitizer]]의 성능 분석과, 그에 대한 여러가지의 Optimization technique를 제시한 논문이다. == Motivation & Importance == ASAN은 강력한 '''Capability''', '''Scalability''', '''Usability'''덕분에 많이 사용되는 Memory Santizier이다. 그러나 ASAN은 대략 1.5x-3.x의 메모리 오버헤드가 대략 200%가 넘는 Performance overhead가 발생한다는 성능상의 단점이 있다. 따라서, 위의 언급한 3개의 장점을 해치지 않으면서, 최대한 성능을 최적화 하기 위한 기법을 개발하는 것이 중요하다. == Asan 성능 분석 == [[파일:USENIX Security 2022 ASan-- Figure 3.png|섬네일|가운데|800픽셀]] * Sanitizer Checks: 메모리 접근(읽기 및 쓰기)에 대해 삽입된 Sanitizer 검사를 비활성화 * Interceptor: memcpy, memset, memmove 등 표준 C 라이브러리 함수 호출을 감시하거나 가로채는 인터셉터 기능을 제거 * Poisoning: 레드존(Redzone, 보호용 패딩 영역)에 대해 의도적으로 유효하지 않은 값(poison)을 채워 넣는 작업을 생략 * Logging: malloc, free 등의 시점에 생성되는 스택 트레이스 로그를 포함하여, 중간 로깅 작업을 제거 AddressSanitizer가 자체적으로 제공하는 힙 관리 기능을 비활성화하고, 표준 C 라이브러리의 기본 힙 할당/해제 방식으로 복귀한다. 이는 호환성과 성능을 높이는 데 기여할 수 있다. * Redzone: 메모리 할당 주변에 삽입되는 레드존 영역과 관련된 모든 동작을 제거 == Design (Optimization) == * Optimization 1: Static analysis를 통해서 확실하게 Bound check를 정적인 시간에 할 수 있는 경우, 해당 메모리 접근에 대한 Sanitizer검사를 제거 * Optimiztaion 2: Sanitizer check중에서 다른 검사에 의해서 중복되는 검사를 제거 * Optimization 3: 물리적으로 인접한 메모리 접근을 식별해서, 해당 검사를 하나로 병합 * Optimization 4: 불변 주소를 사용하는 메모리 접근을 찾아서, Sanitizer검사를 루프 밖으로 이동시켜, 루프내의 반복적인 검사를 하나로 통합하고, 증가하거나 감소하는 주소를 찾아 Iteration간의 검사를 하나로 통합
Debloating Address Sanitizer
문서로 돌아갑니다.