Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to main content

A Formal Framework to Measure the Incompleteness of Abstract Interpretations

  • Conference paper
  • First Online:
Static Analysis (SAS 2023)

Abstract

In program analysis by abstract interpretation, backward-completeness represents no loss of precision between the result of the analysis and the abstraction of the concrete execution, while forward-completeness stands for no imprecision between the concretization of the analysis result and the concrete execution. Program analyzers satisfying one of the two properties (or both) are considered precise. Regrettably, as for all approximation methods, the presence of false-alarms is most of the time unavoidable and therefore we need to deal somehow with incompleteness of both. To this end, a new property called partial completeness has recently been formalized as a relaxation of backward-completeness allowing a limited amount of imprecision measured by quasi-metrics. However, the use of quasi-metrics enforces distance functions to adhere precisely the abstract domain ordering, thus not suitable to be used to weaken the forward-completeness property which considers also abstract domains that are not necessarily based on Galois Connections. In this paper, we formalize a weaker form of quasi-metric, called pre-metric, which can be defined on all domains equipped with a pre-order relation. We show how this newly defined notion of pre-metric allows us to derive other pre-metrics on other domains by exploiting the concretization and, when available, the abstraction maps, according to the information and the corresponding level of approximation that we want to measure. Finally, by exploiting pre-metrics as our imprecision meter, we introduce the partial forward/backward-completeness properties.

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

Access this chapter

Subscribe and save

Springer+ Basic
EUR 32.99 /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
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 69.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 89.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

Similar content being viewed by others

Notes

  1. 1.

    The term “forward-completeness” was introduced in [32] in order to distinguish it from the well known backward-completeness property requiring an abstraction function.

  2. 2.

    In the standard abstract interpretation framework [20, 21] dealing with GCs, the backward-completeness property is simply called completeness or exactness.

  3. 3.

    This is not a standard term in the literature: sometimes it is used to refer to other generalizations of metrics such as pseudosemi-metrics [8] or pseudo-metrics [34]; it sometimes appears as pra-metric [3]. This definition is taken from Wikipedia [1].

  4. 4.

    We assume the following results when the \(\infty \) symbol is involved: \(Av(k - \infty ) = Av(\infty - k) = \infty \) with \(k \in \mathbb {R}\), while \(\infty - \infty = 0\).

  5. 5.

    Interproc is freely available at http://pop-art.inrialpes.fr/interproc/interprocweb.cgi.

  6. 6.

    For the convex polyhedra analysis, we activated the option of 2 descending steps.

