Skip to main content

2021 | OriginalPaper | Buchkapitel

Hash Consed Points-To Sets

verfasst von : Mohamad Barbar, Yulei Sui

Erschienen in: Static Analysis

Verlag: Springer International Publishing

Aktivieren Sie unsere intelligente Suche, um passende Fachinhalte oder Patente zu finden.

search-config
loading …

Abstract

Das Kapitel behandelt die grundlegende Rolle der Point-to-Analysis bei der Erkennung von Speicherfehlern und Parallelitätsfehlern in der statischen Analyse. Es führt das Konzept der Hash-Konformität ein, um das Problem doppelter Point-to-Sets und Operationen anzugehen, die in realen Programmen weit verbreitet sind. Durch die Aufrechterhaltung einzigartiger Point-to-Sets und die effiziente Erfassung von Vorgängen verbessert die Hash-Konformität die Leistung und Speichereffizienz von Point-to-Analysen erheblich. Der Ansatz wird anhand von 16 realen Open-Source-Programmen evaluiert, die erhebliche Verbesserungen sowohl in der zeitlichen als auch in der räumlichen Komplexität aufweisen. In diesem Kapitel werden auch Optimierungen untersucht, die Eigenschaften wirksam nutzen, um die Leistung weiter zu verbessern, und das Potenzial präventiver Memoiren diskutiert. Die Evaluierungsergebnisse zeigen den praktischen Nutzen dieser innovativen Lösung auf Datenstrukturebene für die Punkt-zu-Analyse.

Sie haben noch keine Lizenz? Dann Informieren Sie sich jetzt über unsere Produkte:

Springer Professional "Wirtschaft+Technik"

Online-Abonnement

Mit Springer Professional "Wirtschaft+Technik" erhalten Sie Zugriff auf:

  • über 102.000 Bücher
  • über 537 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Maschinenbau + Werkstoffe
  • Versicherung + Risiko

Jetzt Wissensvorsprung sichern!

Springer Professional "Technik"

Online-Abonnement

Mit Springer Professional "Technik" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 390 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Maschinenbau + Werkstoffe




 

Jetzt Wissensvorsprung sichern!

Springer Professional "Wirtschaft"

Online-Abonnement

Mit Springer Professional "Wirtschaft" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 340 Zeitschriften

aus folgenden Fachgebieten:

  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Versicherung + Risiko




Jetzt Wissensvorsprung sichern!

Fußnoten
1
Due to the large number of points-to sets and unions flow-sensitive analysis produces.
 
2
For our SVF-based implementation we use sparse bit-vectors (Sect. 4.1).
 
