Σχεδιασμός και ανάπτυξη υπηρεσίας συνεχόμενης ταυτοποίησης χρηστών με βάση τον πληκτρολογικό τους χαρακτήρα
Αλέξανδρος Μικέλης, 2024.
- Νημερτής: https://nemertes.library.upatras.gr/items/a4b6d2e3-be7b-4ede-bda7-13d3aedca9b7
- Αποθετήριο κώδικα: https://github.com/hcilab-upatras/keydo
Περίληψη
Η εργασία στοχεύει στη δημιουργία ενός εργαλείου συλλογής πληκτρολογικών δεδομένων για μια πειραματική διάταξη, με σκοπό την τροφοδότηση αυτών σε υπηρεσία συνεχόμενης αυθεντικοποίησης χρηστών μέσω τεχνικών μηχανικής μάθησης, ενώ παράλληλα θα πραγματοποιηθεί συγκριτική μελέτη των τεχνικών αυτών για την εύρεση της καλύτερης στις ανάγκες του προβλήματος. Η ανάπτυξη της υπηρεσίας «Keydo» περιέχει την ενσωμάτωση μοντέρνων τεχνολογιών κάτω από μια κεντρική υποδομή.
Πιο συγκεκριμένα, ολόκληρη η υποδομή αναπτύχθηκε στο πλαίσιο λογισμικού Django, το οποίο αποτελεί δυνατό εργαλείο της γλώσσας Python για την ανάπτυξη Web Services. Συνδέσαμε στην υποδομή μας επίσης μια βάση δεδομένων PostgreSQL με σκοπό την αποθήκευση των δεδομένων της υπηρεσίας και επιπλέον υλοποιήσαμε τεχνικές ροών δεδομένων μέσα από την ανοιχτού κώδικα πλατφόρμα Apache Kafka για την ταχύτερη μεταφορά των πληκτρολογικών δεδομένων e2e (end to-end).
Εκτός από την υποδομή του server της «Keydo», δημιουργήθηκε επίσης ένα εργαλείο που θα συλλέγει πληκτρολογικά δεδομένα στο προσκήνιο από τα συστήματα των clients και μέσα από το τεχνικές ροών δεδομένων, θα αποστέλλει αυτά προς επεξεργασία, ανάλυση, μοντελοποίηση και αποθήκευση στον server. Πιο συγκεκριμένα, το client tool αποτελείται από μια ενδεικτική γραφική διεπαφή και έναν keylogger, ο οποίος είναι ο πρωταγωνιστής στη συλλογή πληκτρολογικών συμβάντων
που καταγράφονται κοντά στον πυρήνα (kernel) του υπολογιστή.
Συλλέξαμε δεδομένα εκτελώντας ένα πείραμα με πολλαπλούς χρήστες, όπου μεμονωμένα επιλέξαμε ανθρώπους με υψηλή, μέτρια και χαμηλή ταχύτητα πληκτρολόγησης, ενεργοποιήσαμε το client εργαλείο της «Keydo» και αυτό συνέλεξε δεδομένα κατά τη διάρκεια συμπλήρωσης ερωτήσεων σε ένα Google Form. Ύστερα επεξεργαστήκαμε τα δεδομένα αυτά και δημιουργήσαμε τα πληκτρολογικά χαρακτηριστικά, τα οποία θα είναι αυτά που θα χρησιμοποιήσουμε για την εκπαίδευση των μοντέλων προς μελέτη.
Η μελέτη έγινε με γνώμονα τόσο τη θεωρητική εφαρμοστικότητα κάθε αλγορίθμου στο πρόβλημά μας, καθώς και με βάση άλλες ερευνητικές εργασιές που έχουν γίνει από ερευνητές. Μελετήσαμε τη συμπεριφορά τεχνικών μηχανικής μάθησης όπως k-NN, SVM ή XGBoost, όσο και των Νευρωνικών Δικτύων όπως είναι τα RNN-LSTM, CNN, MLP μαζί με βελτιστοποιητές Adam και Nadam. Οι αλγόριθμοι XGBoost και k-NN ήταν αυτοί που ξεχώρισαν σε απόδοση και πετύχαν ιδανικά αποτελέσματα στις μετρικές αξιολόγησής μας και επαληθέυσαμε τα πορίσματα που είδαμε απο άλλες έρευνες.
Η εργασία αυτή συμβάλλει στην ανάγκη ενίσχυσης της ασφάλειας, την άνεση του χρήστη, την ανίχνευση και την πρόληψη απάτης και την προστασία ευαίσθητων εφαρμογών και δεδομένων σε απομακρυσμένη εργασία και συμμόρφωση με κανονισμούς. Παρακολουθεί συνεχώς τη συμπεριφορά πληκτρολόγησης χωρίς να διακόπτει τον χρήστη, δεν απαιτεί επιπλέον υλικό, ανιχνεύει ανωμαλίες σε πραγματικό χρόνο και ενισχύει την πολυπαραγοντική ταυτοποίηση