DOI QR코드

DOI QR Code

Theory and Implementation of Dynamic Taint Analysis for Tracing Tainted Data of Programs

프로그램의 오염 정보 추적을 위한 동적 오염 분석의 이론 및 구현

  • 임현일 (경남대학교 컴퓨터공학과)
  • Received : 2013.01.17
  • Accepted : 2013.03.27
  • Published : 2013.07.31

Abstract

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.

컴퓨팅 환경에서 소프트웨어가 차지하는 역할이 커지면서 소프트웨어 보안은 더욱 중요한 문제가 되고 있다. 동적 오염 분석은 프로그램 실행 중에 신뢰할 수 없는 소스로부터 유래된 오염된 데이터의 이동을 추적하고 관리하는 분석 방법이다. 이 분석 방법은 소프트웨어의 보안 검증 뿐만 아니라 소프트웨어의 동작을 이해하고, 예상하지 못한 오류에 대한 테스팅 및 디버깅 등에서 활용할 수 있다. 기존에 이와 관련한 연구에서는 동적 오염 분석을 이용한 분석 사례를 보여주고 있지만, 동적 오염 분석에서 오염된 정보 전파 과정 및 동작 과정에 대해서 체계적이고 논리적으로 기술하지 못하고 있다. 본 논문에서는 이런 분석 과정을 이론적으로 기술함으로써 오염된 정보의 전파 과정을 어떻게 추적할 수 있는지 논리적으로 보여주고, 이를 응용할 수 있는 이론적 모델을 제시하고 있다. 본 논문에서 기술한 이론적 모델에 대해서 분석기를 구현하고 프로그램에 대한 분석 결과를 통해서 모델의 정확성을 검증한다. 그리고, 프로그램에 나타나는 오염 정보들의 전파 과정을 보이고 결과를 검증한다. 본 이론적 모델은 동적 오염 분석에서 자료 흐름의 분석 과정을 이해하고 이를 활용하는 분석 방법을 설계하거나 구현하는 기반 지식으로 활용될 수 있을 것이다.

Keywords

References

  1. Marco Pistoia, Satish Chandra, Stephen J. Fink, and Eran Yahav, A survey of static analysis methods for identifying security vulnerabilities in software systems, IBM Systems Journal, Vol.46, No.2, pp.265-288, 2007. https://doi.org/10.1147/sj.462.0265
  2. Manuel Egele, Theodoor Scholte, Engin Kirda, Christopher Kruegel, A Survey on Automated Dynamic Malware Analysis Techniques and Tools, ACM Computing Surveys, Vol.44, No.2, February, 2012.
  3. James Newsome and Dawn Song. Dynamic Taint Analysis for Automatic Detection, Analysis, and Signature Generation of Exploits on Commodity Software. In Proceedings of the Network and Distributed System Security Symposium, 2005.
  4. Winnie Cheng, Qin Zhao, Bei Yu, and Scott Hiroshige, TaintTrace: Efficient Flow Tracing with Dynamic Binary Rewriting, In Proceedings of 11th IEEE Symposium on Computers and Communications, pp.749-754, June, 2006.
  5. James Clause, Wanchun Li, and Ro Orso, Dytan: A Generic Dynamic Taint Analysis Framework, In Proceedings of the International Symposium on Software Testing and Analysis, pp.196-206, 2007.
  6. Zhiwen Bai, Liming Wang, Jinglin Chen, Lin Xu, Jian Liu, and Xiyang Liu, DTAD: A Dynamic Taint Analysis Detector for Information Security, In Proceedings of The Ninth International Conference on Web-Age Information Management, pp.591-597, July, 2008.
  7. Heng Yin, Dawn Song, Manuel Egele, Christopher Kruegel, and Engin Kirda, Panorama: capturing system-wide information flow for malware detection and analysis, In Proceedings of the 14th ACM conference on Computer and communications security, pp.116-127, 2007.
  8. Syntax of the WHILE Language, http://pag.cs.uni-sb.de/while.html
  9. Kenneth Slonneger and Barry L. Kurtz, Formal Syntax and Semantics of Programming Languages, Addison Wesley, 1995.
  10. Sanjiva Prasad and S. Arun-Kumar, An Introduction to Operational Semantics, In the Compiler Design Handbook: Optimizations and Machine Code Generation, pp.841-890, CRC Press, 2002.
  11. The Haskell Programming Language, http://www.haskell.org/.
  12. Mark P. Jones, Typing Haskell in Haskell, In the Proceedings of Haskell Workshop, January, 1999.