References

  1. https://en.wikipedia.org/wiki/Metric_space#Premetrics

  2. http://pop-art.inrialpes.fr/people/bjeannet/bjeannet-forge/interproc/index.html

  3. Arkhangel’Skii, A., Fedorchuk, V.: General Topology I: Basic Concepts and Constructions Dimension Theory, vol. 17. Springer, Berlin, Heidelberg (2012). https://doi.org/10.1007/978-3-642-61265-7

  4. Bruni, R., Giacobazzi, R., Gori, R., Garcia-Contreras, I., Pavlovic, D.: Abstract extensionality: on the properties of incomplete abstract interpretations. Proc. ACM Program. Lang. 4(POPL), 28:1–28:28 (2020). https://doi.org/10.1145/3371096

  5. Bruni, R., Giacobazzi, R., Gori, R., Ranzato, F.: A logic for locally complete abstract interpretations. In: 36th Annual ACM/IEEE Symposium on Logic in Computer Science, LICS 2021, Rome, Italy, June 29–2 July 2021, pp. 1–13. IEEE (2021). https://doi.org/10.1109/LICS52264.2021.9470608

  6. Bruni, R., Giacobazzi, R., Gori, R., Ranzato, F.: Abstract interpretation repair. In: Jhala, R., Dillig, I. (eds.) PLDI ’22: 43rd ACM SIGPLAN International Conference on Programming Language Design and Implementation, San Diego, CA, USA, 13–17 June 2022, pp. 426–441. ACM (2022). https://doi.org/10.1145/3519939.3523453

  7. Bruni, R., Giacobazzi, R., Gori, R., Ranzato, F.: A correctness and incorrectness program logic. J. ACM 70(2), 15:1–15:45 (2023). https://doi.org/10.1145/3582267

  8. Buldygin, V.V., Kozachenko, I.V.: Metric Characterization of Random Variables and Random Processes, vol. 188. American Mathematical Society, Providence (2000). https://doi.org/10.1090/mmono/188

  9. Campion, M., Dalla Preda, M., Giacobazzi, R.: Abstract interpretation of indexed grammars. In: Chang, B.-Y.E. (ed.) SAS 2019. LNCS, vol. 11822, pp. 121–139. Springer, Cham (2019). https://doi.org/10.1007/978-3-030-32304-2_7

    Chapter  Google Scholar 

  10. Campion, M., Dalla Preda, M., Giacobazzi, R.: On the properties of partial completeness in abstract interpretation. In: Lago, U.D., Gorla, D. (eds.) Proceedings of the 23rd Italian Conference on Theoretical Computer Science, ICTCS 2022, Rome, Italy, 7-9 September 2022. CEUR Workshop Proceedings, vol. 3284, pp. 79–85. CEUR-WS.org (2022). http://ceur-ws.org/Vol-3284/8665.pdf

  11. Campion, M., Dalla Preda, M., Giacobazzi, R.: Partial (in)completeness in abstract interpretation: limiting the imprecision in program analysis. Proc. ACM Program. Lang. 6(POPL), 1–31 (2022). https://doi.org/10.1145/3498721

  12. Campion, M., Dalla Preda, M., Giacobazzi, R.: Learning metamorphic malware signatures from samples. J. Comput. Virol. Hacking Tech. 17(3), 167–183 (2021). https://doi.org/10.1007/s11416-021-00377-z

    Article  Google Scholar 

  13. Casso, I., Morales, J.F., López-García, P., Giacobazzi, R., Hermenegildo, M.V.: Computing abstract distances in logic programs. In: Gabbrielli, M. (ed.) LOPSTR 2019. LNCS, vol. 12042, pp. 57–72. Springer, Cham (2020). https://doi.org/10.1007/978-3-030-45260-5_4

    Chapter  Google Scholar 

  14. Ceccato, M., et al.: Understanding the behaviour of hackers while performing attack tasks in a professional setting and in a public challenge. Empir. Softw. Eng. 24(1), 240–286 (2018). https://doi.org/10.1007/s10664-018-9625-6

    Article  Google Scholar 

  15. Cohen, J., Hickey, T.J.: Two algorithms for determining volumes of convex polyhedra. J. ACM 26(3), 401–414 (1979). https://doi.org/10.1145/322139.322141

    Article  MathSciNet  Google Scholar 

  16. Collberg, C., Nagra, J.: Surreptitious Software: Obfuscation, Watermarking, and Tamperproofing for Software Protection. Addison-Wesley Professional, Boston (2009)

    Google Scholar 

  17. Collberg, C.S., Davidson, J.W., Giacobazzi, R., Gu, Y.X., Herzberg, A., Wang, F.: Toward digital asset protection. IEEE Intell. Syst. 26(6), 8–13 (2011). https://doi.org/10.1109/MIS.2011.106

    Article  Google Scholar 

  18. Cousot, P.: Principles of Abstract Interpretation. The MIT Press, Cambridge, Mass (2021)

    Google Scholar 

  19. Cousot, P., Cousot, R.: Static determination of dynamic properties of programs. In: Proceedings of the 2nd International Symposium on Programming, pp. 106–130. Dunod, Paris (1976). https://doi.org/10.1145/390019.808314

  20. Cousot, P., Cousot, R.: Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints. In: Graham, R.M., Harrison, M.A., Sethi, R. (eds.) Proceedings of the 4th ACM Symposium on Principles of Programming Languages, Los Angeles, California, USA, January 1977, pp. 238–252. ACM (1977). https://doi.org/10.1145/512950.512973

  21. Cousot, P., Cousot, R.: Systematic design of program analysis frameworks. In: Aho, A.V., Zilles, S.N., Rosen, B.K. (eds.) Proceedings of the 6th ACM Symposium on Principles of Programming Languages, San Antonio, Texas, USA, January 1979, pp. 269–282. ACM Press (1979). https://doi.org/10.1145/567752.567778

  22. Cousot, P., Cousot, R.: Abstract interpretation frameworks. J. Log. Comput. 2(4), 511–547 (1992). https://doi.org/10.1093/logcom/2.4.511

    Article  MathSciNet  Google Scholar 

  23. Cousot, P., Giacobazzi, R., Ranzato, F.: A\(^{2}\)i: abstract\(^{2}\) interpretation. Proc. ACM Program. Lang. 3(POPL), 1–31 (2019). https://doi.org/10.1145/3290355

  24. Cousot, P., Halbwachs, N.: Automatic discovery of linear restraints among variables of a program. In: Aho, A.V., Zilles, S.N., Szymanski, T.G. (eds.) Conference Record of the Fifth Annual ACM Symposium on Principles of Programming Languages, Tucson, Arizona, USA, January 1978, pp. 84–96. ACM Press (1978). https://doi.org/10.1145/512760.512770

  25. Crazzolara, F.: Quasi-metric spaces as domains for abstract interpretation. In: Falaschi, M., Navarro, M., Policriti, A. (eds.) 1997 Joint Conference on Declarative Programming, APPIA-GULP-PRODE’97, Grado, Italy, 16–19 June 1997, pp. 45–56 (1997)

    Google Scholar 

  26. Dalla Preda, M., Giacobazzi, R., Debray, S.K.: Unveiling metamorphism by abstract interpretation of code properties. Theor. Comput. Sci. 577, 74–97 (2015). https://doi.org/10.1016/j.tcs.2015.02.024

    Article  MathSciNet  Google Scholar 

  27. Distefano, D., Fähndrich, M., Logozzo, F., O’Hearn, P.W.: Scaling static analyses at facebook. Commun. ACM 62(8), 62–70 (2019). https://doi.org/10.1145/3338112

    Article  Google Scholar 

  28. Giacobazzi, R.: Hiding information in completeness holes: new perspectives in code obfuscation and watermarking. In: Cerone, A., Gruner, S. (eds.) Sixth IEEE International Conference on Software Engineering and Formal Methods, SEFM 2008, Cape Town, South Africa, 10–14 November 2008, pp. 7–18. IEEE Computer Society (2008). https://doi.org/10.1109/SEFM.2008.41

  29. Giacobazzi, R., Logozzo, F., Ranzato, F.: Analyzing program analyses. In: Rajamani, S.K., Walker, D. (eds.) Proceedings of the 42nd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2015, Mumbai, India, 15–17 January 2015, pp. 261–273. ACM (2015). https://doi.org/10.1145/2676726.2676987

  30. Giacobazzi, R., Mastroeni, I.: Making abstract interpretation incomplete: modeling the potency of obfuscation. In: Miné, A., Schmidt, D. (eds.) SAS 2012. LNCS, vol. 7460, pp. 129–145. Springer, Heidelberg (2012). https://doi.org/10.1007/978-3-642-33125-1_11

    Chapter  Google Scholar 

  31. Giacobazzi, R., Mastroeni, I., Dalla Preda, M.: Maximal incompleteness as obfuscation potency. Form. Aspects Comput. 29(1), 3–31 (2016). https://doi.org/10.1007/s00165-016-0374-2

    Article  MathSciNet  Google Scholar 

  32. Giacobazzi, R., Quintarelli, E.: Incompleteness, counterexamples, and refinements in abstract model-checking. In: Cousot, P. (ed.) SAS 2001. LNCS, vol. 2126, pp. 356–373. Springer, Heidelberg (2001). https://doi.org/10.1007/3-540-47764-0_20

    Chapter  Google Scholar 

  33. Giacobazzi, R., Ranzato, F., Scozzari, F.: Making abstract interpretations complete. J. ACM 47(2), 361–416 (2000). https://doi.org/10.1145/333979.333989

    Article  MathSciNet  Google Scholar 

  34. Helemskii, A.Y.: Lectures and Exercises on Functional Analysis, vol. 233. American Mathematical Society, Providence (2006). https://doi.org/10.1090/mmono/233

  35. Lawrence, J.: Polytope volume computation. Math. Comput. 57(195), 259–271 (1991). https://doi.org/10.1090/S0025-5718-1991-1079024-2

  36. Logozzo, F.: Towards a quantitative estimation of abstract interpretations. In: Workshop on Quantitative Analysis of Software. Microsoft, June 2009. https://www.microsoft.com/en-us/research/publication/towards-a-quantitative-estimation-of-abstract-interpretations/

  37. Miné, A.: A new numerical abstract domain based on difference-bound matrices. In: Danvy, O., Filinski, A. (eds.) PADO 2001. LNCS, vol. 2053, pp. 155–172. Springer, Heidelberg (2001). https://doi.org/10.1007/3-540-44978-7_10

    Chapter  Google Scholar 

  38. Miné, A.: The octagon abstract domain. In: Burd, E., Aiken, P., Koschke, R. (eds.) Proceedings of the Eighth Working Conference on Reverse Engineering, WCRE’01, Stuttgart, Germany, 2–5 October 2001, p. 310. IEEE Computer Society (2001). https://doi.org/10.1109/WCRE.2001.957836

  39. Miné, A.: Tutorial on static inference of numeric invariants by abstract interpretation. Found. Trends Program. Lang. 4(3–4), 120–372 (2017). https://doi.org/10.1561/2500000034

    Article  Google Scholar 

  40. Moser, A., Kruegel, C., Kirda, E.: Limits of static analysis for malware detection. In: 23rd Annual Computer Security Applications Conference (ACSAC 2007), 10–14 December 2007, Miami Beach, Florida, USA, pp. 421–430. IEEE Computer Society (2007). https://doi.org/10.1109/ACSAC.2007.21

  41. Di Pierro, A., Wiklicky, H.: Measuring the precision of abstract interpretations. In: LOPSTR 2000. LNCS, vol. 2042, pp. 147–164. Springer, Heidelberg (2001). https://doi.org/10.1007/3-540-45142-0_9

    Chapter  Google Scholar 

  42. Sotin, P.: Quantifying the precision of numerical abstract domains. Technical report. HAL Id: inria-00457324, INRIA (2010). https://hal.inria.fr/inria-00457324

  43. Sutter, B.D., Collberg, C.S., Dalla Preda, M., Wyseur, B.: Software protection decision support and evaluation methodologies (dagstuhl seminar 19331). Dagstuhl Rep. 9(8), 1–25 (2019). https://doi.org/10.4230/DagRep.9.8.1

    Article  Google Scholar 

  44. You, I., Yim, K.: Malware obfuscation techniques: a brief survey. In: Proceedings of the Fifth International Conference on Broadband and Wireless Computing, Communication and Applications, BWCCA 2010, 4–6 November 2010, Fukuoka Institute of Technology, Fukuoka, Japan (In conjunction with the 3PGCIC-2010 International Conference), pp. 297–300. IEEE Computer Society (2010). https://doi.org/10.1109/BWCCA.2010.85

Download references

Acknowledgements

We wish to thank the anonymous reviewers of SAS 2023 for their detailed comments. This work has been partially supported by the grant PRIN2017 (code: 201784YSZ5) “AnalysiS of PRogram Analyses (ASPRA)”.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Marco Campion .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2023 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

Campion, M., Urban, C., Dalla Preda, M., Giacobazzi, R. (2023). A Formal Framework to Measure the Incompleteness of Abstract Interpretations. In: Hermenegildo, M.V., Morales, J.F. (eds) Static Analysis. SAS 2023. Lecture Notes in Computer Science, vol 14284. Springer, Cham. https://doi.org/10.1007/978-3-031-44245-2_7

Download citation

  • DOI: https://doi.org/10.1007/978-3-031-44245-2_7

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-031-44244-5

  • Online ISBN: 978-3-031-44245-2

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics