디지털 라이브러리[ 검색결과 ]
검색 : [ keyword: code transformation ] (1)
CPI 보안 강화 코드 변환의 실용적인 동등성 검사 기법
http://doi.org/10.5626/JOK.2019.46.12.1279
코드 변환 시의 동등성이 만족되지 않을 경우 소프트웨어 오류를 야기할 수 있다. 기존의 정리 증명을 통한 코드 변환의 동등성 검사는 코드의 규모가 커질수록 기하급수적으로 높은 비용이 요구되기 때문에 실제 소프트웨어 개발 시에 적용하기 어렵다. 본 논문에서는 규칙 증명과 코드 검사의 분리를 통하여 실용적인 LLVM의 코드 변환의 동등성 검사 기법을 제안한다. 먼저 주어진 코드 변환 규칙의 동등성은 자동정리증명을 통하여 컴파일 전에 별도로 증명한다. 그리고 컴파일 과정에서 변환 전과 후의 코드에 대한 정적 분석을 수행하여 코드 변환 규칙이 생성된 코드에 올바르게 적용되었는지 검사한다. 이러한 코드 분석의 수행 시간은 코드의 규모에 선형으로 증가하기 때문에, 규모가 큰 코드에도 효과적으로 적용될 수 있다. 제안된 연구를 코드 포인터 무결성(code pointer integrity) 보안강화 코드변환에 적용하여 LLVM 기반 도구제작에 활용하였다.