Λογότυπο Zephyrnet

Διάχυτες ψευδαισθήσεις LLM Αναπτύξτε το Code Developer Attack Surface

Ημερομηνία:

Η χρήση μοντέλων μεγάλων γλωσσών (LLM) από τους προγραμματιστές λογισμικού προσφέρει μεγαλύτερη ευκαιρία από ό,τι πιστεύαμε προηγουμένως για τους εισβολείς να διανέμουν κακόβουλα πακέτα σε περιβάλλοντα ανάπτυξης, σύμφωνα με έρευνα που κυκλοφόρησε πρόσφατα.

Η μελέτη από τον προμηθευτή ασφαλείας LLM Lasso Security αποτελεί συνέχεια μιας έκθεσης του περασμένου έτους σχετικά με τις δυνατότητες οι επιτιθέμενοι κάνουν κατάχρηση της τάσης των LLM να έχουν παραισθήσεις, ή για τη δημιουργία φαινομενικά αληθοφανών αλλά όχι στοιχειωδών γεγονότων, αποτελέσματα ως απόκριση στη συμβολή του χρήστη.

Παραισθήσεις πακέτου AI

Η προηγούμενη μελέτη επικεντρώθηκε στην τάση του ChatGPT να κατασκευάζει τα ονόματα των βιβλιοθηκών κώδικα - μεταξύ άλλων κατασκευών - όταν οι προγραμματιστές λογισμικού ζήτησαν τη βοήθεια του chatbot με δυνατότητα AI σε ένα περιβάλλον ανάπτυξης. Με άλλα λόγια, το chatbot μερικές φορές έβγαζε συνδέσμους προς ανύπαρκτα πακέτα σε δημόσιους χώρους αποθήκευσης κώδικα, όταν ένας προγραμματιστής μπορεί να του ζητήσει να προτείνει πακέτα για χρήση σε ένα έργο.

Ο ερευνητής ασφαλείας Bar Lanyado, συγγραφέας της μελέτης και τώρα στο Lasso Security, διαπίστωσε ότι οι επιτιθέμενοι μπορούσαν εύκολα να ρίξουν ένα πραγματικό κακόβουλο πακέτο στην τοποθεσία στην οποία οδηγεί το ChatGPT και να του δώσουν το ίδιο όνομα με το πακέτο με παραισθήσεις. Οποιοσδήποτε προγραμματιστής που κατεβάζει το πακέτο με βάση τη σύσταση του ChatGPT θα μπορούσε στη συνέχεια να καταλήξει να εισάγει κακόβουλο λογισμικό στο περιβάλλον ανάπτυξής του.

του Lanyado έρευνα παρακολούθησης εξέτασε τη διάχυση του προβλήματος της παραίσθησης του πακέτου σε τέσσερα διαφορετικά μεγάλα γλωσσικά μοντέλα: GPT-3.5-Turbo, GPT-4, Gemini Pro (πρώην Bard) και Coral (Cohere). Επίσης, δοκίμασε την τάση κάθε μοντέλου να δημιουργεί πακέτα με ψευδαισθήσεις σε διαφορετικές γλώσσες προγραμματισμού και τη συχνότητα με την οποία δημιούργησαν το ίδιο πακέτο παραισθήσεων.

Για τις δοκιμές, ο Lanyado συνέταξε μια λίστα με χιλιάδες ερωτήσεις «πώς να» τις οποίες οι προγραμματιστές σε διαφορετικά περιβάλλοντα προγραμματισμού — python, node.js, go, .net, ruby ​​— αναζητούν συνήθως βοήθεια από LLM σε περιβάλλοντα ανάπτυξης. Στη συνέχεια, ο Lanyado έκανε σε κάθε μοντέλο μια ερώτηση που σχετίζεται με την κωδικοποίηση καθώς και μια σύσταση για ένα πακέτο που σχετίζεται με την ερώτηση. Ζήτησε επίσης από κάθε μοντέλο να προτείνει 10 ακόμη πακέτα για να λύσει το ίδιο πρόβλημα.

Επαναλαμβανόμενα αποτελέσματα

Τα αποτελέσματα ήταν ανησυχητικά. Το εκπληκτικό 64.5% των «συζητήσεων» που είχε ο Lanyado με τους Διδύμους δημιούργησε πακέτα με παραισθήσεις. Με την Coral, αυτός ο αριθμός ήταν 29.1%. άλλα LLM όπως το GPT-4 (24.2%) και το GPT3.5 (22.5%) δεν τα πήγαν πολύ καλύτερα.

