Sound Non-interference Analysis for C/C++ | SpringerLink
Skip to main content

Sound Non-interference Analysis for C/C++

  • Conference paper
  • First Online:
Computer Safety, Reliability, and Security (SAFECOMP 2024)

Abstract

Homologation of vehicles in markets that are subject to U.S. regulations requires, as a part of the certification documentation, an analysis of all input and output signals that influence the control or diagnosis of any emissions-related component or system. On-board diagnostic (OBD) systems are required for every component and system that can cause increases in emissions. In this article we present a sound non-interference analysis at the C/C++ code level, that allows to automatically determine which output signals can be influenced by a given input signal, or vice versa, and which can demonstrate the independence between selected input and output signals. The analysis is based on integrating a generic taint analysis framework into a sound static runtime error analyzer that can take the impact of runtime errors on data and control flow into account. Soundness of the underlying analysis is an essential property since it provides full data and control coverage; in particular it can guarantee that all data and function pointer values have been taken into account. Our approach can be applied to signal flow analysis, to demonstrate freedom of interference between software components at the source code level, to show compliance between source code and software architecture, and to satisfy cybersecurity requirements. We will outline the underlying theoretical concepts, present our taint propagation algorithm for non-interference analysis, and report on practical experience on industry-grade example projects.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Subscribe and save

Springer+ Basic
¥17,985 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Chapter
JPY 3498
Price includes VAT (Japan)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
JPY 6634
Price includes VAT (Japan)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
JPY 8293
Price includes VAT (Japan)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Similar content being viewed by others

Notes

  1. 1.

    I.e., comment lines and empty lines are not counted.

