Η Επεξεργασία Φυσικής Γλώσσας είναι ένας από τους πιο γρήγορα αναπτυσσόμενους τομείς της τεχνητής νοημοσύνης την τελευταία δεκαετία. Τα ερευνητικά πεδία που περιλαμβάνει είναι πολλά, όπως η αυτόματη περίληψη κειμένου, η εξαγωγή πληροφοριών από το κείμενο, η αυτόματη μετάφραση, τα ηλεκτρονικά συστήματα ερωτοαπαντήσεων, η αναγνώριση ομιλίας και ούτω καθεξής. Όμως τα φώτα της δημοσιότητας έχουν στραφεί στον υποτομέα της που ονομάζεται Συνομιλητική Τεχνητή Νοημοσύνη (Conversational AI) και προϊόν της οποίας είναι οι Συνομιλητικοί Βοηθοί (Conversational Assistants). Οι συνομιλητικοί βοηθοί ξεκίνησαν ως προγράμματα εγκατεστημένα σε υπολογιστές, που μπορούσαν να περατώσουν απλές και συγκεκριμένες πάνω σε ένα πεδίο λειτουργίες. Σήμερα βρίσκονται εγκατεστημένοι σε μία πληθώρα συσκευών όπως τα κινητά τηλέφωνα, τα έξυπνα ηχεία και τα έξυπνα ρολόγια. Παράλληλα, έχουν πολύ μεγαλύτερες δυνατότητες που αναμένεται να αυξηθούν στο άμεσο μέλλον, όπως η συγγραφή κώδικα, η σύνθεση μουσικής και ο έλεγχος κυβερνοφυσικών συστημάτων. Ένα από τα μεγαλύτερα προβλήματα που αντιμετωπίζουν είναι η έλλειψη της επαρκούς ασφάλειας. Λόγω των περιορισμένων δυνατοτήτων τους μέχρι τώρα, αυτό δεν αποτελούσε απειλή, καθώς οι συνομιλητικοί βοηθοί δεν διαχειρίζονταν προσωπικά δεδομένα των χρηστών, ούτε μπορούσαν να περατώσουν κρίσιμες για το σύστημα λειτουργίες. Με την εμφάνιση των προηγμένων βοηθών όπως το ChatGPT και τη χρήση τους σε όλο ένα και περισσότερους τομείς, αυτό έπαψε να ισχύει. Έτσι, κρίνεται αναγκαία η περαιτέρω μελέτη και δημιουργία συστημάτων ασφαλείας, για την προστασία των συνομιλητικών βοηθών και των χρηστών τους. Σε αυτή τη διπλωματική αναγνωρίστηκε η τεράστια έλλειψη εφαρμόσιμων συστημάτων εξουσιοδότησης και ελέγχου πρόσβασης στους συνομιλητικούς βοηθούς. Έτσι, αφού ερευνήθηκε το πεδίο και εξετάστηκαν οι υπάρχουσες προτάσεις, σχεδιάστηκε ένα τέτοιο σύστημα μέσω μίας μοντελο-κεντρικής προσέγγισης, βασισμένο στην μεθοδολογία ελέγχου πρόσβασης με βάση τους ρόλους (RBAC). Για να γίνει αυτό χρησιμοποιήθηκε η γλώσσα ειδικού σκοπού dFlow, μία γλώσσα ταχείας ανάπτυξης CAs, η οποία παράγει έτοιμους για χρήση συνομιλητικούς βοηθούς, χρησιμοποιώντας το RASA framework. Τα αποτελέσματα που προκύπτουν από την εφαρμογή της σχεδιασθείσας αρχιτεκτονικής είναι ενθαρρυντικά. Αυτή είναι ικανή να προστατεύσει αποτελεσματικά τους πόρους των συνομιλητικών βοηθών και τα δεδομένα των χρηστών από μη εξουσιοδοτημένη πρόσβαση και τροποποίηση. Επιπλέον, μέσω της δυνατότητας γενίκευσης και εφαρμογής της σε νέα μοντέλα συνομιλητικών βοηθών, θέτει τη βάση και το ερευνητικό έρεισμα για την ανάπτυξη προηγμένων συστημάτων ασφαλείας που θα τους θωρακίσουν.
Static Analysis of Python code and Identification of Potential Security Vulne...
Σχεδίαση και Ανάπτυξη Μηχανισμού Εξουσιοδότησης και Ελέγχου Πρόσβασης σε Συνομιλητικούς Βοηθούς
1. Σχεδίαση και Ανάπτυξη Μηχανισμού Εξουσιοδότησης και
Ελέγχου Πρόσβασης σε Συνομιλητικούς Βοηθούς
Επιβλέπων:
ΑνδρέαςΣυμεωνίδης
Καθηγητής ΑΠΘ
Διπλωματική Εργασία
Εκπόνηση:
Νάτσος Δημοσθένης
ΑΕΜ: 9462
2. Παραδείγματα
Χρήσης
Εργαλεία
Σχεδίαση και Ανάπτυξη Μηχανισμού Εξουσιοδότησης και
Ελέγχου Πρόσβασης σε Συνομιλητικούς Βοηθούς
2
Ιούλιος 2023
Διάρθρωση
Πρόβλημα
Στόχος &
Συνεισφορά
Θεωρητικό
Υπόβαθρο
Μελλοντικές
Επεκτάσεις
Μεθοδολογία &
Υλοποίηση
Συμπεράσματα
3. Σχεδίαση και Ανάπτυξη Μηχανισμού Εξουσιοδότησης και
Ελέγχου Πρόσβασης σε Συνομιλητικούς Βοηθούς
3
Ιούλιος 2023
Συνεχώς αυξανόμενες δυνατότητες συνομιλητικών βοηθών
Online αγορές (Πρόσβαση σε πιστωτικές και χρεωστικές κάρτες)
Περάτωση τραπεζικών συναλλαγών
Έλεγχος κυβερνοφυσικών συστημάτων
Ενώ παράλληλα …
Τρωτοί μηχανισμοί αυθεντικοποίησης των χρηστών
Έλλειψη μηχανισμών εξουσιοδότησης και ελέγχου πρόσβασης των χρηστών
στους πόρους των συνομιλητικών βοηθών
Για να γίνει αυτό απαιτείται
Πρόσβαση σε προσωπικά δεδομένα των χρηστών
Εκτέλεση κρίσιμων για το σύστημα λειτουργιών
4. Εργαλεία
Σχεδίαση και Ανάπτυξη Μηχανισμού Εξουσιοδότησης και
Ελέγχου Πρόσβασης σε Συνομιλητικούς Βοηθούς
4
Ιούλιος 2023
Διάρθρωση
Πρόβλημα
Στόχος &
Συνεισφορά
Θεωρητικό
Υπόβαθρο
Μελλοντικές
Επεκτάσεις
Μεθοδολογία &
Υλοποίηση
Παραδείγματα
Χρήσης
Συμπεράσματα
5. Σχεδίαση και Ανάπτυξη Μηχανισμού Εξουσιοδότησης και
Ελέγχου Πρόσβασης σε Συνομιλητικούς Βοηθούς
5
Ιούλιος 2023
Στόχος και συνεισφορά της διπλωματικής
Ανάπτυξη μηχανισμού εξουσιοδότησης και ελέγχου πρόσβασης προσαρμοσμένου
στην αρχιτεκτονική των συνομιλητικών βοηθών
Επιτάχυνση της διαδικασίας ανάπτυξης συνομιλητικών βοηθών
Γεφύρωση του γνωστικού κενού και αύξηση της προσβασιμότητας της διαδικασίας σε
μη-ειδικούς
Ανάδειξη της έλλειψης μηχανισμών και πρακτικών ασφάλειας στους συνομιλητικούς
βοηθούς.
6. Σχεδίαση και Ανάπτυξη Μηχανισμού Εξουσιοδότησης και
Ελέγχου Πρόσβασης σε Συνομιλητικούς Βοηθούς
6
Ιούλιος 2023
Διάρθρωση
Πρόβλημα Εργαλεία
Στόχος &
Συνεισφορά
Θεωρητικό
Υπόβαθρο
Μελλοντικές
Επεκτάσεις
Μεθοδολογία &
Υλοποίηση
Παραδείγματα
Χρήσης
Συμπεράσματα
7. Σχεδίαση και Ανάπτυξη Μηχανισμού Εξουσιοδότησης και
Ελέγχου Πρόσβασης σε Συνομιλητικούς Βοηθούς
7
Ιούλιος 2023
8. Εργαλεία
Σχεδίαση και Ανάπτυξη Μηχανισμού Εξουσιοδότησης και
Ελέγχου Πρόσβασης σε Συνομιλητικούς Βοηθούς
8
Ιούλιος 2023
Διάρθρωση
Πρόβλημα
Στόχος &
Συνεισφορά
Θεωρητικό
Υπόβαθρο
Μελλοντικές
Επεκτάσεις
Μεθοδολογία &
Υλοποίηση
Παραδείγματα
Χρήσης
Συμπεράσματα
9. Σχεδίαση και Ανάπτυξη Μηχανισμού Εξουσιοδότησης και
Ελέγχου Πρόσβασης σε Συνομιλητικούς Βοηθούς
9
Ιούλιος 2023
Μεθοδολογία ανάπτυξης λογισμικού
Χρήση εννοιολογικών μοντέλων και Γλωσσών Ειδικού Πεδίου (Domain Specific
Languages) για την αυτοματοποίηση της παραγωγής λογισμικού.
Μοντελο-κεντρική Μηχανική
Επιταχύνει την ανάπτυξη λογισμικού
Μειώνει την πολυπλοκότητα συγγραφής κώδικα
Γεφυρώνει το γνωσιακό κενό με έναν τομέα (π.χ. το NLP)
Επιτρέπει την εφαρμογή τομεακών περιορισμών στα μοντέλα-εισόδους για την αποφυγή
σφαλμάτων έγκαιρα στον κύκλο ανάπτυξης λογισμικού.
Χρησιμοποιείται διότι …
10. Σχεδίαση και Ανάπτυξη Μηχανισμού Εξουσιοδότησης και
Ελέγχου Πρόσβασης σε Συνομιλητικούς Βοηθούς
10
Ιούλιος 2023
Γλώσσες προγραμματισμού με υψηλή αφαιρετικότητα
Εξειδικεύουν την γραμματική τους στις ανάγκες ενός τομέα
Απλούστερες των γλωσσών γενικού σκοπού
Γλώσσες Ειδικού Πεδίου
Γλώσσα ειδικού πεδίου για ταχεία ανάπτυξη συνομιλητικών βοηθών
Αναπτύσσεται από την ομάδα Issel του ΑΠΘ
Θεμέλιο του μηχανισμού εξουσιοδότησης και ελέγχου πρόσβασης
dFlow
11. Σχεδίαση και Ανάπτυξη Μηχανισμού Εξουσιοδότησης και
Ελέγχου Πρόσβασης σε Συνομιλητικούς Βοηθούς
11
Ιούλιος 2023
Τυπικός Σκελετός ενός Συστήματος Ελέγχου Πρόσβασης
12. Σχεδίαση και Ανάπτυξη Μηχανισμού Εξουσιοδότησης και
Ελέγχου Πρόσβασης σε Συνομιλητικούς Βοηθούς
12
Ιούλιος 2023
Τυπική Αρχιτεκτονική των Συνομιλητικών Βοηθών
13. Εργαλεία
Σχεδίαση και Ανάπτυξη Μηχανισμού Εξουσιοδότησης και
Ελέγχου Πρόσβασης σε Συνομιλητικούς Βοηθούς
13
Ιούλιος 2023
Διάρθρωση
Πρόβλημα
Στόχος &
Συνεισφορά
Θεωρητικό
Υπόβαθρο
Μελλοντικές
Επεκτάσεις
Μεθοδολογία &
Υλοποίηση
Παραδείγματα
Χρήσης
Συμπεράσματα
14. Σχεδίαση και Ανάπτυξη Μηχανισμού Εξουσιοδότησης και
Ελέγχου Πρόσβασης σε Συνομιλητικούς Βοηθούς
14
Ιούλιος 2023
Βασικοί Άξονες Σχεδίασης
1. Το σύστημα πρέπει να μπορεί να επιτρέπει ή να απαγορεύει στον χρήστη την
εκτέλεση λειτουργιών
π.χ. Ανάκτηση κρίσιμων πληροφοριών από έναν ενδοεταιρικό CA, όπως οι μισθοί
των υπαλλήλων, μόνο από εξουσιοδοτημένους χρήστες.
2. Το σύστημα πρέπει να μπορεί να εκτελεί διαφορετικές λειτουργίες ανάλογα με
τον χρήστη
π.χ. Έναρξη/Παύση του κινητήρα μέσω φωνητικών εντολών μόνο από τον οδηγό. Η
εκτέλεση άλλων διεργασιών όπως το άνοιγμα ενός παραθύρου να επιτρέπεται και
στους υπόλοιπους επιβάτες.
3. Το σύστημα πρέπει να μπορεί να εμφανίζει διαφορετική ακρίβεια της
πληροφορίας ανάλογα με τον χρήστη.
π.χ. Διαβάθμιση του επιπέδου της παρεχόμενης πληροφορίας σχετικά με τον καιρό
από έναν CA, ανάλογα με το πρόγραμμα συνδρομής του χρήστη (δωρεάν, επί-
πληρωμή).
15. Σχεδίαση και Ανάπτυξη Μηχανισμού Εξουσιοδότησης και
Ελέγχου Πρόσβασης σε Συνομιλητικούς Βοηθούς
15
Ιούλιος 2023
Σημεία Εφαρμογής του Ελέγχου Πρόσβασης
16. Σχεδίαση και Ανάπτυξη Μηχανισμού Εξουσιοδότησης και
Ελέγχου Πρόσβασης σε Συνομιλητικούς Βοηθούς
16
Ιούλιος 2023
Μεταμοντέλο
17. Σχεδίαση και Ανάπτυξη Μηχανισμού Εξουσιοδότησης και
Ελέγχου Πρόσβασης σε Συνομιλητικούς Βοηθούς
17
Ιούλιος 2023
Γενικευμένο Μεταμοντέλο
18. Σχεδίαση και Ανάπτυξη Μηχανισμού Εξουσιοδότησης και
Ελέγχου Πρόσβασης σε Συνομιλητικούς Βοηθούς
18
Ιούλιος 2023
Σκελετός του Συστήματος Ελέγχου Πρόσβασης
19. Σχεδίαση και Ανάπτυξη Μηχανισμού Εξουσιοδότησης και
Ελέγχου Πρόσβασης σε Συνομιλητικούς Βοηθούς
19
Ιούλιος 2023
Διαδικασία Αυτοματοποιημένης Παραγωγής Κώδικα
20. Εργαλεία
Σχεδίαση και Ανάπτυξη Μηχανισμού Εξουσιοδότησης και
Ελέγχου Πρόσβασης σε Συνομιλητικούς Βοηθούς
20
Ιούλιος 2023
Διάρθρωση
Πρόβλημα
Στόχος &
Συνεισφορά
Θεωρητικό
Υπόβαθρο
Μελλοντικές
Επεκτάσεις
Μεθοδολογία &
Υλοποίηση
Παραδείγματα
Χρήσης
Συμπεράσματα
22. Εργαλεία
Σχεδίαση και Ανάπτυξη Μηχανισμού Εξουσιοδότησης και
Ελέγχου Πρόσβασης σε Συνομιλητικούς Βοηθούς
22
Ιούλιος 2023
Διάρθρωση
Πρόβλημα
Στόχος &
Συνεισφορά
Θεωρητικό
Υπόβαθρο
Μελλοντικές
Επεκτάσεις
Μεθοδολογία &
Υλοποίηση
Παραδείγματα
Χρήσης
Συμπεράσματα
23. Σχεδίαση και Ανάπτυξη Μηχανισμού Εξουσιοδότησης και
Ελέγχου Πρόσβασης σε Συνομιλητικούς Βοηθούς
23
Ιούλιος 2023
Η διπλωματική αυτή επιτυγχάνει την …
Ανάπτυξη μηχανισμού εξουσιοδότησης και ελέγχου πρόσβασης
• Αποτελεσματική προστασία του συστήματος και των δεδομένων των χρηστών
• Ευπροσάρμοστη (Future-proof) αρχιτεκτονική
• Ικανοποίηση των σχεδιαστικών στόχων
• Τήρηση των καλών πρακτικών σχεδίασης
Επιτάχυνση της διαδικασίας ανάπτυξης ασφαλών συνομιλητικών βοηθών
Αύξηση της προσβασιμότητας της διαδικασίας σε μη-ειδικούς
Ανάδειξη της έλλειψης μηχανισμών και πρακτικών ασφάλειας στους συνομιλητικούς
βοηθούς.
24. Εργαλεία
Σχεδίαση και Ανάπτυξη Μηχανισμού Εξουσιοδότησης και
Ελέγχου Πρόσβασης σε Συνομιλητικούς Βοηθούς
24
Ιούλιος 2023
Διάρθρωση
Πρόβλημα
Στόχος &
Συνεισφορά
Θεωρητικό
Υπόβαθρο
Μελλοντικές
Επεκτάσεις
Μεθοδολογία &
Υλοποίηση
Παραδείγματα
Χρήσης
Συμπεράσματα
25. Σχεδίαση και Ανάπτυξη Μηχανισμού Εξουσιοδότησης και
Ελέγχου Πρόσβασης σε Συνομιλητικούς Βοηθούς
25
Ιούλιος 2023
Μελλοντικές Επεκτάσεις
Υλοποίηση προηγμένων συστημάτων ελέγχου πρόσβασης όπως Attribute-Based ή
Rule-Based Access Control
Ενσωμάτωση άμεσων τρόπων αυθεντικοποίησης π.χ. αναγνώριση φωνής
Προσαρμογή του συστήματος ελέγχου πρόσβασης σε intent-less αρχιτεκτονικές
συνομιλητικών βοηθών (GPT-3, GPT-4)
26. Σχεδίαση και Ανάπτυξη Μηχανισμού Εξουσιοδότησης και
Ελέγχου Πρόσβασης σε Συνομιλητικούς Βοηθούς
26
Ιούλιος 2023
Θα ήθελα να ευχαριστήσω θερμά τους:
κ. Ανδρέα Συμεωνίδη
κ. Νικόλαο Μάλαμα
κ. Κωσταντίνο Παναγιώτου
Συγγενείς και Φίλους
για την πολύτιμη στήριξη και καθοδήγησή τους.
Ευχαριστίες
ΠΡΟΣΟΧΗ: Να γίνει μία σύντομη αναφορά στους συνομιλητικούς βοηθούς και πού τους συναντάμε. (ChatGPT, Alexa, Siri, Google Assistant, Βοηθοί σε ιστοσελίδες, κλπ.)
- Οι συνομιλητικοί βοηθοί εδραιώνονται όλο και περισσότερο στην καθημερινότητά μας.
- Παράλληλα οι δυνατότητές τους αυξάνονται συνεχώς, όπως … (αυτές που αναγράφονται στη διαφάνεια)
- Μπορούν να εκτελούν δηλαδή, κρίσιμες για το σύστημα λειτουργίες και να έχουν πρόσβαση σε προσωπικά δεδομένα των χρηστών.
- Υπάρχει έλλειψη μηχανισμών εξουσιοδότησης και ελέγχου πρόσβασης των χρηστών στους πόρους των συνομιλητικών βοηθών. Δηλαδή, είναι δύσκολο να προσδιοριστεί σε ποια δεδομένα και σε ποιες λειτουργίες ενός συνομιλητικού βοηθού έχει πρόσβαση ένας χρήστης.
Οι δυνατότητες των συνομιλητικών βοηθών συνεχώς αυξάνονται, ιδίως τα τελευταία χρόνια με την πρόοδο της τεχνητής νοημοσύνης και της επεξεργασίας φυσικής γλώσσας.
Πλέον οι συνομιλητικοί βοηθοί έχουν πρόσβαση σε πιστωτικές και χρεωστικές κάρτες ώστε να περατώνουν online αγορές, μπορούν να πραγματοποιούν τραπεζικές συναλλαγές. Μπορούν επίσης να ελέγχουν κυβερνοφυσικά συστήματα, όπως το άναμμα και το σβήσιμο της μηχανής του αυτοκινήτου, ενώ για να γίνουν όλα αυτά, λαμβάνουν πρόσβαση σε ευαίσθητα προσωπικά δεδομένα των χρηστών. Αυτές είναι μόνο κάποιες από τις συνεχώς αυξανόμενες δυνατότητες των συνομιλητικών βοηθών.
Για να εκτελεστούν με ασφάλεια οι παραπάνω λειτουργίες χρειάζονται ισχυροί μηχανισμοί αυθεντικοποίησης, εξουσιοδότησης και ελέγχου πρόσβασης των χρηστών στους πόρους των συνομιλητικών βοηθών. Δυστυχώς αυτό δεν γίνεται, αφού οι υπάρχοντες μηχανισμοί αυθεντικοποίησης, όπως η αναγνώριση φωνής κρίνονται τρωτοί, ενώ υπάρχει έλλειψη συστημάτων εξουσιοδότησης και ελέγχου πρόσβασης που μπορούν να εφαρμοστούν στους συνομιλητικούς βοηθούς.
- Στόχος είναι το πρώτο bullet.
- Ενώ παράλληλα συνεισφέρει και στα υπόλοιπα.
- Η συνεισφορά στην επιτάχυνση της διαδικασίας ανάπτυξης CAs και στη γεφύρωση του γνωστικού κενού εντοπίζεται αφού επεκτείνεται η λειτουργικότητα της γλώσσας dFlow. Όπως θα δούμε και παρακάτω, η γλώσσα dFlow είναι μία γλώσσα ειδικού πεδίου, ο απώτερος στόχος της οποίας είναι … (τα δύο μεσαία bullets)
Τα εργαλεία που χρησιμοποίησα είναι τα εξής:
Το RASA, είναι ένα εργαλείο ανοιχτού κώδικα για την ανάπτυξη συνομιλητικών βοηθών. Αυτό είναι γραμμένο σε Python και η ανάπτυξη των βοηθών γίνεται με χρήση αρχείων yaml και κώδικα Python.
Η TextX είναι μία μετα-γλώσσα η οποία επιτρέπει την ανάπτυξη γλωσσών προγραμματισμού (όπως DSLs).
Το Jinja είναι ένα εργαλείο που επιτρέπει την δημιουργία αρχείων κειμένου μέσα από δυναμικά πρότυπα (templates).
Ακολουθείται η φιλοσοφία της Μοντελο-κεντρικής Μηχανικής
- Πολύ περιεκτικά, πώς δομείται ένα σύστημα ελέγχου πρόσβασης σύμφωνα με τις καλές πρακτικές.
- Πολύ περιεκτικά, πώς είναι η τυπική αρχιτεκτονική των συνομιλητικών βοηθών.
Τέσσερα σημεία εφαρμογής του ελέγχου πρόσβασης
Το πρώτο έχει μεγάλη περιπλοκότητα (διπλότυπο NLU στοιχείο) και εφαρμόζεται μόνο σε client-server αρχιτεκτονικές συνομιλητικών βοηθών
Το δεύτερο και το τρίτο έχουν μεγάλη πολυπλοκότητα υλοποίησης και δεν ακολουθούν τις καλές πρακτικές σχεδίασης (Αποκεντρωμένο ΣΕΠ)
Τέταρτη επιλογή προσφέρει ευελιξία, χαμηλή πολυπλοκότητα και ακολουθεί τις καλές πρακτικές σχεδίασης (αποκεντρωμένο ΣΕΠ). Επιπλέον προσφέρει future-proof σχεδιασμό, καθώς μπορεί να προσαρμοστεί στις νέες, intentless αρχιτεκτονικές συνομιλητικών βοηθών που χρησιμοποιούν μεγάλα γλωσσικά μοντέλα για να αποφανθούν για την επόμενη δράση απευθείας από την έκφραση του χρήστη.
- Ενώ στη συνέχεια γενικεύουμε το μεταμοντέλο ώστε να μπορεί αν εφαρμοστεί σε μία μεγάλη γκάμα (πληθώρα) συνομιλητικών βοηθών.
Ο προγραμματιστής γράφει τον συνομιλητικό βοηθό σε γλώσσα dFlow
Ο κώδικας σε γλώσσα dFlow εισάγεται στην γεννήτρια κώδικα
Αυτή με χρήση των προτύπων jinja παράγει τον τελικό κώδικα RASA
Ο συνομιλητικός βοηθός είναι έτοιμος να εκτελεστεί.