Dynamic Analysis based on AOP for Checking Security Vulnerability

보안 취약점 검사를 위한 AOP 기반의 동적 분석

  • 서광익 (동국대학교 컴퓨터공학과) ;
  • 최은만 (동국대학교 컴퓨터공학과)
  • Received : 2010.07.08
  • Accepted : 2010.08.31
  • Published : 2010.10.15

Abstract

OWASP announced most of vulnerabilities result from the data injection by user in 2010 after 2007. Because the contaminated input data is determined at runtime, those data should be checked dynamically. To analyze data and its flow at runtime, dynamic analysis method usually inserts instrument into source code. Intermediate code insertion makes it difficult to manage and extend the code so that the instrument code would be spreaded out according to increase of analysis coverage and volume of code under analysis. In addition, the coupling gets strong between instrument modules and target modules. Therefore developers will struggle against modify or extend the analysis code as instrument. To solve these problem, this paper defines vulnerabilities as a concern using AOP, and suggest the flexible and extensible analysis method to insertion and deletion without increase of coupling.

국제 웹 어플리케이션 보안 연구 단체(OWASP)는 2007년에 이어 2010년에도 취약점 대부분이 사용자의 외부 데이터 입력에 기인한 것으로 발표했다. 이러한 오염된 입력 데이터는 실행 시점에서 결정되기 때문에 동적인 취약점 분석이 필요하다. 동적 분석 방법은 주로 실행 시점의 데이터 분석이나 경로 흐름 분석을 위해 인스트루먼트를 코드 내에 삽입 한다. 하지만 직접적인 코드의 삽입은 관리와 확장이 어려워 분석 범위와 대상이 증가할 때 마다 코드 조각들이 흩어지게 된다. 게다가 인스트루먼트 모듈과 시험 대상 모듈 간의 결합도가 높아진다. 따라서 개발이나 유지보수 단계에서 삽입한 분석 코드를 수정하거나 확장하는데 많은 노력이 필요하게 된다. 본 논문은 이러한 문제점을 해결하기 위해 AOP를 이용하여 취약점을 하나의 관심사로 분류함으로써 결합도의 증가 없이 삽입, 삭제와 유연한 확장이 용이한 방법을 제안한다.

Keywords

References

  1. Gartner, "Now is the time for Security at Application Level," www.gartner.com/DisplayDocument?id=487227, 2006, 12, 1
  2. D. Binkley, "Source Code Analysis: A Road Map," 2007 Future of Software Engineering(FOSE07), pp.104-119, 2007.
  3. D. D. Cruz, P. Henriques, and J. S. Pinto, "Code Analysis: Past and Present," Proceedings of the Third International Workshop on Foundations and Techniques for Open Source Software Certification (OpenCert2009), 2009.
  4. Kiczales, Gregor, G Lamping, A Mendhekar, C Maeda, C Lopes, J Loingtier, J Irwin, Aspect- Oriented Programming, Proc. of ECOOP, vol.1241, pp.220-242, 1997.
  5. CERT Secure Coding Standards, http://www.securecoding.cert.org
  6. Brian Chess, "Secure Programming with Static Analysis," Addison-Wesley Professional, 2007.
  7. Open Web Application Security Project, "The Ten Most Critical Web Application Security Vulnerabilities," http://www.owasp.org/images/0/0f/OWASP_T10_-_2010_rc1.pdf
  8. LoanCalculator project, http://www.planet-source-code.com/vb/scripts/BrowseCategoryOrSearchResults.asp?lngWId=2&txtCriteria=calcul
  9. ReadURL project, http://www.faqs.org/docs/javap/source/index.html
  10. File Management project, http://www.planet-sourcecode.com/vb/scripts/ShowCode.asp?txtCodeId=5441&lngWId=2
  11. Flight Reservation System project, http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=4237&lngWId=2
  12. Li Yuan-yuan, "AOP-Based Attack on Obfuscated Java Code," IEEE 2009 International Conference on Computational Intelligence and Security, pp.238-241, 2009.
  13. Lionel, LaurenceDuchien, Roberto, GabrielHermosillo. "Using Applications," Journal of Software, vol.2, no.6, pp.53-63, December 2007.