Αξιολόγηση αυτοματοποιημένων εργαλείων στατικής ανάλυσης C/C++ κώδικα με εστίαση σε ευπάθειες υπερχείλισης

Η παρούσα διπλώματική εργασία μελετάει και αξιολογεί την απόδοση ανοιχτού κώδικα εργαλείων στατικής ανάλυσης εφαρμοσμένα σε δημοφιλή, ανοιχτού κώδικα πραγματικά πακέτα λογισμικού υλοποιημένα σε C/C++. Η βιβλιογραφία περιέχει αρκετές μελέτες τέτοιων εργαλείων, αλλά η πλειοψηφία τους εφαρμόζεται σε σο...

Πλήρης περιγραφή

Αποθηκεύτηκε σε:
Λεπτομέρειες βιβλιογραφικής εγγραφής
Κύριοι συγγραφείς: Βαμβακάκης, Νικόλας, Vamvakakis, Nikolas
Άλλοι συγγραφείς: Καμπουράκης, Γεώργιος
Γλώσσα:el_GR
Δημοσίευση: 2023
Θέματα:
Διαθέσιμο Online:http://hdl.handle.net/11610/24983
Ετικέτες: Προσθήκη ετικέτας
Δεν υπάρχουν, Καταχωρήστε ετικέτα πρώτοι!
_version_ 1828460812310675456
author Βαμβακάκης, Νικόλας
Vamvakakis, Nikolas
author2 Καμπουράκης, Γεώργιος
author_facet Καμπουράκης, Γεώργιος
Βαμβακάκης, Νικόλας
Vamvakakis, Nikolas
author_sort Βαμβακάκης, Νικόλας
collection DSpace
description Η παρούσα διπλώματική εργασία μελετάει και αξιολογεί την απόδοση ανοιχτού κώδικα εργαλείων στατικής ανάλυσης εφαρμοσμένα σε δημοφιλή, ανοιχτού κώδικα πραγματικά πακέτα λογισμικού υλοποιημένα σε C/C++. Η βιβλιογραφία περιέχει αρκετές μελέτες τέτοιων εργαλείων, αλλά η πλειοψηφία τους εφαρμόζεται σε σουίτες ελέγχου ειδικά διαμορφωμένες ώστε εσκεμμένα να περιλαμβάνουν πληθώρα προβλημάτων ασφάλειας. Συγκεκριμένα, παρά την αυξημένη δυσκολία λόγω της απαίτησης για χειροκίνητη επιβεβαίωση των ευρημάτων, σε αντίθεση με την προαναφερόμενη προσέγγιση, θεωρήθηκε σημαντικό τα εργαλεία ανάλυσης κώδικα να εκτελεστούν σε πραγματικά πακέτα λογισμικού, συγκεκριμένα στα Kodi Home Theater και Telegram. Αυτό θα επιτρέψει την εξαγωγή συμπερασμάτων σχετικά με την απόδοση των εργαλείων σε πραγματικές συνθήκες. Τα πακέτα λογισμικού που επιλέχθηκαν βρίσκονται σε ώριμο επίπεδο ανάπτυξης, άρα το ενδιαφέρον επικεντώνεται σε τυχόν παραμένοντα προβλήματα ασφάλειας. Η μελέτη επικεντρώθηκε σε προβλήματα υπερχείλισης και πιο συγκεκριμένα σε Buffer Overflows (CWE-120) και Integer Overflows (CWE-190). Ως εργαλεία στατικού ελέγχου επιλέχτηκαν τα Flawfinder και CppCheck (cli|gui). Συνολικά, αφού παρουσιαστεί το θεωρητικό υπόβαθρο, η διπλωματική εστιάζει στο πειραματικό μέρος, δηλαδή την εκτέλεση των εργαλείων ανάλυσης κώδικα στα δύο επιλεγμένα πακέτα λογισμικού και τον έλεγχο της ορθότητας των ευρημάτων. Συμπερασματικά, παρόλο που και τα δύο εργαλεία ανίχνευσαν κενά ασφαλείας στο κώδικα και των δύο πακέτων λογισμικού, τα προβλήματα αυτά δεν είναι άμεσα (πρακτικά) εκμεταλλεύσιμα.
id oai:hellanicus.lib.aegean.gr:11610-24983
institution Hellanicus
language el_GR
publishDate 2023
record_format dspace
spelling oai:hellanicus.lib.aegean.gr:11610-249832023-03-31T06:54:58Z Αξιολόγηση αυτοματοποιημένων εργαλείων στατικής ανάλυσης C/C++ κώδικα με εστίαση σε ευπάθειες υπερχείλισης Assessment of static analysis tools for C/C++ code focused on overflow vulnerabilities Βαμβακάκης, Νικόλας Vamvakakis, Nikolas Καμπουράκης, Γεώργιος Ασφάλεια Πληροφοριακών και Επικοινωνιακών Συστημάτων στατική ανάλυση αυτοματοποιημένα υπερχείλιση flawfinder cppcheck c/c++ Open source software Η παρούσα διπλώματική εργασία μελετάει και αξιολογεί την απόδοση ανοιχτού κώδικα εργαλείων στατικής ανάλυσης εφαρμοσμένα σε δημοφιλή, ανοιχτού κώδικα πραγματικά πακέτα λογισμικού υλοποιημένα σε C/C++. Η βιβλιογραφία περιέχει αρκετές μελέτες τέτοιων εργαλείων, αλλά η πλειοψηφία τους εφαρμόζεται σε σουίτες ελέγχου ειδικά διαμορφωμένες ώστε εσκεμμένα να περιλαμβάνουν πληθώρα προβλημάτων ασφάλειας. Συγκεκριμένα, παρά την αυξημένη δυσκολία λόγω της απαίτησης για χειροκίνητη επιβεβαίωση των ευρημάτων, σε αντίθεση με την προαναφερόμενη προσέγγιση, θεωρήθηκε σημαντικό τα εργαλεία ανάλυσης κώδικα να εκτελεστούν σε πραγματικά πακέτα λογισμικού, συγκεκριμένα στα Kodi Home Theater και Telegram. Αυτό θα επιτρέψει την εξαγωγή συμπερασμάτων σχετικά με την απόδοση των εργαλείων σε πραγματικές συνθήκες. Τα πακέτα λογισμικού που επιλέχθηκαν βρίσκονται σε ώριμο επίπεδο ανάπτυξης, άρα το ενδιαφέρον επικεντώνεται σε τυχόν παραμένοντα προβλήματα ασφάλειας. Η μελέτη επικεντρώθηκε σε προβλήματα υπερχείλισης και πιο συγκεκριμένα σε Buffer Overflows (CWE-120) και Integer Overflows (CWE-190). Ως εργαλεία στατικού ελέγχου επιλέχτηκαν τα Flawfinder και CppCheck (cli|gui). Συνολικά, αφού παρουσιαστεί το θεωρητικό υπόβαθρο, η διπλωματική εστιάζει στο πειραματικό μέρος, δηλαδή την εκτέλεση των εργαλείων ανάλυσης κώδικα στα δύο επιλεγμένα πακέτα λογισμικού και τον έλεγχο της ορθότητας των ευρημάτων. Συμπερασματικά, παρόλο που και τα δύο εργαλεία ανίχνευσαν κενά ασφαλείας στο κώδικα και των δύο πακέτων λογισμικού, τα προβλήματα αυτά δεν είναι άμεσα (πρακτικά) εκμεταλλεύσιμα. This Master thesis explores and assesses the performance of open source static analysis tools, applied to popular open source real-life projects implemented in C/C++. The bibliography presents several studies of such tools, however their majority have been applied to specially designed software test suites which include a great number of deliberate security flaws. Even though the difficulty of such a process is increased due to the need for manual verification of the findings, in contrast to the aforementioned approaches, it was considered important that such tools should be applied to real-life software projects, specifically Kodi Home Theater and Telegram. This will enable testers to draw conclusions about the performance of such tools against real-life mature software and provide comparisons with results stemming from software test suites. Specifically, the chosen software projects are in a mature development stage, assuring that any verification actions by the development team are already complete. Therefore, it is interesting to check if the analysis tools can identify any remaining, latent security flaws. The study is focused on overflow vulnerabilities, specifically on Buffer Overflows (CWE-120) and Integer Overflows (CWE-190). Flawfinder and CppCheck (cli|gui) were chosen as the static analysis tools to be tested. Initially, a theoretical analysis of all components that contributed to this thesis is presented, which is followed by the tools' execution targeting the aforementioned software projects. We present the findings after verifying them; this provides an initial, empirical assessment of the tool's performance as well. It is interesting to see that although both the tools were able to detect existing security flaws in various parts of the software projects, these flaws were structured in such a way that they are not directly exploitable. 2023-03-29T11:29:57Z 2023-03-29T11:29:57Z 2023-01 http://hdl.handle.net/11610/24983 el_GR Default License 107 σ. application/pdf Σάμος
spellingShingle στατική ανάλυση
αυτοματοποιημένα
υπερχείλιση
flawfinder
cppcheck
c/c++
Open source software
Βαμβακάκης, Νικόλας
Vamvakakis, Nikolas
Αξιολόγηση αυτοματοποιημένων εργαλείων στατικής ανάλυσης C/C++ κώδικα με εστίαση σε ευπάθειες υπερχείλισης
title Αξιολόγηση αυτοματοποιημένων εργαλείων στατικής ανάλυσης C/C++ κώδικα με εστίαση σε ευπάθειες υπερχείλισης
title_full Αξιολόγηση αυτοματοποιημένων εργαλείων στατικής ανάλυσης C/C++ κώδικα με εστίαση σε ευπάθειες υπερχείλισης
title_fullStr Αξιολόγηση αυτοματοποιημένων εργαλείων στατικής ανάλυσης C/C++ κώδικα με εστίαση σε ευπάθειες υπερχείλισης
title_full_unstemmed Αξιολόγηση αυτοματοποιημένων εργαλείων στατικής ανάλυσης C/C++ κώδικα με εστίαση σε ευπάθειες υπερχείλισης
title_short Αξιολόγηση αυτοματοποιημένων εργαλείων στατικής ανάλυσης C/C++ κώδικα με εστίαση σε ευπάθειες υπερχείλισης
title_sort αξιολόγηση αυτοματοποιημένων εργαλείων στατικής ανάλυσης c c κώδικα με εστίαση σε ευπάθειες υπερχείλισης
topic στατική ανάλυση
αυτοματοποιημένα
υπερχείλιση
flawfinder
cppcheck
c/c++
Open source software
url http://hdl.handle.net/11610/24983
work_keys_str_mv AT bambakakēsnikolas axiologēsēautomatopoiēmenōnergaleiōnstatikēsanalysēscckōdikameestiasēseeupatheiesypercheilisēs
AT vamvakakisnikolas axiologēsēautomatopoiēmenōnergaleiōnstatikēsanalysēscckōdikameestiasēseeupatheiesypercheilisēs
AT bambakakēsnikolas assessmentofstaticanalysistoolsforcccodefocusedonoverflowvulnerabilities
AT vamvakakisnikolas assessmentofstaticanalysistoolsforcccodefocusedonoverflowvulnerabilities