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

Αναζήτηση

Πλοήγηση

Ο Χώρος μου

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

Filopoulos Konstantinos

Απλή Εγγραφή


URIhttp://purl.tuc.gr/dl/dias/674D9912-B7F2-4E71-A3C2-8ED4D5B37676-
Αναγνωριστικόhttps://doi.org/10.26233/heallink.tuc.94244-
Γλώσσαel-
Μέγεθος1.3 megabytesen
Μέγεθος82 σελίδεςel
ΤίτλοςΑδρομερής δυναμική ανάλυση για Pythonel
ΤίτλοςCoarse-grained dynamic analysis for Pythonen
ΔημιουργόςFilopoulos Konstantinosen
ΔημιουργόςΦιλοπουλος Κωνσταντινοςel
Συντελεστής [Επιβλέπων Καθηγητής]Ioannidis Sotiriosen
Συντελεστής [Επιβλέπων Καθηγητής]Ιωαννιδης Σωτηριοςel
Συντελεστής [Μέλος Εξεταστικής Επιτροπής]Lagoudakis Michailen
Συντελεστής [Μέλος Εξεταστικής Επιτροπής]Λαγουδακης Μιχαηλel
Συντελεστής [Μέλος Εξεταστικής Επιτροπής]Vasilakis, Nikosen
ΕκδότηςΠολυτεχνείο Κρήτηςel
ΕκδότηςTechnical University of Creteen
Ακαδημαϊκή ΜονάδαTechnical University of Crete::School of Electrical and Computer Engineeringen
Ακαδημαϊκή ΜονάδαΠολυτεχνείο Κρήτης::Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστώνel
ΠεριγραφήΔιπλωματική Εργασία που υποβλήθηκε στη σχολή ΗΜΜΥ του Πολυτεχνείου Κρήτης για την απόκτηση προπτυχιακού διπλώματοςel
ΠερίληψηΗ δυναμική ανάλυση προγράμματος είναι μια διαδεδομένη τεχνική παρακολούθησης, κατανόησης, και εξαγωγής συμπερασμάτων σχετικά με την ασφαλή χρήση και τα χαρακτηριστικά απόδοσης μιας βιβλιοθήκης, δυνητικά παρεμβαίνοντας στη συμπεριφορά του προγράμματος κατά τη διάρκεια της εκτέλεσής του, παρέχοντας συνεχή πληροφόρηση. Τα υφιστάμενα εργαλεία δυναμικής ανάλυσης συχνά επιφέρουν σημαντικό κόστος εκτέλεσης (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.el
ΠερίληψηDynamic program analysis is a widespread technique for monitoring, understanding, and inferring the safe use and performance characteristics of a library, potentially interfering with the program’s behavior during its execution, providing continuous information. Existing dynamic analysis tools often impose significant runtime overhead on a program. For programs in Python, existing tools do not provide dynamic analysis and the programmers use ad-hoc applications for their own use. This thesis proposes, the first allow/deny coarse-grained dynamic analysis tool, PySecu fully developed in Python with the ability to selectively transform attributes of the analyzed library. Given the widespread use of third-party libraries, this coarse-grained dynamic analysis technique attempts to trade off detail and accuracy by reducing the runtime overhead of the analysis. It is done at the frame level of the library attributes, while still supporting the original program’s semantics, retaining their original functionality and without requiring modification of the program’s execution environment or the production features of the dynamic language. It leverages the features of modern dynamic languages such as JavaScript, Lua and Python to dynamically modify each library by injecting user code into its source code before it is loaded. Applying the PySecu analysis tool to 25 libraries shows that it imposes 3x average runtime overhead on executing the libraries without analysis. It is in the same order of magnitude as corresponding tools in other languages (JavaScript), as well as the built-in API analysis tool provided by Python, sys.settrace. It shows very encouraging results in runtime overhead, in relation to the analyses of the DynaPyt framework for Python.en
ΤύποςΔιπλωματική Εργασίαel
ΤύποςDiploma Worken
Άδεια Χρήσηςhttp://creativecommons.org/licenses/by/4.0/en
Ημερομηνία2022-12-14-
Ημερομηνία Δημοσίευσης2022-
Θεματική ΚατηγορίαProgramming languagesen
Θεματική ΚατηγορίαAnalysisen
Θεματική ΚατηγορίαPerformanceen
Θεματική ΚατηγορίαSecurityen
Θεματική ΚατηγορίαDynamic analysisen
Βιβλιογραφική ΑναφοράΚωνσταντίνος Φιλόπουλος, "Αδρομερής δυναμική ανάλυση για Python", Διπλωματική Εργασία, Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών, Πολυτεχνείο Κρήτης, Χανιά, Ελλάς, 2022el
Βιβλιογραφική ΑναφοράKonstantinos Filopoulos, "Coarse-grained dynamic analysis for Python", Diploma Work, School of Electrical and Computer Engineering, Technical University of Crete, Chania, Greece, 2022en

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

Υπηρεσίες

Στατιστικά