References

  1. Aldous, P., Might, M.: Static analysis of non-interference in expressive low-level languages. In: Blazy, S., Jensen, T. (eds.) SAS 2015. LNCS, vol. 9291, pp. 1–17. Springer, Heidelberg (2015). https://doi.org/10.1007/978-3-662-48288-9_1

    Chapter  Google Scholar 

  2. The ArchiMate Enterprise Architecture Modeling Language. https://www.opengroup.org/archimate-forum/archimate-overview [2021]

    Google Scholar 

  3. Barthe, G., et al.: JACK — a tool for validation of security and behaviour of java applications. In: de Boer, F.S., Bonsangue, M.M., Graf, S., de Roever, W.-P. (eds.) FMCO 2006. LNCS, vol. 4709, pp. 152–174. Springer, Heidelberg (2007). https://doi.org/10.1007/978-3-540-74792-5_7

    Chapter  Google Scholar 

  4. California Code of Regulations (CCR).: 13 CA ADC §1968.2. Malfunction and diagnostic system requirements – 2004 and subsequent model-year passenger cars, light-duty trucks, and medium-duty vehicles and engines (2022)

    Google Scholar 

  5. Clang 19.0.0 git documentation. DataFlowSanitizer design document. https://clang.llvm.org/docs/DataFlowSanitizerDesign.html [2024]

    Google Scholar 

  6. Cousot, P.: Semantic foundations of program analysis. In S. Muchnick and N. Jones, editors, Program Flow Analysis: Theory and Applications, chapter 10, pp. 303–342. Prentice-Hall (1981)

    Google Scholar 

  7. Cousot, P., Cousot, R.: Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints. In Proceedings of POPL 1977, pp. 238–252. ACM Press (1977)

    Google Scholar 

  8. Delmas, D., Souyris, J.: ASTRÉE: from research to industry. In: Proceedings of the 14th International Static Analysis Symposium (SAS2007), number 4634 in LNCS, pp. 437–451 (2007)

    Google Scholar 

  9. Feiler, P., Gluch, D., Hudak, J.: Technical Note CMU/SEI-2006-TN-011. The Architecture Analysis & Design Language (AADL): An Introduction. Technical report, Software Engineering Institute, Carnegie Mellon University (2006)

    Google Scholar 

  10. Giacobazzi, R., Mastroeni, I.: Abstract non-interference: parameterizing non-interference by abstract interpretation. In: Jones, N.D., Leroy, X., editors, Proceedings of the 31st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2004, Venice, Italy, January 14-16, 2004, pp. 186–197. ACM (2004)

    Google Scholar 

  11. ISO 26262. Road vehicles – Functional safety (2018)

    Google Scholar 

  12. ISO/IEC JTC1/SC22/WG14 working group. ISO/IEC 9899:2018 information technology – programming languages – c. Technical Report N2310, ISO & IEC (2018)

    Google Scholar 

  13. Kästner, D.: Applying abstract interpretation to demonstrate functional safety. In: Boulanger, J.-L. (ed.) Formal Methods Applied to Industrial Complex Systems. ISTE/Wiley, London, UK (2014)

    Google Scholar 

  14. Kästner, D., Mauborgne, L., Ferdinand, C., Theiling, H.: Detecting spectre vulnerabilities by sound static analysis. In: Anne Coull, R.F., Chan, S., editor, The Fourth International Conference on Cyber-Technologies and Cyber-Systems (CYBER 2019), vol 4 of IARIA Conferences, pp. 29–37. IARIA XPS Press (2019)

    Google Scholar 

  15. Kästner, D., Mauborgne, L., Wilhelm, S., Mallon, C., Ferdinand, C.: Static Data and Control Coupling Analysis. In: 11th Embedded Real Time Systems European Congress (ERTS2022), Toulouse, France (2022)

    Google Scholar 

  16. Kästner, D., et al.: Finding All Potential Runtime Errors and Data Races in Automotive Software. In SAE World Congress 2017. SAE International (2017)

    Google Scholar 

  17. Kästner, D., Pohland, J.: Program analysis on evolving software. In: Roy, M. (ed.) CARS 2015 - Critical Automotive applications: Robustness & Safety. France, Paris (2015)

    Google Scholar 

  18. Kästner, D., Wilhelm, S., Mallon, C., Schank, S., Ferdinand, C., Mauborgne, L.: Automatic sound static analysis for integration verification of AUTOSAR software. In: WCX SAE World Congress Experience, SAE International (2023)

    Google Scholar 

  19. Kästner, D., et al.: Analyze This! Sound Static Analysis for Integration Verification of Large-Scale Automotive Software. In Proceedings of the SAE World Congress 2019 (SAE Technical Paper). SAE International (2019)

    Google Scholar 

  20. Limited, M.: MISRA C++:2008 Guidelines for the use of the C++ language in critical systems (2008)

    Google Scholar 

  21. Logozzo, F., Mohamed, I.: How to make taint analysis precise. In: Arceri, V., Cortesi, A., Ferrara, P., Olliaro, M. (eds) Challenges of Software Verification. Intelligent Systems Reference Library, vol 238. Springer, Singapore (2023). https://doi.org/10.1007/978-981-19-9601-6_3

  22. Miné, A., Delmas, D.: Towards an industrial use of sound static analysis for the verification of concurrent embedded avionics software. In Proceedings of the 15th International Conference on Embedded Software (EMSOFT’15), pp. 65–74. IEEE CS Press (2015)

    Google Scholar 

  23. Miné, A., et al.: Taking static analysis to the next level: proving the absence of run-time errors and data races with astrée. In: 8th European Congress on Embedded Real Time Software and Systems (ERTS 2016), Toulouse, France (2016)

    Google Scholar 

  24. MISRA (Motor Industry Software Reliability Association) Working Group.: MISRA-C:2012 Guidelines for the use of the C language in critical systems. MISRA Limited (2013)

    Google Scholar 

  25. Radio Technical Commission for Aeronautics. RTCA DO-178C. Software Considerations in Airborne Systems and Equipment Certification (2011)

    Google Scholar 

  26. Software Engineering Institute SEI – CERT Division. SEI CERT C Coding Standard – Rules for Developing Safe, Reliable, and Secure Systems. Carnegie Mellon University (2016)

    Google Scholar 

  27. Souyris, J., Le Pavec, E., Himbert, G., Jégu, V., Borios, G., Heckmann, R.: Computing the worst case execution time of an avionics program by abstract interpretation. In: Proceedings of the 5th International Workshop on Worst-Case Execution Time (WCET) Analysis, pp.21–24 (2005)

    Google Scholar 

  28. Spoto, F., et al.: Static identification of injection attacks in java. ACM Trans. Program. Lang. Syst. 41(3), 1–58 (2019)

    Google Scholar 

  29. State of California – Air Resources Board. Public hearing to consider the proposed revisions to the on-board diagnostic system requirements and associated enforcement provisions for passenger cars, light-duty trucks, medium-duty vehicles and engines, and heavy-duty engines. staff report: Initial statement of reasons. https://ww2.arb.ca.gov/sites/default/files/barcu/regact/2021/obd2021/isor.pdf [Retrieved: Jan 2024], 2021

  30. OMG Systems Modeling Language (OMG SysML\(^{\rm TM}\)) Version 1.6. https://www.omg.org/spec/SysML/1.6/PDF [Retrieved: Jan 2021]

  31. Van Gilder, J.F.: Carb mandated obd compliance reporting update. WCX SAE World Congress Experience WCX 2023, https://www.sae-itc.com/binaries/content/assets/itc/content/hrcs/2023-wcx-carbmandatedobdsignalflowanalysisupdate.pdf [retrieved: Jan. 2024], 2023

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Daniel Kästner .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2024 The Author(s), under exclusive license to Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Kästner, D. et al. (2024). Sound Non-interference Analysis for C/C++. In: Ceccarelli, A., Trapp, M., Bondavalli, A., Bitsch, F. (eds) Computer Safety, Reliability, and Security. SAFECOMP 2024. Lecture Notes in Computer Science, vol 14988. Springer, Cham. https://doi.org/10.1007/978-3-031-68606-1_17

Download citation

  • DOI: https://doi.org/10.1007/978-3-031-68606-1_17

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-031-68605-4

  • Online ISBN: 978-3-031-68606-1

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics