Skip to main content

Combining Static and Dynamic Analyses for Vulnerability Detection: Illustration on Heartbleed

  • Conference paper
  • First Online:
Hardware and Software: Verification and Testing (HVC 2015)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 9434))

Included in the following conference series:

Abstract

Security of modern information and communication systems has become a major concern. This tool paper presents Flinder-SCA, an original combined tool for vulnerability detection, implemented on top of Frama-C, a platform for collaborative verification of C programs, and Search Lab’s Flinder testing tool. Flinder-SCA includes three steps. First, abstract interpretation and taint analysis are used to detect potential vulnerabilities (alarms), then program slicing is applied to reduce the initial program, and finally a testing step tries to confirm detected alarms by fuzzing on the reduced program. We describe the proposed approach and the tool, illustrate its application for the recent OpenSSL/HeartBeat Heartbleed vulnerability, and discuss the benefits and industrial application perspectives of the proposed verification approach.

This work has been partially funded by the EU FP7 project STANCE (grant 317753).

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • 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

Notes

  1. 1.

    See http://www.stance-project.eu/.

  2. 2.

    See http://people.cs.kuleuven.be/bart.jacobs/verifast.

  3. 3.

    See http://www.trustedcomputinggroup.org.

  4. 4.

    See https://www.openssl.org.

  5. 5.

    For convenience of the reader, taint analysis results are illustrated in Sect. 7.1.

  6. 6.

    For convenience of the reader, fuzzing results are illustrated in Sect. 7.2.

  7. 7.

    as reported by Andrew Hintz, Google vulnerability analyst, see https://news.ycombinator.com/item?id=7558015.

References

  1. CWE-126: Buffer Over-read. http://cwe.mitre.org/data/definitions/126.html

  2. Carvalho, M., DeMott, J., Ford, R., Wheeler, D.A.: Heartbleed 101. IEEE Secur. Priv. 12(4), 63–67 (2014)

    Article  Google Scholar 

  3. Chebaro, O., Cuoq, P., Kosmatov, N., Marre, B., Pacalet, A., Williams, N., Yakobowski, B.: Behind the scenes in SANTE: a combination of static and dynamic analyses. Autom. Softw. Eng. 21(1), 107–143 (2014)

    Article  Google Scholar 

  4. Common Vulnerabilities and Exposures. https://cve.mitre.org

  5. Denning, D.E.: A lattice model for secure information flow. Commun. ACM 19, 236–243 (1976)

    Article  MathSciNet  MATH  Google Scholar 

  6. CVE-2014-0160. https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-0160

  7. Kirchner, F., Kosmatov, N., Prevosto, V., Signoles, J., Yakobowski, B.: Frama-C: a software analysis perspective. Formal Asp. Comput. 27(3), 573–609 (2015)

    Article  MathSciNet  Google Scholar 

  8. Kupsch, J.A., Miller, B.P.: Why do software assurance tools have problems finding bugs like Heartbleed? Continuous Software Assurance Marketplace, April 2014

    Google Scholar 

  9. Nethercote, N., Seward, J.: Valgrind: a framework for heavyweight dynamic binary instrumentation. In: PLDI (2007)

    Google Scholar 

  10. Search Lab: Flinder security testing platform. http://www.flinder.hu

  11. Tip, F.: A survey of program slicing techniques. J. Prog. Lang. 3(3), 121–189 (1995)

    Google Scholar 

  12. Weiser, M.: Program slicing. In: ICSE 1981, pp. 439–449 (1981)

    Google Scholar 

Download references

Acknowledgment

We thank the Frama-C team for providing the tools and support, and the anonymous referees for many helpful comments.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Nikolai Kosmatov .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2015 Springer International Publishing Switzerland

About this paper

Cite this paper

Kiss, B., Kosmatov, N., Pariente, D., Puccetti, A. (2015). Combining Static and Dynamic Analyses for Vulnerability Detection: Illustration on Heartbleed. In: Piterman, N. (eds) Hardware and Software: Verification and Testing. HVC 2015. Lecture Notes in Computer Science(), vol 9434. Springer, Cham. https://doi.org/10.1007/978-3-319-26287-1_3

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-26287-1_3

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-26286-4

  • Online ISBN: 978-3-319-26287-1

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics