DOI QR코드

DOI QR Code

Comparison of Path Exploration and Model Checking Techniques for Checking Automotive API Call Safety

차량전장용 소프트웨어의 API 제약사항 위배여부 탐지를 위한 실행경로 탐색방법과 모델검증 방법의 비교

  • Received : 2016.07.04
  • Accepted : 2016.10.16
  • Published : 2016.12.31

Abstract

Automotive control software can be a source of critical safety issues when developers do not comply system constraints. However, a violation is difficult to identify in complicated source code if not supported by an automated verification tool. This paper introduces two possible approaches that check whether an automotive control software complies API call constraints to compare their performance and effectiveness. One method statically analyzes the source code and explores all possible execution paths, and the other utilizes a model checker to monitor constraint violations for a given set of constraint automata. We have implemented both approaches and performed a series of experiments showing that the approach with model-checking finds constraint violations more accurately and scales better.

차량전장용 제어 소프트웨어는 표준에 명시된 시스템 호출 제약사항을 위배할 경우 심각한 안전성 위협을 초래할 수 있다. 그러나 제약사항 위배는 실행경로가 복잡해질 경우 수동분석으로 색출하기 어렵고 테스팅을 통해 찾아내기도 어려워 이에 특화된 검증 방법이 필요하다. 본 연구에서는 차량전장용 제어 소프트웨어의 시스템 호출 제약사항 위배 여부를 효과적으로 검증하기 위한 두 가지 방법을 소개하고 그 효과를 실험적으로 비교하였다. 첫 번째 방법은 애플리케이션의 모든 가능한 실행경로를 탐색하고 각 경로의 제약사항 준수여부를 확인하는 방법이며, 두 번째 방법은 모델 검증 도구를 이용하여 애플리케이션이 오토마타로 표현된 제약사항을 위배하는 경우가 발생가능한지 확인하는 방법이다. 각 방법을 구현하고 실험한 결과 실행경로를 이용한 방법은 오탐을 유발하고 몇 가지 제약사항 위반을 놓치는 경우가 있는데 반해서 모델 검증을 이용한 방법은 오탐이 없었으며 비교적 큰 애플리케이션을 대상으로 보다 빠른 시간 내에 검증을 수행할 수 있음을 보였다.

Keywords

References

  1. OSEK/VDX [Internet], http://www.osek-vdx.org/.
  2. D. Kim and Y. Choi, "Light-weight api-call safety checking for automotive control software using constraint patterns," in 6th International Conference on IT Convergence and Security, ICITCS'16, pp.314-318, 2016
  3. E. Clarke and D. Kroening, "A tool for checking ANSI-C programs," in International Conference on Tools and Algorithms for the Construction and Analysis of Systems, pp.168-176. Spinger, 2004.
  4. T. Byun and Y. Choi, "Automated system-level safety testing using constraint patterns for automotive operating systems," in Proceedings of the 30th Annual ACM Symposium on Applied Computing, SAC '15, pp.1815-1822, 2015.
  5. Jean-Luc Bechennec, et al., "Trampoline an OpenSource Implementation of the OSEK/VDX RTOS Specification," IEEE Conference on Emerging Technologies and Factory Automation, 2006.
  6. Y. Choi, "Constraint specification and test generation for osek/vdx-based operating systems," in Proceedings of the 11th International Conference on Software Engineering and Formal Methods, pp.305-319, Sept., 2013.
  7. M. Park, D. Kim, and Y. Choi, "CodeAnt : Code Slicing Tool for Effective Software Verification," KIPS Transactions on Software and Data Engineering, Vol.1, No.1, pp.1-8, 2012. https://doi.org/10.3745/KTSDE.2012.1.1.001
  8. K. L. McMillan, "Symbolic Model Checking," Kluwer Academic Publishers, Norwell, MA, USA, 1993.
  9. E. M. Clarke, O. Grumberg, and D. Peled, "Model checking," MIT press, 1999.
  10. R. E. Strom and S. Yemini, "Typestate: A programming language concept for enhancing software reliability," IEEE Trans. Software Eng., Vol.12, No.1, pp.157-171, 1986.
  11. S. J. Fink, E. Yahav, N. Dor, G. Ramalingam, and E. Geay, "Effective typestate verification in the presence of aliasing," ACM Trans. Softw. Eng. Methodol., Vol.17, No.2, pp.9:1-9:34, May, 2008.
  12. J. Field, D. Goyal, G. Ramalingam, and E. Yahav, "Typestate verification: Abstraction techniques and complexity results," Sci. Comput. Program., Vol.58, No.1-2, pp.57-82, 2005. https://doi.org/10.1016/j.scico.2005.02.004
  13. T. Ball, E. Bounimova, B. Cook, V. Levin, J. Lichtenberg, C. McGarvery, B. Ondrusek, S. K. Rajamani, and A. Ustuner, "Thorough Static Analysis of Device Drivers," ACM SIGOPS/EuroSys European Conference on Computer Systems, Vol.40, Issue 4, pp.73-85, 2006.
  14. T. Ball, E. Bounimova, R. Kumar, and V. Levin, "SLAM2: Static driver verification with under 4% false alarms," Conference on Formal Methods in Computer-Aided Design, pp.35-42, 2006.