Ιδρυματικό Αποθετήριο
Πολυτεχνείο Κρήτης
EN  |  EL

Αναζήτηση

Πλοήγηση

Ο Χώρος μου

Αδρομερής δυναμική ανάλυση για Python

Filopoulos Konstantinos

Πλήρης Εγγραφή


URI: http://purl.tuc.gr/dl/dias/674D9912-B7F2-4E71-A3C2-8ED4D5B37676
Έτος 2022
Τύπος Διπλωματική Εργασία
Άδεια Χρήσης
Λεπτομέρειες
Βιβλιογραφική Αναφορά Κωνσταντίνος Φιλόπουλος, "Αδρομερής δυναμική ανάλυση για Python", Διπλωματική Εργασία, Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών, Πολυτεχνείο Κρήτης, Χανιά, Ελλάς, 2022 https://doi.org/10.26233/heallink.tuc.94244
Εμφανίζεται στις Συλλογές

Περίληψη

Η δυναμική ανάλυση προγράμματος είναι μια διαδεδομένη τεχνική παρακολούθησης, κατανόησης, και εξαγωγής συμπερασμάτων σχετικά με την ασφαλή χρήση και τα χαρακτηριστικά απόδοσης μιας βιβλιοθήκης, δυνητικά παρεμβαίνοντας στη συμπεριφορά του προγράμματος κατά τη διάρκεια της εκτέλεσής του, παρέχοντας συνεχή πληροφόρηση. Τα υφιστάμενα εργαλεία δυναμικής ανάλυσης συχνάεπιφέρουν σημαντικό κόστος εκτέλεσης (runtime overhead) σε ένα πρόγραμμα. Για προγράμματα σε Python τα ήδη εφαρμοζόμενα εργαλεία δεν παρέχουν την δυνατότητα δυναμικής ανάλυσης και οι προγραμματιστές χρησιμοποιούν για δική τους χρήση ad-hoc εφαρμογές. Σε αυτή τη διπλωματική εργασία αναπτύσσεται το πρώτο εργαλείο αδρομερούς δυναμικής ανάλυσης (allow/deny), PySecu,πλήρως γραμμένο σε Python με δυνατότητα επιλεκτικής τροποποίησης στοιχείων της αναλυόμενης βιβλιοθήκης. Δεδομένης της ευρείας χρήσης βιβλιοθηκών τρίτων (third-party libraries), η τεχνική αδρομερούς δυναμικής ανάλυσης, επιχειρεί να εξαργυρώσει λεπτομέρεια και ακρίβεια με την μείωση του κόστους εκτέλεσης της ανάλυσης ενός προγράμματος. Γίνεται σε επίπεδο πλαισίου των στοιχείων της βιβλιοθήκης, υποστηρίζοντας ωστόσο τις σημαντικές διεργασίες του προγράμματος, διατηρώντας την αρχική λειτουργικότητά τους και χωρίς να απαιτείται τροποποίηση τουπεριβάλλοντος εκτέλεσης ή των χαρακτηριστικών παραγωγής της δυναμικής γλώσσας. Αξιοποιεί τα χαρακτηριστικά των σύγχρονων δυναμικών γλωσσών όπως η JavaScript, η Lua και η Python, ώστε να τροποποιεί δυναμικά την κάθε αναλυόμενη βιβλιοθήκη εισάγοντας κώδικα του χρήστη στον πηγαίο κώδικά της, πριν φορτωθεί. Η εφαρμογή τού εργαλείου ανάλυσης PySecu σε 25 βιβλιοθήκες κατέδειξε ότι επιβάλλει 3x μέσο χρονικό κόστος εκτέλεσης στην χωρίς ανάλυση εκτέλεση των βιβλιοθηκών. Βρίσκεται στην ίδια τάξη μεγέθους με αντίστοιχα εργαλεία άλλων γλωσσών(JavaScript), καθώς και με το ενσωματωμένο εργαλείο ανάλυσης API που παρέχεται από την Python, sys.settrace. Εμφανίζει δε πολύ ενθαρρυντικά αποτελέσματα στο χρόνο ανάλυσης που επιβάλλει, σε σχέση με τις αναλύσεις του πλαισίου DynaPyt για Python.

Διαθέσιμα αρχεία

Υπηρεσίες

Στατιστικά