정형 검증 도구를 이용한 보안 소프트웨어 개발 방안

A Security Software Development Methodology Using Formal Verification Tools

  • 장승주 (동의대학교 컴퓨터공학과)
  • 발행 : 2006.04.01

초록

본 논문에서는 정형 검증 도구를 이용한 보안 소프트웨어의 보안성을 검증하고 검증된 결과를 이용하여 안전한 보안 소프트웨어 개발 방안을 살펴본다. 정형 검증 기법에 따라 사용되어질 수 있는 각 정형 검증 도구들을 살펴보고 그 특성을 파악하여 보안 소프트웨어의 안정성과 신뢰성을 보장하는 적합한 도구들을 알아보고, 보안 소프트웨어 개발 방안을 제시한다. Z 언어를 이용하는 도구인 Z/EVES는 Z명세에 대한 분석 방법을 제시함으로써 보안 소프트웨어에서 가장 많이 사용되는 대표적인 정형 검증 도구이다. 본 논문에서는 보안 소프트웨어 검증을 위하여 C 언어로 작성된 보안 소프트웨어를 Z명세 언어로 변환하고 이것을 Z/EVES도구를 이용한다.

This paper suggests method of safe security S/W by verifying and its result of formal verification tool. We will survey many formal verification tools and compare features of these tools. And we will suggest what tool is appropriate and methodogoly of developing safe security S/W. The Z/EVES is the most appropriate tool. This paper proposes formal verification of ACS by using RoZ tool which is formal verification tool to create UML model. The specification and verification are executed using Z/EVES tool. These procedures can find weak or wrong point of developed S/W.

키워드

참고문헌

  1. Simon Lukell, Chris Veldman, 'Automated Attack Analysis and Code Generation in a Unified, Multi-Dimensional Security Protocol Engineering Framework,' COMPUTER SCIENCE HONOURS, UNIVERSITY OF CAPE TOWN. CS02-15-00. OCTOBER 2002
  2. The VDM Tool Group, 'User Manual for the IFAD VDM-SL Toolbox,' IFAD, Odense, Danmark, 1999
  3. G.J. Holzmann. The Spin Model Checker-Primer and Reference Manual. Addison-Wesley, http://www.spinroot.com/. 2003
  4. M.Bishop, 'Computer Security,' Addison-Wesley, 2002
  5. K.L. McMillan, 'SMV system,' Last updated: November 6, 2000
  6. David Harel and Amnon Naamad, 'The STATEMATE Semantics of Starecharts,' ACM Trans. Soft. Method, 1996 https://doi.org/10.1145/235321.235322
  7. The HOL System Tutorial, version3. 'http://www.cl.cam.ac.uk/users/mn200/hol-tutorial/index.html'
  8. A Quick Introductin to SPIN, 'http://netlib.belllabs.comlnetlib/spin/whatispin.html'
  9. Gerard J. Holzmann, 'The Model Checker Spin,' IEEE TRANSACTIONS ON SOFTWARE ENGINEERING. VOL 23. NO.5. MAY 1997 https://doi.org/10.1109/32.588521
  10. T. Ball and S. K. Rajamani, 'SLIC: A Specification Language for Interface Checking (of C),' MSR-TR-2001-2
  11. J. Corbett, M. Dwyer, J. Hatcliff, C. Pasareanu, Robby, S. Laubach, H. Zheng, 'Bandera: Extracting Finite-state Models from Java Source Code,' Proceedings of the 22th ICSE, 2000 https://doi.org/10.1145/337180.337234
  12. Crow J, Owre S, Rushby J, Shankar N, Srivas M. A tutorial introduction to PVS. Workshop on Industrial-Strength Formal Specification Techniques (WIFT '95), 1995; 1-112
  13. Owre S, Shankar N, Rushby J, Stringer-Calvert D. PVS System Guide Version 2.3. Computer Science Laboratory, SRI International, 1999; 1-88
  14. C. Meadows, 'The NRL Protocol Analyzer: An Overview,' Journal of Logic Programming 24(2), pp. 113 -131. 1996 https://doi.org/10.1016/0743-1066(95)00095-X
  15. T. Ball and S. K. Rajamani, 'The SLAM Toolkit', proceeding of CAV 2001, 2000
  16. C.Elks, 'Issue in Formal Methods for the Analysis and Description of Security of Protocols,' http://www.ee.virginia.deu/~rdw/EE68601/tps.psf
  17. M. Saaltink 'The Z/EVES User's Guide,' TR-975493-06, ORA Canada, 1997
  18. 한국 소프트웨어 진흥원,'소프트웨어 모델링 및 분석기법',2003