Επιθέσεις έγχυσης κώδικα που εκμεταλλεύονται εγγενείς ευπάθειες εφαρμογών διαδικτύου (Cross Site Scripting Attacks) : - Λαλιώτη, Βασιλική (2008)
Μια κατηγορία ευπάθειας εφαρμογών του παγκόσμιου ιστού που τα τελευταία χρόνια έχει πάρει μεγάλες διαστάσεις, αλλά που ακόμα πολλοί από τους εμπλεκόμενους τόσο στο σχεδιασμό όσο και στην ανάπτυξή τους δεν δείχνουν να τη θεωρούν σημαντική ώστε να λάβουν μέτρα αντιμετώπισής της, είναι η κατηγορία ευπαθειών Cross Site Scripting γνωστή με το ακρωνύμιο XSS. Η συγκεκριμένη κατηγορία ευπάθειας δεν τυγχάνει συχνά της προσοχής που θα έπρεπε, είτε διότι οι υπεύθυνοι ανάπτυξης μιας εφαρμογής δεν κατανοούν επακριβώς τον τρόπο με τον οποίο η κατηγορία αυτή αποβαίνει τελικά εις βάρος της ίδιας της εφαρμογής, είτε γιατί θεωρούν ότι αυτή η κατηγορία ευπάθειας δεν είναι τόσο σημαντική, αφού αφήνει ανέπαφη την ίδια την εφαρμογή.Η ιδιομορφία που έχει η ύπαρξη της συγκεκριμένης κατηγορίας ευπάθειας εστιάζεται στο ότι πράγματι, η κακόβουλη εκμετάλλευση μιας ευπάθειας δεν αλλοιώνει την ίδια την εφαρμογή, στρέφεται όμως εναντίων των χρηστών της εφαρμογής, αποσκοπώντας συχνά στην υποκλοπή των στοιχείων της ενεργής συνεδρίας που ένας νόμιμος χρήστης έχει παραλάβει από την εφαρμογή με την οποία βρίσκεται σε αλληλεπίδραση.Με την εκμετάλλευση μιας ευπάθειας XSS που η εφαρμογή έχει, ένας νόμιμος χρήστης μπορεί να εκτεθεί σε κινδύνους αποκάλυψης των δεδομένων της ενεργής του συνεδρίας σε τρίτους, χωρίς ο ίδιος να «αφήσει» ποτέ την ιστοθέση της πραγματικής εφαρμογής. Ίσως χρειαστεί προκειμένου να ενεργοποιηθεί η επίθεση εναντίον του, που θα χρησιμοποιήσει την εγγενή XSS ευπάθεια της εφαρμογής που θέλει να χρησιμοποιήσει, να ακολουθήσει κάποιον υπερσύνδεσμο, πολλές φορές όμως δεν θα χρειαστεί να κάνει τίποτα παραπάνω από το να ζητήσει να δει μια σελίδα που η εφαρμογή παρέχει. Οι εφαρμογές που υποφέρουν από ευπάθειες XSS είναι πάρα πολλές και όσο η συγκεκριμένη κατηγορία δεν λαμβάνεται σοβαρά υπόψη κατά το στάδιο ανάπτυξης και ελέγχου μιας εφαρμογής, το πρόβλημα θα παραμένει. Ο OWASP στη λίστα με τους 10 πιο σημαντικούς κινδύνους που εξέδωσε το 2007 αναφέρει τις ευπάθειες XSS στην πρώτη θέση, από τέταρτη που τις είχε κατηγοριοποιήσει το 2004 [1].Η παρούσα εργασία παρουσιάζει με τη βοήθεια μιας πρότυπης εφαρμογής ένα σύνολο από καλές πρακτικές που μπορούν να ελαχιστοποιήσουν τους κινδύνους που διατρέχει μια εφαρμογή από αυτή την κατηγορία ευπαθειών. Εστιάζεται στον τρόπο με τον οποίο δεδομένα που ο χρήστης παρέχει στην εφαρμογή ελέγχονται πριν τη χρήση τους από την εφαρμογή, καθώς επίσης και στον τρόπο με τον οποίο διαφορετικές σελίδες της εφαρμογής επικοινωνούν μεταξύ τους μεταφέροντας δεδομένα από τη μια σελίδα στην άλλη με ασφαλή τρόπο.Η υλοποίηση και η πειραματική μελέτη των όσων παρουσιάζονται στην παρούσα εργασία με τη βοήθεια μιας δοκιμαστικής εφαρμογής διαδικτύου έδειξε ότι ο συστηματικός έλεγχος των δεδομένων που ένας χρήστης εισάγει σε μια εφαρμογή είναι καθοριστική για την προστασία της εφαρμογής από προσπάθειες αλλαγής του προσχεδιασμένου και επιθυμητού τρόπου συμπεριφοράς της. Η υλοποίηση της συγκεκριμένης εφαρμογής έδειξε ότι είναι αποτελεσματική στην αναχαίτηση κακόβουλων προσπαθειών που στόχο έχουν την υποκλοπή των στοιχείων συνεδρίας ενός χρήστη. Ο έλεγχος των δεδομένων γίνεται με χρήση Regular Expressions τα οποία επιφέρουν λιγότερη επιβάρυνση στους χρόνους απόκρισης του συστήματος από ότι η χρήση εναλλακτικών τρόπων κωδικοποίησης των ελέγχων. Η πειραματική μελέτη της εφαρμογής έδειξε ότι οι χρόνοι απόκρισης της εφαρμογής επιβαρύνονται ελάχιστα από τη χρήση των συναρτήσεων που ελέγχουν τα δεδομένα του χρήστη. Τέλος, η θεωρητική σύγκριση της πρότυπης εφαρμογής σε σχέση με δύο γνωστές στο χώρο μεθόδους από εργασίες άλλων ερευνητών, έδειξε ότι η εφαρμογή ανταπεξέρχεται πολύ καλά σε επιθέσεις XSS παρέχοντας πολύ καλό επίπεδο ασφάλειας για τη συγκεκριμένη κατηγορία επιθέσεων.