초록
컴퓨팅 환경에서 소프트웨어가 차지하는 역할이 커지면서 소프트웨어 보안은 더욱 중요한 문제가 되고 있다. 동적 오염 분석은 프로그램 실행 중에 신뢰할 수 없는 소스로부터 유래된 오염된 데이터의 이동을 추적하고 관리하는 분석 방법이다. 이 분석 방법은 소프트웨어의 보안 검증 뿐만 아니라 소프트웨어의 동작을 이해하고, 예상하지 못한 오류에 대한 테스팅 및 디버깅 등에서 활용할 수 있다. 기존에 이와 관련한 연구에서는 동적 오염 분석을 이용한 분석 사례를 보여주고 있지만, 동적 오염 분석에서 오염된 정보 전파 과정 및 동작 과정에 대해서 체계적이고 논리적으로 기술하지 못하고 있다. 본 논문에서는 이런 분석 과정을 이론적으로 기술함으로써 오염된 정보의 전파 과정을 어떻게 추적할 수 있는지 논리적으로 보여주고, 이를 응용할 수 있는 이론적 모델을 제시하고 있다. 본 논문에서 기술한 이론적 모델에 대해서 분석기를 구현하고 프로그램에 대한 분석 결과를 통해서 모델의 정확성을 검증한다. 그리고, 프로그램에 나타나는 오염 정보들의 전파 과정을 보이고 결과를 검증한다. 본 이론적 모델은 동적 오염 분석에서 자료 흐름의 분석 과정을 이해하고 이를 활용하는 분석 방법을 설계하거나 구현하는 기반 지식으로 활용될 수 있을 것이다.
As the role of software increases in computing environments, issues in software security become more important problems. Dynamic taint analysis is a technique to trace and manage tainted data originated from unreliable sources during the execution of a program. This analysis can be applied to software security verification as well as software behavior understanding, testing unexpected errors, or debugging. In the previous researches, they focussed only to show the analysis results of dynamic taint analysis, and they did not logically describe propagation process of tainted data and analysis procedures. So, there were difficulties in understanding the analysis procedures or applying to other analysis. In this paper, by theoretically describing the analysis procedure, we logically show how the propagation process of tainted data can be traced, and present a theoretical model for dynamic taint analysis. In addition, we verify the correctness of the proposed model by implementing an analyser, and show that propagation of tainted data can be traced by the model. The proposed model can be applied to understand the analysis procedures of data flows in dynamic taint analysis, and can be used as an base knowledge for designing and implementing analysis method, which applies such analysis method.