Abstract
Information flow analysis (IFA) is a powerful technique for verifying confidentiality and integrity. This is highly desirable for embedded systems, where security violations can lead to significant economic damages or even loss of human life. Unfortunately, if shared bus architectures are used, classical IFA that do not consider timing behavior will always classify the whole system as insecure. In this paper, we present an approach to regain precision in IFA for timed systems that concurrently execute processes using a cooperative scheduler. Our key idea is to extend a classical IFA approach based on program dependence graphs with a symbolic execution together with abstract interpretation to precisely yet abstractly capture data, control, timing, and event dependencies between processes. While this increases the cost of the analysis, the gain in precision leverages IFA even for concurrent systems with time-shared bus architectures as they are widely used, for example, in the automotive industry. We have implemented our approach for the system level description language SystemC, and demonstrate its applicability with a case study that uses a general-purpose input/ouput (GPIO).
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
Notes
- 1.
SystemC allows for more complex process states, e.g. waiting for one or all of several events or combining waiting for events with a timeout. We omit this in the definition, but our prototypical implementation can handle such complex process states.
- 2.
A reproduction package including the implementation and all examples discussed in this paper can be found at https://doi.org/10.5281/zenodo.12584236.
- 3.
Executed with Java 21 on an AMD Ryzen 9 5900X with 6.5 GB of RAM available to the JVM and without use of parallelization in the analysis.
References
Chattopadhyay, S., Beck, M., Rezine, A., Zeller, A.: Quantifying the information leakage in cache attacks via symbolic execution. ACM Trans. Embed. Comput. Syst. 18(1), 7:1–7:27 (2019)
Cimatti, A., Narasamdya, I., Roveri, M.: Software model checking SystemC. IEEE Trans. Comput.-Aided Des. Integr. Circuits Syst. 32(5), 774–787 (2013)
Coughlin, N., Smith, G.: Rely/guarantee reasoning for noninterference in non-blocking algorithms. In: IEEE Computer Security Foundations Symposium, CSF, pp. 380–394 (2020)
Cousot, P., Cousot, R.: Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints. In: ACM Symposium on Principles of Programming Languages, pp. 238–252 (1977)
Davidson, D., Moench, B., Ristenpart, T., Jha, S.: FIE on firmware: finding vulnerabilities in embedded systems using symbolic execution. In: USENIX Security Symposium, pp. 463–478 (2013)
Eilers, M., Dardinier, T., Müller, P.: CommCSL: proving information flow security for concurrent programs using abstract commutativity. Proc. ACM Program. Lang. 7(PLDI), 1682–1707 (2023)
Ernst, G., Murray, T.: SecCSL: security concurrent separation logic. In: Dillig, I., Tasiran, S. (eds.) CAV 2019. LNCS, vol. 11562, pp. 208–230. Springer, Cham (2019). https://doi.org/10.1007/978-3-030-25543-5_13
Focardi, R., Gorrieri, R., Martinelli, F.: Real-time information flow analysis. IEEE J. Sel. Areas Commun. 21(1), 20–35 (2003)
Fowze, F., Choudhury, M., Forte, D.: Eisec: exhaustive information flow security of hardware intellectual property utilizing symbolic execution. In: Asian Hardware Oriented Security and Trust Symposium, AsianHOST, pp. 1–6 (2022)
Gerking, C., Schubert, D., Bodden, E.: Model checking the information flow security of real-time systems. In: Engineering Secure Software and Systems - International Symposium, ESSoS. vol. 10953, pp. 27–43 (2018)
Giffhorn, D., Snelting, G.: A new algorithm for low-deterministic security. Int. J. Inf. Sec. 14(3), 263–287 (2015)
Goguen, J.A., Meseguer, J.: Security policies and security models. In: 1982 IEEE Symposium on Security and Privacy, pp. 11–20 (1982)
Habibi, A., Moinudeen, H., Tahar, S.: Generating finite state machines from SystemC. In: Design, Automation and Test in Europe (DATE), pp. 76–81 (2006)
Hammer, C., Snelting, G.: An improved slicer for java. In: ACM SIGPLAN-SIGSOFT Workshop on Program Analysis For Software Tools and Engineering, PASTE, pp. 17–22 (2004)
Hecker, M., Bischof, S., Snelting, G.: On time-sensitive control dependencies. ACM Trans. Program. Lang. Syst. 44(1), 2:1–2:37 (2022)
Herber, P., Hünnemeyer, B.: Formal verification of SystemC designs using the BLAST software model checker. In: ACESMB@ MoDELS, pp. 44–53 (2014)
Herber, P., Pockrandt, M., Glesner, S.: STATE – a SystemC to timed automata transformation engine. In: ICESS (2015)
Herdt, V., Le, H.M., Große, D., Drechsler, R.: Verifying SystemC using intermediate verification language and stateful symbolic simulation. IEEE Trans. Comput-Aided Des. Integr. Circuits Syst. 38(7), 1359–1372 (2018)
Horwitz, S., Reps, T.W., Binkley, D.W.: Interprocedural slicing using dependence graphs. ACM Trans. Program. Lang. Syst. 12(1), 26–60 (1990)
Hsieh, C.S., Unger, E.A., Mata-Toledo, R.A.: Using program dependence graphs for information flow control. J. Syst. Softw. 17(3), 227–232 (1992)
IEEE Standards Association: IEEE Std. 1666–2011, Open SystemC Language Reference Manual. IEEE Press (2011)
Jaß, L., Herber, P.: Bit-precise formal verification for SystemC using satisfiability modulo theories solving. In: International Embedded Systems Symposium (IESS) (2015)
Karbyshev, A., Svendsen, K., Askarov, A., Birkedal, L.: Compositional non-interference for concurrent programs via separation and framing. In: Principles of Security and Trust - International Conference, POST, vol. 10804, pp. 53–78 (2018)
Karlsson, D., Eles, P., Peng, Z.: Formal verification of SystemC designs using a petri-net based representation. In: Design, Automation and Test in Europe (DATE), pp. 1228–1233 (2006)
King, J.C.: Symbolic execution and program testing. Commun. ACM 19(7), 385–394 (1976)
Krinke, J.: Context-sensitive slicing of concurrent programs. In: ACM SIGSOFT Symposium on Foundations of Software Engineering, FSE, pp. 178–187 (2003)
Lanotte, R., Maggiolo-Schettini, A., Troina, A.: Time and probability-based information flow analysis. IEEE Trans. Softw. Eng. 36(5), 719–734 (2010)
Man, K.L., Fedeli, A., Mercaldi, M., Boubekeur, M., Schellekens, M.P.: SC2SCFL: automated SystemC to SystemCFL translation. In: Embedded Computing Systems: Architectures, Modeling, and Simulation, pp. 34–45 (2007)
Mantel, H., Sabelfeld, A.: A generic approach to the security of multi-threaded programs. In: IEEE Computer Security Foundations Workshop (CSFW), pp. 126–142. IEEE Computer Society (2001)
Mantel, H., Sands, D., Sudbrock, H.: Assumptions and guarantees for compositional noninterference. In: IEEE Computer Security Foundations Symposium, CSF, pp. 218–232 (2011)
Mantel, H., Sudbrock, H.: Types vs. PDGs in information flow analysis. In: Logic-Based Program Synthesis and Transformation: International Symposium, LOPSTR, pp. 106–121 (2013)
Murray, T.C., Sison, R., Engelhardt, K.: COVERN: a logic for compositional verification of information flow control. In: IEEE European Symposium on Security and Privacy, EuroS &P, pp. 16–30 (2018)
Nanda, M.G., Ramesh, S.: Interprocedural slicing of multithreaded programs with applications to Java. ACM Trans. Program. Lang. Syst. 28(6), 1088–1144 (2006)
Nielson, F., Nielson, H.R., Vasilikos, P.: Information flow for timed automata. In: Aceto, L., Bacci, G., Bacci, G., Ingólfsdóttir, A., Legay, A., Mardare, R. (eds.) Models, Algorithms, Logics and Tools. LNCS, vol. 10460, pp. 3–21. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-63121-9_1
Phan, Q., Malacaria, P., Tkachuk, O., Pasareanu, C.S.: Symbolic quantitative information flow. ACM SIGSOFT Softw. Eng. Notes 37(6), 1–5 (2012)
Ryan, K., Gregoire, M., Sturton, C.: SEIF: augmented symbolic execution for information flow in hardware designs. In: International Workshop on Hardware and Architectural Support for Security and Privacy, HASP, pp. 1–9 (2023)
Schoepe, D., Murray, T., Sabelfeld, A.: VERONICA: expressive and precise concurrent information flow security. In: IEEE Computer Security Foundations Symposium, CSF, pp. 79–94 (2020)
Schwan, S., Herber, P.: Optimized hardware/software co-verification using the UCLID satisfiability modulo theory solver. In: International Conference on Enabling Technologies: Infrastructure for Collaborative Enterprises, WETICE, pp. 225–230 (2020)
Snelting, G.: Combining slicing and constraint solving for validation of measurement software. In: Static Analysis, International Symposium, SAS, vol. 1145, pp. 332–348 (1996)
Subramanyan, P., Malik, S., Khattri, H., Maiti, A., Fung, J.M.: Verifying information flow properties of firmware using symbolic execution. In: Design, Automation and Test in Europe Conference and Exhibition, DATE, pp. 337–342 (2016)
Tasche, P., Monti, R.E., Drerup, S.E., Blohm, P., Herber, P., Huisman, M.: Deductive verification of parameterized embedded systems modeled in SystemC. In: Verification, Model Checking, and Abstract Interpretation, pp. 187–209 (2024)
Volpano, D., Irvine, C., Smith, G.: A sound type system for secure flow analysis. J. Comput. Secur. 4(2–3), 167–187 (1996)
Weiser, M.D.: Program slicing. IEEE Trans. Softw. Eng. 10(4), 352–357 (1984)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2025 The Author(s), under exclusive license to Springer Nature Switzerland AG
About this paper
Cite this paper
Becker-Kupczok, J., Herber, P. (2025). Symbolic Execution for Precise Information Flow Analysis of Timed Concurrent Systems. In: Madeira, A., Knapp, A. (eds) Software Engineering and Formal Methods. SEFM 2024. Lecture Notes in Computer Science, vol 15280. Springer, Cham. https://doi.org/10.1007/978-3-031-77382-2_7
Download citation
DOI: https://doi.org/10.1007/978-3-031-77382-2_7
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-031-77381-5
Online ISBN: 978-3-031-77382-2
eBook Packages: Computer ScienceComputer Science (R0)