title: Applying dynamic coarse-grained library interposition to security
title: Εφαρμόζοντας αδρομερή διαμεσολάβηση βιβλιοθηκών για βελτίωση ασφάλειας
Creators: name: Ντουσακης Γρηγοριος
Publisher: name: Technical University of Crete
Year: 2024

description: In today's complex software landscape, developers face the challenge of building complex systems that meet the growing demands of users and businesses. A common approach to analyzing, detecting problems, and solving security problems in these systems is the use of dynamic interposition. Dynamic interposition involves adding new functionality between existing software interfaces to extend the system, while preserving old functionality. An effective dynamic interposition technique is module recontextualization, which operates at the module or library level in modern dynamic languages, like JavaScript and Racket. Module recontextualization leverages run-time module loading to apply lightweight code transformations that insert analysis code at module boundaries, capturing interactions around the module. This provides a low overhead, always-on analysis approach compared to instruction-level or procedure-level techniques. This thesis presents several applications of the module-level dynamic interposition approach to demonstrate its versatility and practical value for program monitoring, analysis, and security tasks. The work includes two large-scale studies of the Node.js ecosystem, a dynamic enforcement engine for language policies, a system to secure native add-ons, and a combined static and dynamic analysis framework. The goal is to show how this module-level interposition technique can enable practical program analysis and security for complex applications.

description: Στο σύνθετο τοπίο του σημερινού λογισμικού, οι προγραμματιστές αντιμετωπίζουν την πρόκληση της δημιουργίας περίπλοκων συστημάτων που ανταποκρίνονται στις αυξανόμενες απαιτήσεις των χρηστών και των επιχειρήσεων. Μια κοινή προσέγγιση στην ανάλυση, ανίχνευση και επίλυση προβλημάτων ασφαλείας σε αυτά τα συστήματα είναι η χρήση της δυναμικής διαμεσολάβησης. Η δυναμική διαμεσολάβηση περιλαμβάνει την προσθήκη νέας λειτουργικότητας μεταξύ υπαρχουσών διεπαφών λογισμικού για να επεκτείνει το σύστημα διατηρώντας την παλιά λειτουργικότητα. Μία αποτελεσματική τεχνική δυναμικής επανατοποθέτησης είναι η αδρομερής ανάλυση, η οποία λειτουργεί στο επίπεδο των μονάδων ή των βιβλιοθηκών σε σύγχρονες δυναμικές γλώσσες όπως το JavaScript και το Racket. Η αδρομερής ανάλυση ωφελείται από τη δυνατότητα της δυναμικής φόρτωσης μονάδων σε χρόνο εκτέλεσης για να εφαρμόζει ελαφριές μετατροπές κώδικα που εισάγουν κώδικα ανάλυσης στα όρια των μονάδων, αποτυπώνοντας τις αλληλεπιδράσεις γύρω από το πλαίσιο. Αυτό παρέχει μία προσέγγιση ανάλυσης χαμηλής υπερφόρτωσης, πάντα ενεργή. Αυτή η διπλωματική παρουσιάζει πολλαπλές εφαρμογές της προσέγγισης αδρομερούς ανάλυσης σε επίπεδο μονάδας για να αποδείξει την πολυμορφικότητα της και την πρακτική αξία της για την παρακολούθηση των προγραμμάτων, την ανάλυση και τις εργασίες ασφάλειας. Η εργασία περιλαμβάνει δύο μελέτες του οικοσυστήματος του Node.js, ένα δυναμικό μηχανισμό επιβολής για πολιτικές ασφαλείας, ένα σύστημα για την ασφάλιση των προσθέτων γραμμένων σε C/C++ και ένα συνδυαστικό πλαίσιο στατικής και δυναμικής ανάλυσης. Στόχος είναι να αποδείξει πώς αυτή η αδρομερής ανάλυσης σε επίπεδο μονάδας μπορεί να ενεργοποιήσει πρακτική ανάλυση προγραμμάτων και ασφάλεια για περίπλοκες εφαρμογές.