Detection of invalidated sanity checks caused by undefined behaviors
JongHyup Lee · 정보보호학회논문지 · 2014
C언어에는 프로그래머의 의도와는 다르게 동작하는 정의되지 않은 행동(undefined behavior)들이 존재한다. 정상적인 데이터를 확인하기 위한 안전성 검사에서 정의되지 못한 행동에 해당되는 경우를 인지하지 못하고 사용하여 안전성 검사가 컴파일러에 의해 무효화 되는 문제점이 발생한다. 본 논문에서는 이러한 문제점들을 해결하기 위해 소스코드에서 안전성 검사를 표기하고 실행파일에서 유효성을 확인하는 자동화된 시스템을 제안한다. C programming language has undefined behaviors, which cause unintended execution of a program. When a programmer adds sanity checks without caring about undefined behaviors, compilers may misunderstand and invalidate the sanity checks. Thus, we propose an automated system to detect invalidated sanity checks by marking sanity checks in source code and checking the marks in binary code.