Fuzzing : an XMPP fuzer
Προβολή/ Άνοιγμα
Θεματική επικεφαλίδα
Πληροφοριακά συστήματα -- ΑσφάλειαΛέξεις κλειδιά
Python ; Κακόβουλο λογισμικόΠερίληψη
Το fuzzing είναι μια τεχνική για την εύρεση αδυναμιών στο λογισμικό στέλνοντας ¨παραμορφωμένα¨ δεδομένα ως είσοδο σε αυτό χρησιμοποιώντας έναν αυτοματοποιημένο τρόπο. Η εύρεση και η κατάργηση των αδυναμιών αυτών είναι σημαντική για τους προγραμματιστές καθώς η εκμετάλλευσή τους από κακόβουλους χρήστες μπορεί να προκαλέσει κενά ασφάλειας. Το αποτέλεσμα από την εκμετάλλευση μιας αδυναμίας μπορεί να είναι η παραβίαση της εφαρμογής ή και του λειτουργικού συστήματος στο οποίο αυτή είναι εγκατεστημένη και η μη εξουσιοδοτημένη πρόσβαση σε δεδομένα και πληροφορίες. Το fuzzing αποτελεί ένα γρήγορο και σχετικά φθηνό εργαλείο για την εύρεση σφαλμάτων στο λογισμικό. Παρά το γεγονός ότι η φιλοσοφία λειτουργίας του fuzzing είναι απλή, η δημιουργία ενός αποδοτικού και ακριβείς fuzzer μπορεί να αποτελεί μία απαιτητική διαδικασία. Η αποδοτικότητα και η ακρίβεια του fuzzer συνήθως στηρίζονται στην ανάλυση του υπό εξέταση πρωτοκόλλου και στην αποτελεσματικότητα των ¨παραμορφωμένων¨ δεδομένων που θα χρησιμοποιηθούν. Σκοπός της εργασίας αυτής είναι να παρουσιαστούν οι μέθοδοι που χρησιμοποιούνται για το αποτελεσματικό fuzzing ενός πρωτοκόλλου καθώς και η ανάπτυξη ενός fuzzer για το Extensible Messaging and Presence Protocol (http://www.xmpp.org/).
Το Extensible Messaging and Presence Protocol (XMPP) χρησιμοποιείται όλο και περισσότερο σε εφαρμογές για την ανταλλαγή μηνυμάτων σε πραγματικό χρόνο. Ενσωματώνει πολλά χαρακτηριστικά δικτυακών πρωτοκόλλων που σε συνδυασμό με την διαδεδομένη χρήση του το καθιστούν ελκυστικό ¨στόχο¨ για επιθέσεις κακόβουλων χρηστών.
Η ανάπτυξη του fuzzer έγινε με την χρήση της γλώσσας προγραμματισμού Python (http://www.python.org/) και της βιβλιοθήκης SleekXMPP (http://www.sleekxmpp.com/). Ο fuzzer διαβάζει από ένα αρχείο τις παραμορφωμένες ακολουθίες χαρακτήρων και με την χρήση της βιβλιοθήκης επικοινωνεί με τον εξυπηρετητή που προσφέρει υπηρεσίες XMPP. Ο έλεγχος που πραγματοποιεί του εργαλείο γίνεται σε δύο διαφορετικά σημεία όπου εισάγονται οι παραμορφωμένες ακολουθίες χαρακτήρων και εξετάζεται η συμπεριφορά του εξυπηρετητή.