Literatur
1.
Zurück zum Zitat Andersen, L.O.: Program analysis and specialization for the C programming language. Ph.D. thesis, University of Copenhagen, Denmark (1994) Andersen, L.O.: Program analysis and specialization for the C programming language. Ph.D. thesis, University of Copenhagen, Denmark (1994)
3.
Zurück zum Zitat Ball, T., Rajamani, S.K.: Bebop: a path-sensitive interprocedural dataflow engine. In: Proceedings of the 2001 ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering, PASTE 2001, pp. 97–103. ACM, USA (2001). https://doi.org/10.1145/379605.379690 Ball, T., Rajamani, S.K.: Bebop: a path-sensitive interprocedural dataflow engine. In: Proceedings of the 2001 ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering, PASTE 2001, pp. 97–103. ACM, USA (2001). https://​doi.​org/​10.​1145/​379605.​379690
5.
Zurück zum Zitat Berndl, M., Lhoták, O., Qian, F., Hendren, L., Umanee, N.: Points-to analysis using BDDs. In: Proceedings of the ACM SIGPLAN 2003 Conference on Programming Language Design and Implementation, PLDI 2003, pp. 103–114. ACM, USA (2003). https://doi.org/10.1145/781131.781144 Berndl, M., Lhoták, O., Qian, F., Hendren, L., Umanee, N.: Points-to analysis using BDDs. In: Proceedings of the ACM SIGPLAN 2003 Conference on Programming Language Design and Implementation, PLDI 2003, pp. 103–114. ACM, USA (2003). https://​doi.​org/​10.​1145/​781131.​781144
8.
Zurück zum Zitat Bravenboer, M., Smaragdakis, Y.: Strictly declarative specification of sophisticated points-to analyses. In: Proceedings of the 24th ACM SIGPLAN Conference on Object Oriented Programming Systems Languages and Applications, OOPSLA 2009, pp. 243–262. ACM, USA (2009). https://doi.org/10.1145/1640089.1640108 Bravenboer, M., Smaragdakis, Y.: Strictly declarative specification of sophisticated points-to analyses. In: Proceedings of the 24th ACM SIGPLAN Conference on Object Oriented Programming Systems Languages and Applications, OOPSLA 2009, pp. 243–262. ACM, USA (2009). https://​doi.​org/​10.​1145/​1640089.​1640108
9.
Zurück zum Zitat Chen, H., et al.: MUZZ: thread-aware grey-box fuzzing for effective bug hunting in multithreaded programs. In: 29th USENIX Security Symposium, USENIX Security 2020, pp. 2325–2342 (2020) Chen, H., et al.: MUZZ: thread-aware grey-box fuzzing for effective bug hunting in multithreaded programs. In: 29th USENIX Security Symposium, USENIX Security 2020, pp. 2325–2342 (2020)
13.
Zurück zum Zitat Fähndrich, M., Foster, J.S., Su, Z., Aiken, A.: Partial online cycle elimination in inclusion constraint graphs. In: Proceedings of the ACM SIGPLAN 1998 Conference on Programming Language Design and Implementation, PLDI 1998, pp. 85–96. ACM, USA (1998). https://doi.org/10.1145/277650.277667 Fähndrich, M., Foster, J.S., Su, Z., Aiken, A.: Partial online cycle elimination in inclusion constraint graphs. In: Proceedings of the ACM SIGPLAN 1998 Conference on Programming Language Design and Implementation, PLDI 1998, pp. 85–96. ACM, USA (1998). https://​doi.​org/​10.​1145/​277650.​277667
14.
Zurück zum Zitat Fan, X., Sui, Y., Liao, X., Xue, J.: Boosting the precision of virtual call integrity protection with partial pointer analysis for C++. In: Proceedings of the 26th ACM SIGSOFT International Symposium on Software Testing and Analysis, ISSTA 2017, pp. 329–340. ACM, USA (2017). https://doi.org/10.1145/3092703.3092729 Fan, X., Sui, Y., Liao, X., Xue, J.: Boosting the precision of virtual call integrity protection with partial pointer analysis for C++. In: Proceedings of the 26th ACM SIGSOFT International Symposium on Software Testing and Analysis, ISSTA 2017, pp. 329–340. ACM, USA (2017). https://​doi.​org/​10.​1145/​3092703.​3092729
15.
Zurück zum Zitat Farkhani, R.M., Jafari, S., Arshad, S., Robertson, W., Kirda, E., Okhravi, H.: On the effectiveness of type-based control flow integrity. In: Proceedings of the 34th Annual Computer Security Applications Conference, ACSAC 2018, pp. 28–39. ACM, USA (2018). https://doi.org/10.1145/3274694.3274739 Farkhani, R.M., Jafari, S., Arshad, S., Robertson, W., Kirda, E., Okhravi, H.: On the effectiveness of type-based control flow integrity. In: Proceedings of the 34th Annual Computer Security Applications Conference, ACSAC 2018, pp. 28–39. ACM, USA (2018). https://​doi.​org/​10.​1145/​3274694.​3274739
18.
Zurück zum Zitat Gosling, J., Joy, B., Steele, G.L., Bracha, G., Buckley, A.: The Java Language Specification, Java SE 8 Edition, 1st edn. Addison-Wesley Professional (2014) Gosling, J., Joy, B., Steele, G.L., Bracha, G., Buckley, A.: The Java Language Specification, Java SE 8 Edition, 1st edn. Addison-Wesley Professional (2014)
19.
Zurück zum Zitat Goubault, J.: Implementing functional languages with fast equality, sets and maps: an exercise in hash consing. Journées Francophones des Langages Applicatifs, 222–238 (1994) Goubault, J.: Implementing functional languages with fast equality, sets and maps: an exercise in hash consing. Journées Francophones des Langages Applicatifs, 222–238 (1994)
20.
Zurück zum Zitat Hardekopf, B., Lin, C.: The ant and the grasshopper: fast and accurate pointer analysis for millions of lines of code. In: Proceedings of the 28th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2007, pp. 290–299. ACM, USA (2007). https://doi.org/10.1145/1250734.1250767 Hardekopf, B., Lin, C.: The ant and the grasshopper: fast and accurate pointer analysis for millions of lines of code. In: Proceedings of the 28th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2007, pp. 290–299. ACM, USA (2007). https://​doi.​org/​10.​1145/​1250734.​1250767
23.
Zurück zum Zitat Hardekopf, B., Lin, C.: Flow-sensitive pointer analysis for millions of lines of code. In: Proceedings of the 9th Annual IEEE/ACM International Symposium on Code Generation and Optimization, CGO 2011, pp. 289–298. IEEE Computer Society, USA (2011). https://doi.org/10.1109/CGO.2011.5764696 Hardekopf, B., Lin, C.: Flow-sensitive pointer analysis for millions of lines of code. In: Proceedings of the 9th Annual IEEE/ACM International Symposium on Code Generation and Optimization, CGO 2011, pp. 289–298. IEEE Computer Society, USA (2011). https://​doi.​org/​10.​1109/​CGO.​2011.​5764696
26.
Zurück zum Zitat Heintze, N., Tardieu, O.: Ultra-fast aliasing analysis using CLA: a million lines of C code in a second. In: Proceedings of the ACM SIGPLAN 2001 Conference on Programming Language Design and Implementation, PLDI 2001, pp. 254–263. ACM, USA (2001). https://doi.org/10.1145/378795.378855 Heintze, N., Tardieu, O.: Ultra-fast aliasing analysis using CLA: a million lines of C code in a second. In: Proceedings of the ACM SIGPLAN 2001 Conference on Programming Language Design and Implementation, PLDI 2001, pp. 254–263. ACM, USA (2001). https://​doi.​org/​10.​1145/​378795.​378855
28.
Zurück zum Zitat Lattner, C., Adve, V.: LLVM: a compilation framework for lifelong program analysis & transformation. In: Proceedings of the International Symposium on Code Generation and Optimization: Feedback-Directed and Runtime Optimization, CGO 2004, p. 75. IEEE Computer Society, USA (2004). https://doi.org/10.1109/CGO.2004.1281665 Lattner, C., Adve, V.: LLVM: a compilation framework for lifelong program analysis & transformation. In: Proceedings of the International Symposium on Code Generation and Optimization: Feedback-Directed and Runtime Optimization, CGO 2004, p. 75. IEEE Computer Society, USA (2004). https://​doi.​org/​10.​1109/​CGO.​2004.​1281665
30.
32.
Zurück zum Zitat Livshits, V.B., Lam, M.S.: Tracking pointers with path and context sensitivity for bug detection in C programs. In: Proceedings of the 9th European Software Engineering Conference Held Jointly with 11th ACM SIGSOFT International Symposium on Foundations of Software Engineering, ESEC/FSE 2011, pp. 317–326. ACM, USA (2003). https://doi.org/10.1145/940071.940114 Livshits, V.B., Lam, M.S.: Tracking pointers with path and context sensitivity for bug detection in C programs. In: Proceedings of the 9th European Software Engineering Conference Held Jointly with 11th ACM SIGSOFT International Symposium on Foundations of Software Engineering, ESEC/FSE 2011, pp. 317–326. ACM, USA (2003). https://​doi.​org/​10.​1145/​940071.​940114
34.
Zurück zum Zitat Pearce, D.J., Kelly, P.H., Hankin, C.: Online cycle detection and difference propagation for pointer analysis. In: Proceedings of the Third IEEE International Workshop on Source Code Analysis and Manipulation, SCAM 2003, pp. 3–12. IEEE Computer Society, USA (2003). https://doi.org/10.1109/SCAM.2003.1238026 Pearce, D.J., Kelly, P.H., Hankin, C.: Online cycle detection and difference propagation for pointer analysis. In: Proceedings of the Third IEEE International Workshop on Source Code Analysis and Manipulation, SCAM 2003, pp. 3–12. IEEE Computer Society, USA (2003). https://​doi.​org/​10.​1109/​SCAM.​2003.​1238026
36.
Zurück zum Zitat Pereira, F.M.Q., Berlin, D.: Wave propagation and deep propagation for pointer analysis. In: Proceedings of the 7th Annual IEEE/ACM International Symposium on Code Generation and Optimization, CGO 2009, pp. 126–135. IEEE Computer Society, USA (2009). https://doi.org/10.1109/CGO.2009.9 Pereira, F.M.Q., Berlin, D.: Wave propagation and deep propagation for pointer analysis. In: Proceedings of the 7th Annual IEEE/ACM International Symposium on Code Generation and Optimization, CGO 2009, pp. 126–135. IEEE Computer Society, USA (2009). https://​doi.​org/​10.​1109/​CGO.​2009.​9
37.
Zurück zum Zitat Pratikakis, P., Foster, J.S., Hicks, M.: LOCKSMITH: context-sensitive correlation analysis for race detection. In: Proceedings of the 27th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2006, pp. 320–331. ACM, USA (2006). https://doi.org/10.1145/1133981.1134019 Pratikakis, P., Foster, J.S., Hicks, M.: LOCKSMITH: context-sensitive correlation analysis for race detection. In: Proceedings of the 27th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2006, pp. 320–331. ACM, USA (2006). https://​doi.​org/​10.​1145/​1133981.​1134019
39.
Zurück zum Zitat Rountev, A., Chandra, S.: Off-line variable substitution for scaling points-to analysis. In: Proceedings of the ACM SIGPLAN 2000 Conference on Programming Language Design and Implementation, PLDI 2000, pp. 47–56. ACM, USA (2000). https://doi.org/10.1145/349299.349310 Rountev, A., Chandra, S.: Off-line variable substitution for scaling points-to analysis. In: Proceedings of the ACM SIGPLAN 2000 Conference on Programming Language Design and Implementation, PLDI 2000, pp. 47–56. ACM, USA (2000). https://​doi.​org/​10.​1145/​349299.​349310
41.
Zurück zum Zitat Smaragdakis, Y., Bravenboer, M., Lhoták, O.: Pick your contexts well: understanding object-sensitivity. In: Proceedings of the 38th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2011, pp. 17–30. ACM, USA (2011) Smaragdakis, Y., Bravenboer, M., Lhoták, O.: Pick your contexts well: understanding object-sensitivity. In: Proceedings of the 38th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2011, pp. 17–30. ACM, USA (2011)
42.
Zurück zum Zitat Sondergaard, H., Sestoft, P.: Referential transparency, definiteness and unfoldability. Acta Informatica 27(6), 505–517 (1990)MathSciNetCrossRef Sondergaard, H., Sestoft, P.: Referential transparency, definiteness and unfoldability. Acta Informatica 27(6), 505–517 (1990)MathSciNetCrossRef
46.
Zurück zum Zitat Sui, Y., Xue, J.: On-demand strong update analysis via value-flow refinement. In: Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering, FSE 2016, pp. 460–473. ACM, USA (2016). https://doi.org/10.1145/2950290.2950296 Sui, Y., Xue, J.: On-demand strong update analysis via value-flow refinement. In: Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering, FSE 2016, pp. 460–473. ACM, USA (2016). https://​doi.​org/​10.​1145/​2950290.​2950296
48.
Zurück zum Zitat Trabish, D., Kapus, T., Rinetzky, N., Cadar, C.: Past-sensitive pointer analysis for symbolic execution. In: Proceedings of the 28th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering, ESEC/FSE 2020, pp. 197–208. ACM, USA (2020). https://doi.org/10.1145/3368089.3409698 Trabish, D., Kapus, T., Rinetzky, N., Cadar, C.: Past-sensitive pointer analysis for symbolic execution. In: Proceedings of the 28th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering, ESEC/FSE 2020, pp. 197–208. ACM, USA (2020). https://​doi.​org/​10.​1145/​3368089.​3409698
51.
52.
Zurück zum Zitat Whaley, J.: Context-sensitive pointer analysis using binary decision diagrams. Ph.D. thesis, Stanford University, USA (2007) Whaley, J.: Context-sensitive pointer analysis using binary decision diagrams. Ph.D. thesis, Stanford University, USA (2007)
53.
Zurück zum Zitat Yan, H., Sui, Y., Chen, S., Xue, J.: Spatio-temporal context reduction: a pointer-analysis-based static approach for detecting use-after-free vulnerabilities. In: Proceedings of the 40th International Conference on Software Engineering, ICSE 2018, pp. 327–337. ACM, USA (2018). https://doi.org/10.1145/3180155.3180178 Yan, H., Sui, Y., Chen, S., Xue, J.: Spatio-temporal context reduction: a pointer-analysis-based static approach for detecting use-after-free vulnerabilities. In: Proceedings of the 40th International Conference on Software Engineering, ICSE 2018, pp. 327–337. ACM, USA (2018). https://​doi.​org/​10.​1145/​3180155.​3180178
Metadaten
Titel
Hash Consed Points-To Sets
verfasst von
Mohamad Barbar
Yulei Sui
Copyright-Jahr
2021
DOI
https://doi.org/10.1007/978-3-030-88806-0_2