Τρεις προπτυχιακοί φοιτητές του τμήματος Πληροφορικής κέρδισαν το χρηματικό έπαθλο των 500 δολαρίων για την ανακάλυψη νέων ευπαθειών στο δημοφιλές λογισμικό, WordPress. Οι φοιτητές ανακάλυψαν τα προβλήματα του WordPress με τη βοήθεια λογισμικού που κατασκεύασαν οι ίδιοι, στα πλαίσια της εκπόνησης της διπλωματικής διατριβής τους. Το εν λόγω λογισμικό είναι ένας fuzzer και ονομάζετα webFuzz. Η ερευνητική δουλειά θα παρουσιαστεί στο συνέδριο ESORICS τον Οκτώβριο του 2021 και οι λεπτομέρειες της δημοσίευσης είναι οι ακόλουθες:
webFuzz: Grey-box Fuzzing for Web Applications. Orpheas van Rooij, Marcos Charalambous, Demetris Kaizer, Michalis Papaevripides, and Elias Athanasopoulos. In Proceedings of the 26th European Symposium on Research in Computer Security (ESORICS). Darmstadt, Germany (virtual), October 2021.
Οι προπτυχιακοί φοιτητές Ορφέας βαν Ρόι, Μάρκος Χαραλάμπους, Δημήτρης Κάιζερ και ο μεταπτυχιακός φοιτητής Μιχάλης Παπαευρυπίδης είναι όλοι μέλη της ερευνητικής ομάδας SREC (Security Research), η οποία πραγματοποιεί έρευνα σε ασφάλεια συστημάτων και εντάσσεται στο τμήμα Πληροφορικής του Παν/μίου Κύπρου. Περισσότερες πληροφορίες: http://srec.cs.ucy.ac.cy
Τι είναι οι ευπάθειες λογισμικού;
Το λογισμικό που εκτελούν οι υπολογιστές μας κατασκευάζεται ώστε να πραγματοποιεί συγκεκριμένες χρήσιμες διαδικασίες. Για παράδειγμα, με τη βοήθεια λογισμικού μπορούμε να συντάσουμε εύκολα και γρήγορα κείμενα. Πολλές φορές όμως ένα πρόγραμμα μπορεί να περιέχει λάθη. Στη γλώσσα της ασφάλειας υπολογιστών, αυτά τα λάθη ονομάζονται ευπάθειες (vulnerabilities). Ένας επιτιθέμενος μπορεί να εκμεταλλευτεί τέτοιες ευπάθειες και να αναγκάσει ένα λογισμικό να εκτελέσει κώδικα ο οποίος δεν κάνει κάτι χρήσιμο, άλλα μάλλον κάτι επιβλαβές. Για παράδειγμα μέσω μιας ευπάθειας μπορεί ένας επιτιθέμενος να αποκτήσει περαιτέρω πρόσβαση στα δεδομένα του υπολογιστή στον οποίο εκτελείται το ευπαθές λογισμικό.
Τι είναι το fuzzing;
Οι ευπάθειες μπορούν να αποβούν καταστροφικές για ένα λογισμικό και τους χρήστες του. Επομένως, είναι χρήσιμο οι ευπάθειες να εντοπίζονται πριν τις εκμεταλλευτούν επιτιθέμενοι. Δυστυχώς, στις μέρες μας τα δημοφιλή προγράμματα αποτελούνται από εκατοντάδες χιλιάδες ή και εκατομμύρια γραμμών κώδικα (το WordPress αποτελείται από περίπου μισό εκατομμύριο γραμμών PHP). Επομένως, ο έλεγχος τέτοιων προγραμμάτων για την ύπαρξη ευπαθειών είναι εξαιρετικά δύσκολος.
Μια τεχνική ανάλυσης για την εύρεση ευπαθειών είναι το fuzzing. Ο αναλυτής (fuzzer) κατασκευάζει αυτόματα τυχαίες εισόδους, τις οποίες στέλνει στο υπό ανάλυση πρόγραμμα, και από το αποτέλεσμα που λαμβάνει προσπαθεί να εντοπίσει αν μία είσοδος ενεργοποίησε τυχαία κάποια ευπάθεια. Ψάχνοντας τυχαία για ευπάθειες είναι και πάλι μη αποδοτικό. Για τον λόγο αυτό, ο webFuzz, ο οποίος είναι ένας σύγχρονος fuzzer, τροποποιεί αρχικά το υπό ανάλυση πρόγραμμα με μια τεχνική που λέγεται instrumentation, ώστε να κατευθύνει τον fuzzer στην ανάλυση του και αυτή να γίνει σε όσο πιο βαθιά σημεία του κώδικα είναι εφικτό.
Ο webFuzz έχει κατορθώσει ήδη να βρει νέες ευπάθειες και σε άλλα προγράμματα πέραν του WordPress και η ερευνητική ομάδα έχει επικοινωνήσει τα ευρήματα αυτά στους κατασκευαστές των εν λόγω λογισμικών.