메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.

Code sanitizer: 두 판 사이의 차이

noriwiki
새 문서: 분류: 소프트웨어 기반 보안 == 개요 == Code santizier은 Compiler Instrumentation을 활용하여서 Runtime에 버그를 잡는 Programming tool을 의미한다. 대표적인 예로 Shadow memory를 활용하셔어 Memory corruption을 추적하는 AddressSanitizer과 같은 툴이 있다. == 종류 == {| class="wikitable" |+ !Name !Target !Target Vulnerability !Memory overhead !Performance overhead !Scalability !Tool Chain |- |ASAN |Ap...
 
편집 요약 없음
 
5번째 줄: 5번째 줄:


== 종류 ==
== 종류 ==
* Performance와 Memory overhead는 서로 trade-off관계이 있는 경우가 대다수임
* Scalability는 멀티 스레딩 환경 (보통 [[PARSEC]])에서 어느정도 Scalability를 보였는지를 표시, ? (멀티 스레딩 구현 안함, 측정 안함), Low - Moderate - High로 표기
* Transparency는 Application수정 필요한지 표기. Yes (Full transparent), No (특정 기능이 없거나, 전체적으로 다시 구현해야 하는 경우)
=== Sanitizer 관련 프로젝트 정리 ===
{| class="wikitable"
{| class="wikitable"
|+
|+Sanitizer 프로젝트 정리 '''(* 수치는 직접 측정, 혹은 다른 논문에 측정된 수치를 참고함)'''
!Name
!Name
!Target
!Target
13번째 줄: 18번째 줄:
!Performance overhead
!Performance overhead
!Scalability
!Scalability
!Tool Chain
|-
|-
|[[ASAN]]
|[[ASAN]]
21번째 줄: 25번째 줄:
|240%
|240%
|Low
|Low
|[[Clang]]
|-
|-
|[[KASAN]]
|[[KASAN]]
29번째 줄: 32번째 줄:
|
|
|
|
|[[Clang]]
|-
|-
|LSan
|LSan
37번째 줄: 39번째 줄:
|
|
|
|
|[[Clang]]
|-
|-
|TSan
|TSan
45번째 줄: 46번째 줄:
|
|
|
|
|[[Clang]]
|-
|-
|MSan
|MSan
53번째 줄: 53번째 줄:
|
|
|
|
|[[Clang]]
|-
|-
|UBSan
|UBSan
61번째 줄: 60번째 줄:
|
|
|
|
|[[Clang]]
|}
 
=== Sanitizer 관련 논문 정리 ===
{| class="wikitable"
|+Sanitizer 관련 논문 정리 '''(* 수치는 직접 측정, 혹은 다른 논문에 측정된 수치를 참고함)'''
!Name
!Target
!Target Vulnerability
!Memory overhead
!Performance overhead
!Scalability
|-
|-
|[[ASAN]]
|Application
|Memory corruption
|73%
|240%
|Low
|-
|[[KASAN]]
|OS
|Memory corruption
|
|
|
|
|
|
|-
|LSan
|Application
|Memory Leak
|
|
|
|
|-
|TSan
|Application
|Data races & Deda locks
|
|
|
|-
|MSan
|Application
|Uninitialized memory
|
|
|
|-
|UBSan
|Application
|Undefined behaviors
|
|
|
|
|
|
|}
|}

2025년 5월 27일 (화) 10:58 기준 최신판


개요

Code santizier은 Compiler Instrumentation을 활용하여서 Runtime에 버그를 잡는 Programming tool을 의미한다. 대표적인 예로 Shadow memory를 활용하셔어 Memory corruption을 추적하는 AddressSanitizer과 같은 툴이 있다.

종류

  • Performance와 Memory overhead는 서로 trade-off관계이 있는 경우가 대다수임
  • Scalability는 멀티 스레딩 환경 (보통 PARSEC)에서 어느정도 Scalability를 보였는지를 표시, ? (멀티 스레딩 구현 안함, 측정 안함), Low - Moderate - High로 표기
  • Transparency는 Application수정 필요한지 표기. Yes (Full transparent), No (특정 기능이 없거나, 전체적으로 다시 구현해야 하는 경우)

Sanitizer 관련 프로젝트 정리

Sanitizer 프로젝트 정리 (* 수치는 직접 측정, 혹은 다른 논문에 측정된 수치를 참고함)
Name Target Target Vulnerability Memory overhead Performance overhead Scalability
ASAN Application Memory corruption 73% 240% Low
KASAN OS Memory corruption
LSan Application Memory Leak
TSan Application Data races & Deda locks
MSan Application Uninitialized memory
UBSan Application Undefined behaviors

Sanitizer 관련 논문 정리

Sanitizer 관련 논문 정리 (* 수치는 직접 측정, 혹은 다른 논문에 측정된 수치를 참고함)
Name Target Target Vulnerability Memory overhead Performance overhead Scalability
ASAN Application Memory corruption 73% 240% Low
KASAN OS Memory corruption
LSan Application Memory Leak
TSan Application Data races & Deda locks
MSan Application Uninitialized memory
UBSan Application Undefined behaviors