Natural Language Processing (NLP) is one of the fastest developing disciplines of Artificial Intelligence in the last decade. Its applications extend in many domains such as text summarization, information extraction, automatic translation, question-answering systems, speech recognition and others. However, the subdomain of Conversational AI and its product, Conversational Assistants (CAs), have become the center of attention. Conversational assistants started as software programs executed on a computer, where they could only perform simple, domain-specific tasks. Today they can be found in a variety of devices like smartphones, smartwatches and smart speakers. Moreover, they have greater capabilities that are expected to increase in the near future, like coding, music synthesis and controlling of cyberphysical systems, among others. One of the main problems of conversational assistants is their lack of security. Until recently this didn’t constitute a problem, since they could only perform non-critical system operations and didn’t handle personal data. However, due to the appearance of advanced conversational assistants like ChatGPT and their increasing use in many subdomains, this doesn’t hold true anymore. Thus, the research and development of security systems, able to protect the CAs and their users is of utmost importance. This thesis identifies the lack of applicable authorization and access control systems for conversational assistants. Thus, the existing architectures are revised and a new one is designed using model-driven development and Role-Based Access Control methodologies. For this purpose dFlow, a domain specific language for rapid CA development, is employed. With the use of dFlow we are able to create ready-to-use conversational assistants that are deployed using the RASA framework. The results from the application of the designed architecture are encouraging. Our proposed authorization and access control mechanism is able to effectively protect the resources of the conversational assistants, as well as the personal data of the users, from unauthorized access and manipulation. Furthermore, through its generalization ability and future-proof design, it sets the foundation for the creation of more advanced security systems for CAs.
Static Analysis of Python code and Identification of Potential Security Vulne...
Design and Development of an Authorization and Access Control Mechanism for Conversational Assistants
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
Ο συνομιλητικός βοηθός είναι έτοιμος να εκτελεστεί.