
Τεχνολογίες ανάπτυξης ασφαλούς λογισμικού
Author(s) -
Δημήτριος Μητρόπουλος
Publication year - 2021
Language(s) - Uncategorized
Resource type - Dissertations/theses
DOI - 10.12681/eadd/43152
Subject(s) - xpath , javascript , computer science , programming language , sql , database , world wide web , xml , xml database
Οι επιθέσεις ένεσης κώδικα είναι από τις πλεον διαδεδομένες και επικίνδυνες επιθέσεις στο διαδίκτυο. Στο πλαίσιο της διατριβής αυτής αναπτύξαμε μια δυναμική μέθοδος ανίχνευσης επιθέσεων τέτοιου τύπου. Η μέθοδος αυτή χρησιμοποιεί μοναδικά αναγνωριστικά («υπογραφές»). Τα αναγνωριστικά αυτά συνδυάζουν σταθερά στοιχεία ευάλωτoυ κώδικα με στοιχεία που προέρχονται από το περιβάλλον εκτέλεσης της εφαρμογής. Η μέθοδός μας δουλεύει σε δύο φάσεις: «εκμάθησης» και «παραγωγής». Κατά τη διάρκεια της εκμάθησης του συστήματος οι βιβλιοθήκες εφαρμόζουν μια κρυπτογραφική συνάρτηση κατακερματισμού στα στοιχεία που συνδυάζονται. Το αποτέλεσμα που είναι η «υπογραφή», αποθηκεύεται σε έναν πίνακα. Όταν η προσέγγιση βρίσκεται στην φάση της παραγωγής, τότε τα βήματα που ακολουθούνται είναι ίδια μέχρι να φτιαχτεί και πάλι μια υπογραφή. Εαν αυτή υπάρχει στον πίνακα που δημιουργήθηκε κατά την φάση της παραγωγής τότε ο κώδικας εκτελείται κανονικά. Εαν δεν υπάρχει τότε πιθανότατα μια επίθεση ένεσης λαμβάνει χώρα. Για να επικυρώσουμε την προσέγγισή μας, υλοποιήσαμε τρεις μηχανισμούς που προστατεύουν τις εφαρμογές από επιθέσεις ένεσης κώδικα SQL, XPath και JavaScript αντίστοιχα. Επιπλέον, εξετάσαμε τους μηχανισμούς μας σε σχέση με την ακρίβεια τους. Κατα πόσο είναι αποτελεσματικοί δηλαδή στην ανίχνευση επιθέσεων. Ακόμη εξετάσαμε και την υπολογιστική επιβάρυνση τους σε σχέση με την εφαρμογή που προστατεύουν. Στις δοκιμές μας, δεν προέκυψαν ψευδή θετικά ή αρνητικά αποτελέσματα. Επίσης, σε όλες τις περιπτώσεις οι μηχανισμοί μπορούν να έχουν πρακτική αξία μιας και επιβαρύνουν ελάχιστα την προστατευόμενη εφαρμογή.