skip to main content
10.1145/3576914.3587490acmconferencesArticle/Chapter ViewAbstractPublication PagescpsweekConference Proceedingsconference-collections
research-article
Public Access

Cooperative Verification of PLC Programs Using CoVeriTeam: Towards a reliable and secure Industrial Control Systems

Published:09 May 2023Publication History

ABSTRACT

It is important that the programmed logic controller(PLC), the heart of industrial control systems (ICS), is formally verified to ensure that its safety and security requirements are met. However, the combination of the strengths of two or more verification tools to verify tasks has yet to be fully explored, especially in verification of safety-critical programs such as PLC programs. In this paper, we apply cooperative verification techniques by building a verifier validator (using Symbiotic as a verifier and the CPA checker as a validator). We investigate the possibilities of preventing false positives in verification results and discover how effective and efficient the (verifier-validator) is when compared with a single verification tool. The results show that the verifier validator was able to discover 3 properties that were not properly verified by a single verification tool in a shorter time span.

References

  1. Étienne André, Yousra Lembachar, Laure Petrucci, Francis Hulin-Hubard, Alban Linard, Lom Hillah, and Fabrice Kordon. 2013. CosyVerif: An open source extensible verification environment. In 2013 18th International Conference on Engineering of Complex Computer Systems. IEEE, 33–36.Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Steven Arzt, Siegfried Rasthofer, Robert Hahn, and Eric Bodden. 2015. Using targeted symbolic execution for reducing false-positives in dataflow analysis. In Proceedings of the 4th ACM SIGPLAN International Workshop on State of the Art in Program Analysis. 1–6.Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Dirk Beyer. 2021. Software verification: 10th comparative evaluation (SV-COMP 2021). In International Conference on Tools and Algorithms for the Construction and Analysis of Systems. Springer, 401–422.Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Dirk Beyer. 2022. Cooperative Verification: Towards Reliable Safety-Critical Systems (Invited Talk). In Proceedings of the 8th ACM SIGPLAN International Workshop on Formal Techniques for Safety-Critical Systems (Auckland, New Zealand) (FTSCS 2022). Association for Computing Machinery, New York, NY, USA, 1–2.Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Dirk Beyer, Matthias Dangl, Daniel Dietsch, and Matthias Heizmann. 2016. Correctness witnesses: Exchanging verification results between verifiers. In Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering. 326–337.Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Dirk Beyer, Jan Haltermann, Thomas Lemberger, and Heike Wehrheim. 2022a. Decomposing software verification into off-the-shelf components: an application to CEGAR. In Proceedings of the 44th International Conference on Software Engineering (Pittsburgh, Pennsylvania) (ICSE ’22). Association for Computing Machinery, New York, NY, USA, 536–548.Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Dirk Beyer, Marie-Christine Jakobs, Thomas Lemberger, and Heike Wehrheim. 2018. Reducer-based construction of conditional verifiers. In Proceedings of the 40th International Conference on Software Engineering. 1182–1193.Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Dirk Beyer and Sudeep Kanav. 2022a. CoVeriTeam: On-demand composition of cooperative verification systems. In International Conference on Tools and Algorithms for the Construction and Analysis of Systems. Springer, 561–579.Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Dirk Beyer and Sudeep Kanav. 2022b. CoVeriTeam: On-Demand Composition of Cooperative Verification Systems. In Tools and Algorithms for the Construction and Analysis of Systems. Springer International Publishing, 561–579.Google ScholarGoogle Scholar
  10. Dirk Beyer, Sudeep Kanav, and Cedric Richter. 2022b. Construction of verifier combinations based on off-the-shelf verifiers. In Fundamental Approaches to Software Engineering: 25th International Conference, FASE 2022, Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2022, Munich, Germany, April 2–7, 2022, Proceedings. library.oapen.org, 49–70.Google ScholarGoogle Scholar
  11. Dirk Beyer and M Erkan Keremoglu. 2011. CPAchecker: A tool for configurable software verification. In International Conference on Computer Aided Verification. Springer, 184–190.Google ScholarGoogle ScholarCross RefCross Ref
  12. Dirk Beyer, Stefan Löwe, and Philipp Wendler. 2019. Reliable benchmarking: requirements and solutions. International Journal on Software Tools for Technology Transfer 21, 1 (2019), 1–29.Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Dirk Beyer and Martin Spiessl. 2020. MetaVal: Witness validation via verification. In Computer Aided Verification: 32nd International Conference, CAV 2020, Los Angeles, CA, USA, July 21–24, 2020, Proceedings, Part II 32. Springer, 165–177.Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Devesh Bhatt, Gabor Madl, David Oglesby, and Kirk Schloegel. 2010. Towards scalable verification of commercial avionics software. In AIAA Infotech@ Aerospace 2010. 3452.Google ScholarGoogle Scholar
  15. Sebastian Biallas, Jörg Brauer, and Stefan Kowalewski. 2012. Arcade. PLC: A verification platform for programmable logic controllers. In 2012 Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering. IEEE, 338–341.Google ScholarGoogle Scholar
  16. Dimitri Bohlender, Daniel Hamm, and Stefan Kowalewski. 2018. Cycle-bounded model checking of PLC software via dynamic large-block encoding. In Proceedings of the 33rd Annual ACM Symposium on Applied Computing (Pau, France) (SAC ’18). Association for Computing Machinery, New York, NY, USA, 1891–1898.Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Marek Chalupa, Tomáš Jašek, Jakub Novák, Anna Řechtáčková, Veronika Šoková, and Jan Strejček. 2021. Symbiotic 8: beyond symbolic execution. In International Conference on Tools and Algorithms for the Construction and Analysis of Systems. Springer, 453–457.Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Alessandro Cimatti, Edmund Clarke, Enrico Giunchiglia, Fausto Giunchiglia, Marco Pistore, Marco Roveri, Roberto Sebastiani, and Armando Tacchella. 2002. Nusmv 2: An opensource tool for symbolic model checking. In Computer Aided Verification: 14th International Conference, CAV 2002 Copenhagen, Denmark, July 27–31, 2002 Proceedings 14. Springer, 359–364.Google ScholarGoogle ScholarCross RefCross Ref
  19. Simon Cruanes, Grégoire Hamon, Sam Owre, and Natarajan Shankar. 2013. Tool Integration with the Evidential Tool Bus.. In VMCAI, Vol. 7737. Springer, 275–294.Google ScholarGoogle Scholar
  20. SG Devi, C Nalini, and N Kumar. 2018. An efficient software verification using multi-layered software verification tool. International Journal of Engineering & Technology 7, 2.21 (2018), 454–457.Google ScholarGoogle Scholar
  21. Benny Godlin and Ofer Strichman. 2009. Regression verification. In Proceedings of the 46th Annual Design Automation Conference. 466–471.Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Jan Haltermann and Heike Wehrheim. 2021. CoVEGI: Cooperative verification via externally generated invariants. In Fundamental Approaches to Software Engineering: 24th International Conference, FASE 2021, Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2021, Luxembourg City, Luxembourg, March 27–April 1, 2021, Proceedings. Springer International Publishing Cham, 108–129.Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Matthias Heizmann, Yu-Fang Chen, Daniel Dietsch, Marius Greitschus, Jochen Hoenicke, Yong Li, Alexander Nutz, Betim Musa, Christian Schilling, Tanja Schindler, 2018. Ultimate automizer and the search for perfect interpolants. In International Conference on Tools and Algorithms for the Construction and Analysis of Systems. Springer, 447–451.Google ScholarGoogle ScholarCross RefCross Ref
  24. Daniel Kroening and Michael Tautschnig. 2014. CBMC–C Bounded Model Checker: (Competition Contribution). In Tools and Algorithms for the Construction and Analysis of Systems: 20th International Conference, TACAS 2014, Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2014, Grenoble, France, April 5-13, 2014. Proceedings 20. Springer, 389–391.Google ScholarGoogle ScholarCross RefCross Ref
  25. Robert P Kurshan, Vladimir Levin, Marius Minea, Doron Peled, and Hüsnü Yenigün. 2002. Combining software and hardware verification techniques. Formal Methods in System Design 21 (2002), 251–280.Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Raluca Lefticaru, Savas Konur, Unal Yildirim, Amad Uddin, Felician Campean, and Marian Gheorghe. 2017. Towards an integrated approach to verification and model-based testing in system engineering. In 2017 IEEE International Conference on Internet of Things (iThings) and IEEE Green Computing and Communications (GreenCom) and IEEE Cyber, Physical and Social Computing (CPSCom) and IEEE Smart Data (SmartData). IEEE, 131–138.Google ScholarGoogle Scholar
  27. Ignacio D Lopez-Miguel, Jean-Charles Tournier, and Borja Fernandez Adiego. 2022. PLCverif: Status of a Formal Verification Tool for Programmable Logic Controller. arXiv preprint arXiv:2203.17253 (2022).Google ScholarGoogle Scholar
  28. Felipe R Monteiro. 2018. ESBMC 5.0 - An Industrial-Strength C Model Checker.Google ScholarGoogle Scholar
  29. Tyler Phillips, Hoda Mehrpouyan, John Gardner, and Stephen Reese. 2019. A Covert System Identification Attack on Constant Setpoint Control Systems. In 2019 Seventh International Symposium on Computing and Networking Workshops (CANDARW). 367–373. https://doi.org/10.1109/CANDARW.2019.00070Google ScholarGoogle ScholarCross RefCross Ref
  30. Technical PLCOpen. Feb 25,2020. PLCopen - Technical Committee 5 Safety Software. (Feb 25,2020).Google ScholarGoogle Scholar
  31. Farhad Rasapour, Edoardo Serra, and Hoda Mehrpouyan. 2019. Framework for Detecting Control Command Injection Attacks on Industrial Control Systems (ICS). In 2019 Seventh International Symposium on Computing and Networking (CANDAR). 211–217. https://doi.org/10.1109/CANDAR.2019.00035Google ScholarGoogle ScholarCross RefCross Ref
  32. Cedric Richter and Heike Wehrheim. 2019. Pesco: Predicting sequential combinations of verifiers. In International Conference on Tools and Algorithms for the Construction and Analysis of Systems. Springer, 229–233.Google ScholarGoogle ScholarCross RefCross Ref
  33. Benjamin John Rosser. 2018. Cocotb: a Python-based digital logic verification framework. In Micro-electronics Section seminar. CERN, Geneva, Switzerland.Google ScholarGoogle Scholar
  34. Roshan Shrestha, Hoda Mehrpouyan, and Dianxiang Xu. 2018. Model Checking of Security Properties in Industrial Control Systems (ICS). In Proceedings of the Eighth ACM Conference on Data and Application Security and Privacy (Tempe, AZ, USA) (CODASPY ’18). Association for Computing Machinery, New York, NY, USA, 164–166. https://doi.org/10.1145/3176258.3176949Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. Michael Tiegelkamp and Karl-Heinz John. 2010. IEC 61131-3: Programming industrial automation systems. Vol. 166. Springer.Google ScholarGoogle Scholar

Index Terms

  1. Cooperative Verification of PLC Programs Using CoVeriTeam: Towards a reliable and secure Industrial Control Systems

          Recommendations

          Comments

          Login options

          Check if you have access through your login credentials or your institution to get full access on this article.

          Sign in
          • Published in

            cover image ACM Conferences
            CPS-IoT Week '23: Proceedings of Cyber-Physical Systems and Internet of Things Week 2023
            May 2023
            419 pages
            ISBN:9798400700491
            DOI:10.1145/3576914

            Copyright © 2023 ACM

            Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

            Publisher

            Association for Computing Machinery

            New York, NY, United States

            Publication History

            • Published: 9 May 2023

            Permissions

            Request permissions about this article.

            Request Permissions

            Check for updates

            Qualifiers

            • research-article
            • Research
            • Refereed limited
          • Article Metrics

            • Downloads (Last 12 months)93
            • Downloads (Last 6 weeks)6

            Other Metrics

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader

          HTML Format

          View this article in HTML Format .

          View HTML Format