DOI QR코드

DOI QR Code

심볼릭 링크 공격 취약성 검출을 위한 분석 기법

An Analysis Method for Detecting Vulnerability to Symbolic Link Exploit

  • 주성용 (동아대학교 대학원 컴퓨터공학과) ;
  • 안준선 (한국항공대학교 항공전자 및 정보통신공학부) ;
  • 조장우 (동아대학교 컴퓨터공학과)
  • 발행 : 2008.02.29

초록

본 논문에서는 심볼릭 링크 공격에 취약한 코드를 정의하고 프로그램 분석 기법을 사용하여 이를 검출하는 방법을 제안한다. 심볼릭 링크 공격을 해결하기 위한 기존의 방법들은 심볼릭 링크 공격을 방어하기 위한 기법들로써 임시 파일에 대한 접근 시 공격이 이루어졌는지에 대한 적절한 검사가 이루어져야 하나, 이를 간과할 경우 공격의 위험에 노출되게 된다. 본 논문에서 제안하는 방법은 심볼릭 링크 공격에 취약한 부분을 자동으로 모두 검출함으로써 프로그래머가 심볼릭 링크 공격을 안전하게 방어할 수 있도록 한다. 제안하는 방법은 취약점 분석을 위해서 기존의 타입 시스템에 새로운 타입 한정자를 추가하고, 추가된 타입 한정자를 고려한 타입 검사를 통해서 심볼릭 링크 공격의 취약점을 식별한다. 제안하는 방법은 자동으로 심볼릭 링크 공격의 취약점을 모두 검출할 수 있기 때문에, 프로그래머가 취약한 것으로 식별된 코드에 대해서만 기존의 방어 기법을 적용하도록 함으로써 프로그램을 전반적으로 검토하거나 수정해야 하는 부담을 줄여준다는 장점을 가진다. 제안하는 방법을 널리 알려진 실용적인 프로그램을 대상으로 실험해 본 결과 전체 fopen() 함수 중 일부만 심볼릭 링크 공격에 취약한 것으로 분석되었으며, 이는 제안한 방법이 프로그래머의 부담을 줄이는데 유용함을 보여준다.

In this paper we define a vulnerable code to symbolic link exploit and propose a technique to detect this using program analysis. The existing methods to solve symbolic link exploit is for protecting it, on accessing a temporary file they should perform an investigation whether the file is attacked by symbolic link exploit. If programmers miss the investigation, the program may be revealed to symbolic link exploit. Because our technique detects all the vulnerable codes to symbolic link exploit, it helps programmers keep the program safety. Our technique add two type qualifiers to the existing type system to analyze vulnerable codes to symbolic link exploit, it detects the vulnerable codes using type checking including the added type qualifiers. Our technique detects all the vulnerable codes to symbolic link exploit automatically, it has the advantage of saving costs of modifying and of overviewing all codes because programmers apply the methods protecting symbolic link exploit to only the detected codes as vulnerable. We experiment our analyzer with widely used programs. In our experiments only a portion of all the function fopen() is analyzed as the vulnerabilities to symbolic link exploit. It shows that our technique is useful to diminish modifying codes.

키워드

참고문헌

  1. Kyung-Goo Doh, Seung Cheol Shin,'Detection of Information Leak by Data Flow Analysis', ACM SIGPLAN Notices, Volume 37, Issue 8, pages 66-71, 2002 https://doi.org/10.1145/596992.597005
  2. Jeffrey S. Foster, Manuel Fahndrich, Alexander Aiken,'A Theory of Type Qualifiers', ACM SIGPLAN Notices, Conference on Programming language design and implementation PLDI '99, Volume 34, Issue 5, pages 192-203, 1999
  3. Jeffrey S. Foster, Tachio Terauchi, Alex Aiken,'Flow-sensitive Type Qualifiers', ACM SIGPLAN Notices, Conference on Programming language design and implementation PLDI '02, Volume 37, Issue 5, pages 1-12, 2002
  4. Jeffrey S. Foster, Robert Johnson, John Kodumal, Alex Aiken,'Flow-insenstive Type Qualifiers', ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 28, Issue 6, pages 1035-1087, 2006 https://doi.org/10.1145/1186632.1186635
  5. Jeffrey S. Foster,'Type Qualifiers: Lightweight Specifications to Improve Software Quality', Ph.D. thesis. University of California, Berkeley, 2002
  6. Etienne Gagnon,'SABLECC, AN OBJECT-ORIENTED COMPILER FRAMEWORK', School of Computer Science, McGill University, Montreal, pages 58-60, 1998
  7. Flemming Nielson, Hanne Riis Nielson, Chris Hankin,'Principles of Program Analysis', Springer, pages 174-175, 1998
  8. Jakob Rehof and Torben A.E. Mogensen. Tractable Constraints in Finite Semilattices. In Hadhia Cousot and David A. Schmidt, editors, Static Analysis, Third International Symposium, volume 1145 of Lecture Notes in Computer Science, Pages 285-300, Aachen, Germany, September 1996. Springer-Verlag
  9. Andrei Sabelfeld, Andrew C. Myers,'Language-Based Information-Flow Security'. IEEE Journal on selected areas in communications, Vol. 21, No.1, January 2003 https://doi.org/10.1109/JSAC.2002.806121
  10. Robert C. Seacord,'Secure Coding in C and C++(한국어판)', Addison-Wesley, pages 277-305, 2006
  11. Umesh Shankar, Kunal Talwar, Jeffrey S. Foster, and David Wagner,'Detecting Format-String Vulnerabilities with Type Qualifiers', 10th USENIX Security Symposium, pages 201-218, 2001
  12. John Viega, Gary McGraw,'Building Secure Software', pages 209-265, 2001
  13. SableCC homepage, http://sablecc.org/
  14. 양대일,'정보 보안 개론과 실습', 한빛 미디어, pages 227-234, 2004