Λογότυπο αποθετηρίου
 

Ανάπτυξη και υλοποίηση επιθέσεων τύπου pollution σε C#/.NET

Μικρογραφία εικόνας

Ημερομηνία

2025-12-16

Τίτλος Εφημερίδας

Περιοδικό ISSN

Τίτλος τόμου

Εκδότης

Διαθέσιμο από

Περίληψη

Η παρούσα διπλωματική εργασία πραγματεύεται την ανάπτυξη και ανάλυση επιθέσεων τύπου pollution σε σύγχρονες γλώσσες προγραμματισμού, με κύρια έμφαση στο οικοσύστημα C#/.NET και συγκριτική αναφορά στο prototype pollution της JavaScript. Το prototype pollution αποτελεί μία γνωστή κατηγορία επιθέσεων στη JavaScript, η οποία εκμεταλλεύεται τη δυναμική φύση των prototypes ώστε να τροποποιήσει κοινόχρηστες δομές αντικειμένων, οδηγώντας σε απρόβλεπτη συμπεριφορά εφαρμογών, παραβίαση λογικής ασφαλείας ή κλιμάκωση δικαιωμάτων. Σκοπός της εργασίας είναι να διερευνηθεί κατά πόσο αντίστοιχες επιθέσεις μπορούν να εμφανιστούν σε statically typed περιβάλλοντα όπως το C#, παρά την απουσία prototype-based inheritance. Αναλύονται μηχανισμοί και χαρακτηριστικά της πλατφόρμας .NET, όπως reflection, object deserialization, configuration binding, dynamic types και shared mutable state, τα οποία μπορούν να δημιουργήσουν συνθήκες «pollution-like» αλλοίωσης δεδομένων ή συμπεριφοράς σε επίπεδο εφαρμογής. Η προσέγγιση της εργασίας δεν περιορίζεται στην ανακάλυψη υπαρκτών vulnerabilities, αλλά εστιάζει στη θεωρητική και πρακτική μοντελοποίηση επιθετικών σεναρίων που μιμούνται τη λογική και τον αντίκτυπο του pollution. Μέσα από πειραματικές υλοποιήσεις και ανάλυση κώδικα, αναδεικνύονται τα όρια ασφαλείας της πλατφόρμας και οι κίνδυνοι που προκύπτουν από ακατάλληλη χρήση δυναμικών μηχανισμών. Τέλος, παρουσιάζονται συμπεράσματα και προτάσεις για ασφαλέστερο σχεδιασμό εφαρμογών C#/.NET, καθώς και σύγκριση των μοντέλων ασφάλειας μεταξύ δυναμικών και στατικά τυποποιημένων γλωσσών.
This thesis focuses on the analysis and implementation of pollution-type attacks in modern programming languages, with a primary emphasis on the C#/.NET ecosystem and a comparative study of JavaScript prototype pollution. Prototype pollution is a well-known attack vector in JavaScript that exploits the dynamic nature of prototype-based inheritance, allowing attackers to modify shared object structures and cause unexpected application behavior, security logic bypasses, or privilege escalation. The objective of this work is to investigate whether similar attack patterns can exist in statically typed environments such as C#, despite the absence of prototype-based inheritance. The study examines core .NET mechanisms including reflection, object deserialization, configuration binding, dynamic typing, and shared mutable objects, which may introduce conditions that resemble pollution in terms of state manipulation and behavioral impact. Rather than focusing solely on known vulnerabilities, the thesis adopts a broader perspective by modeling and implementing theoretical attack scenarios that imitate the conceptual logic of pollution attacks. These scenarios demonstrate how improper handling of shared state and dynamic object modification can lead to security weaknesses, even in strongly typed languages. Through practical experimentation and code-level analysis, the thesis highlights the security boundaries of the .NET platform and identifies risky design patterns that may facilitate pollution-like effects. The work concludes with a discussion on the fundamental security differences between dynamic and statically typed languages and proposes mitigation strategies and secure design principles for developing robust applications within the C#/.NET environment.

Περιγραφή

Λέξεις-κλειδιά

Prototype, Pollution, C#, Javascript, Inheritance, Πρωτότυπο, Μόλυνση, Κληρονομικότητα

Παραπομπή