Όταν ο Lanyado ρώτησε κάθε μοντέλο το ίδιο σύνολο ερωτήσεων 100 φορές για να δει πόσο συχνά τα μοντέλα είχαν παραισθήσεις για τα ίδια πακέτα, διαπίστωσε ότι τα ποσοστά επανάληψης ήταν επίσης εντυπωσιακά. Ο Cohere, για παράδειγμα, πέταξε τα ίδια πακέτα με παραισθήσεις πάνω από το 24% του χρόνου. Chat GPT-3.5 και Gemini γύρω στο 14%, και GPT-4 στο 20%. Σε πολλές περιπτώσεις, διαφορετικά μοντέλα είχαν ψευδαισθήσεις για τα ίδια ή παρόμοια πακέτα. Ο μεγαλύτερος αριθμός τέτοιων μοντέλων με διασταυρούμενες ψευδαισθήσεις εμφανίστηκε μεταξύ GPT-3.5 και Gemini.

Ο Lanyado λέει ότι ακόμα κι αν διαφορετικοί προγραμματιστές έκαναν σε ένα LLM μια ερώτηση για το ίδιο θέμα αλλά έκαναν τις ερωτήσεις διαφορετικά, υπάρχει πιθανότητα το LLM να προτείνει το ίδιο πακέτο παραισθήσεων σε κάθε περίπτωση. Με άλλα λόγια, οποιοσδήποτε προγραμματιστής που χρησιμοποιεί ένα LLM για βοήθεια κωδικοποίησης πιθανότατα θα συναντούσε πολλά από τα ίδια πακέτα παραισθήσεων.

«Η ερώτηση θα μπορούσε να είναι εντελώς διαφορετική, αλλά σε ένα παρόμοιο θέμα, και η ψευδαίσθηση θα εξακολουθούσε να συμβαίνει, καθιστώντας αυτή την τεχνική πολύ αποτελεσματική», λέει ο Lanyado. «Στην τρέχουσα έρευνα, λάβαμε «επαναλαμβανόμενα πακέτα» για πολλές διαφορετικές ερωτήσεις και θέματα, ακόμη και για διαφορετικά μοντέλα, γεγονός που αυξάνει την πιθανότητα χρήσης αυτών των πακέτων με ψευδαισθήσεις».

Εύκολο στην εκμετάλλευση

Ένας εισβολέας οπλισμένος με τα ονόματα μερικών πακέτων με παραισθήσεις, για παράδειγμα, θα μπορούσε να ανεβάσει πακέτα με τα ίδια ονόματα στα κατάλληλα αποθετήρια γνωρίζοντας ότι υπάρχει μεγάλη πιθανότητα ένα LLM να κατευθύνει τους προγραμματιστές σε αυτό. Για να αποδείξει ότι η απειλή δεν είναι θεωρητική, ο Lanyado πήρε ένα πακέτο παραισθήσεων που ονομάζεται "huggingface-cli" που συνάντησε κατά τη διάρκεια των δοκιμών του και ανέβασε ένα άδειο πακέτο με το ίδιο όνομα στο αποθετήριο Hugging Face για μοντέλα μηχανικής μάθησης. Οι προγραμματιστές κατέβασαν αυτό το πακέτο περισσότερες από 32,000 φορές, λέει.

Από τη σκοπιά ενός παράγοντα απειλής, οι παραισθήσεις πακέτων προσφέρουν έναν σχετικά απλό φορέα για τη διανομή κακόβουλου λογισμικού. «Όπως [είδαμε] από τα αποτελέσματα της έρευνας, δεν είναι τόσο δύσκολο», λέει. Κατά μέσο όρο, όλα τα μοντέλα είχαν παραισθήσεις μαζί κατά 35% για σχεδόν 48,000 ερωτήσεις, προσθέτει ο Lanyado. Το GPT-3.5 είχε το χαμηλότερο ποσοστό παραισθήσεων. Ο Δίδυμος σημείωσε την υψηλότερη βαθμολογία, με μέση επαναληπτικότητα 18% και στα τέσσερα μοντέλα, σημειώνει.

Η Lanyado προτείνει στους προγραμματιστές να είναι προσεκτικοί όταν ενεργούν σύμφωνα με τις συστάσεις ενός πακέτου από ένα LLM όταν δεν είναι απολύτως σίγουροι για την ακρίβειά του. Λέει επίσης ότι όταν οι προγραμματιστές αντιμετωπίζουν ένα άγνωστο πακέτο ανοιχτού κώδικα, πρέπει να επισκεφτούν το αποθετήριο πακέτων και να εξετάσουν το μέγεθος της κοινότητάς του, τα αρχεία συντήρησής του, τα γνωστά του τρωτά σημεία και το συνολικό ποσοστό αφοσίωσης. Οι προγραμματιστές θα πρέπει επίσης να σαρώσουν το πακέτο σχολαστικά πριν το εισαγάγουν στο περιβάλλον ανάπτυξης.

spot_img

Τελευταία Νοημοσύνη

spot_img