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

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

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

Αποθηκεύτηκε σε:
Λεπτομέρειες βιβλιογραφικής εγγραφής
Κύριοι συγγραφείς: Βαμβακάκης, Νικόλας, Vamvakakis, Nikolas
Άλλοι συγγραφείς: Καμπουράκης, Γεώργιος
Γλώσσα:el_GR
Δημοσίευση: 2023
Θέματα:
Διαθέσιμο Online:http://hdl.handle.net/11610/24983
Ετικέτες: Προσθήκη ετικέτας
Δεν υπάρχουν, Καταχωρήστε ετικέτα πρώτοι!
Περιγραφή
Περίληψη:Η παρούσα διπλώματική εργασία μελετάει και αξιολογεί την απόδοση ανοιχτού κώδικα εργαλείων στατικής ανάλυσης εφαρμοσμένα σε δημοφιλή, ανοιχτού κώδικα πραγματικά πακέτα λογισμικού υλοποιημένα σε C/C++. Η βιβλιογραφία περιέχει αρκετές μελέτες τέτοιων εργαλείων, αλλά η πλειοψηφία τους εφαρμόζεται σε σουίτες ελέγχου ειδικά διαμορφωμένες ώστε εσκεμμένα να περιλαμβάνουν πληθώρα προβλημάτων ασφάλειας. Συγκεκριμένα, παρά την αυξημένη δυσκολία λόγω της απαίτησης για χειροκίνητη επιβεβαίωση των ευρημάτων, σε αντίθεση με την προαναφερόμενη προσέγγιση, θεωρήθηκε σημαντικό τα εργαλεία ανάλυσης κώδικα να εκτελεστούν σε πραγματικά πακέτα λογισμικού, συγκεκριμένα στα Kodi Home Theater και Telegram. Αυτό θα επιτρέψει την εξαγωγή συμπερασμάτων σχετικά με την απόδοση των εργαλείων σε πραγματικές συνθήκες. Τα πακέτα λογισμικού που επιλέχθηκαν βρίσκονται σε ώριμο επίπεδο ανάπτυξης, άρα το ενδιαφέρον επικεντώνεται σε τυχόν παραμένοντα προβλήματα ασφάλειας. Η μελέτη επικεντρώθηκε σε προβλήματα υπερχείλισης και πιο συγκεκριμένα σε Buffer Overflows (CWE-120) και Integer Overflows (CWE-190). Ως εργαλεία στατικού ελέγχου επιλέχτηκαν τα Flawfinder και CppCheck (cli|gui). Συνολικά, αφού παρουσιαστεί το θεωρητικό υπόβαθρο, η διπλωματική εστιάζει στο πειραματικό μέρος, δηλαδή την εκτέλεση των εργαλείων ανάλυσης κώδικα στα δύο επιλεγμένα πακέτα λογισμικού και τον έλεγχο της ορθότητας των ευρημάτων. Συμπερασματικά, παρόλο που και τα δύο εργαλεία ανίχνευσαν κενά ασφαλείας στο κώδικα και των δύο πακέτων λογισμικού, τα προβλήματα αυτά δεν είναι άμεσα (πρακτικά) εκμεταλλεύσιμα.