Ένας νέος βοηθός για τον έλεγχο του κώδικα
Τα μεγάλα γλωσσικά μοντέλα μπορούν πλέον να συμβάλουν ουσιαστικά στον εντοπισμό ευπαθειών λογισμικού. Διαβάζουν κώδικα, συσχετίζουν συναρτήσεις, εξετάζουν αλλαγές μεταξύ εκδόσεων και προτείνουν δοκιμές για ύποπτες συμπεριφορές. Η αξία τους γίνεται μεγαλύτερη όταν συνδέονται με εργαλεία ανάλυσης και περιβάλλοντα εκτέλεσης, ώστε οι υποθέσεις τους να ελέγχονται στην πράξη. Για τις κοινότητες ανοιχτού λογισμικού, αυτό δημιουργεί μια σημαντική δυνατότητα: περισσότερα έργα μπορούν να υποβάλλονται σε συστηματικό έλεγχο, εφόσον υπάρχουν άνθρωποι και πόροι για την αξιολόγηση και τη διόρθωση των ευρημάτων.
Η ασφάλεια, ωστόσο, δεν προκύπτει από μια πειστική απάντηση στην οθόνη. Ένα μοντέλο μπορεί να υποδείξει ανύπαρκτο πρόβλημα ή να παραβλέψει μια σοβαρή αδυναμία. Η αποτελεσματική αξιοποίησή του απαιτεί τεκμηρίωση, επαναλήψιμες δοκιμές και συνεργασία με τους συντηρητές του λογισμικού.
Πώς εντοπίζονται οι αδυναμίες
Μια βασική χρήση είναι η εξέταση της διαδρομής των δεδομένων μέσα στην εφαρμογή. Το μοντέλο βοηθά τον ερευνητή να παρακολουθήσει τι συμβαίνει από την παραλαβή ενός αρχείου ή ενός αιτήματος μέχρι την επεξεργασία του. Μπορεί να επισημάνει ελλιπείς ελέγχους μεγέθους, πρόσβαση σε μνήμη που έχει ήδη αποδεσμευτεί ή ασυνέπειες στους ελέγχους δικαιωμάτων. Χρειάζεται, όμως, επαρκές περιβάλλον: μια μεμονωμένη συνάρτηση συχνά δεν αποκαλύπτει τους ελέγχους που προηγούνται ούτε τις προϋποθέσεις εκτέλεσης.
Εξίσου χρήσιμη είναι η αναζήτηση παραλλαγών γνωστών σφαλμάτων. Μια διόρθωση δείχνει ποια παραδοχή του προγραμματιστή αποδείχθηκε λανθασμένη. Το μοντέλο μπορεί να αναζητήσει αντίστοιχες παραδοχές σε άλλα σημεία του έργου. Το 2024, το ερευνητικό σύστημα Big Sleep των Google Project Zero και Google DeepMind εντόπισε ευπάθεια μνήμης στον υπό ανάπτυξη κώδικα του SQLite, η οποία διορθώθηκε πριν περιληφθεί σε επίσημη έκδοση. Η έρευνα αξιοποίησε πρόσφατες αλλαγές του κώδικα ως αφετηρία για την αναζήτηση συναφών προβλημάτων.
Μια τρίτη εφαρμογή είναι η ενίσχυση του fuzzing, δηλαδή της αυτοματοποιημένης δοκιμής λογισμικού με μεγάλο πλήθος διαφορετικών, απρόβλεπτων ή αλλοιωμένων εισόδων. Τα μοντέλα γράφουν μικρά προγράμματα δοκιμών που καλούν λειτουργίες μιας βιβλιοθήκης και βοηθούν τα εργαλεία να εξετάσουν κώδικα που προηγουμένως έμενε εκτός ελέγχου. Τον Νοέμβριο του 2024, η Google ανακοίνωσε 26 νέες ευπάθειες μέσω δοκιμών που δημιουργήθηκαν ή βελτιώθηκαν με ΤΝ στο OSS-Fuzz, μεταξύ τους και την CVE-2024-9143 στο OpenSSL.
Τι δείχνουν τα πραγματικά περιστατικά
Η συνεργασία της Anthropic με τη Mozilla προσφέρει ένα χαρακτηριστικό παράδειγμα. Σύμφωνα με την ανακοίνωση του Μαρτίου 2026, το Claude Opus 4.6 εντόπισε 22 ευπάθειες στον Firefox μέσα σε δύο εβδομάδες, από τις οποίες η Mozilla χαρακτήρισε 14 υψηλής σοβαρότητας. Η διαδικασία περιλάμβανε τεχνική αξιολόγηση των αναφορών και διάθεση διορθώσεων. Αναδεικνύει τη σημασία της συνεργασίας ανάμεσα στην ομάδα που αναζητά προβλήματα και στην ομάδα που γνωρίζει και συντηρεί το προϊόν.
Η ίδια έρευνα κατέγραψε μια κρίσιμη διάκριση: η ανακάλυψη ευπάθειας δεν ισοδυναμεί με αξιόπιστη εκμετάλλευσή της. Οι επιτυχείς απόπειρες εκμετάλλευσης ήταν πολύ λιγότερες και πραγματοποιήθηκαν σε περιβάλλον δοκιμών από το οποίο είχαν αφαιρεθεί ορισμένες προστασίες. Τα αποτελέσματα χρειάζονται επομένως ανάγνωση μαζί με τις συνθήκες υπό τις οποίες επιτεύχθηκαν.
Διαφορετικό δίδαγμα δίνει η τεχνική αναφορά της Hacktron, που δημοσιεύθηκε τον Σεπτέμβριο του 2026. Οι ερευνητές περιγράφουν πώς χρησιμοποίησαν μοντέλα Claude για να εξετάσουν μια εγκατάσταση Discourse και να αξιοποιήσουν πρόβλημα στη βιβλιοθήκη επεξεργασίας εικόνων libheif. Κατά την αναφορά τους, σχετική αλλαγή στον αρχικό κώδικα δεν είχε επισημανθεί ως διόρθωση ασφαλείας, γεγονός που ενδέχεται να συνέβαλε στην καθυστέρηση μεταφοράς της στα πακέτα της διανομής.
Η αδυναμία παρέμενε διαθέσιμη μέσω του ImageMagick και της επεξεργασίας εικόνων στο φόρουμ της OpenAI. Σε συνδυασμό με πρόβλημα ενιαίας ταυτοποίησης, επέτρεψε πρόσβαση σε λογαριασμούς και συνδεδεμένο εσωτερικό αποθετήριο. Οι ερευνητές δηλώνουν ότι απέδειξαν την πρόσβαση υποβάλλοντας μια ακίνδυνη πρόταση αλλαγής, χωρίς να διαβάσουν εσωτερικό κώδικα. Το περιστατικό υπογραμμίζει ότι ο έλεγχος πρέπει να καλύπτει τις πραγματικά εγκατεστημένες εξαρτήσεις και τη διαμόρφωση των υπηρεσιών.
Η επαλήθευση είναι μέρος της ανακάλυψης
Ένας χρήσιμος έλεγχος ξεκινά από συγκεκριμένη έκδοση λογισμικού και σαφώς ορισμένο πεδίο. Το μοντέλο διατυπώνει υποθέσεις, ενώ εργαλεία στατικής ανάλυσης, αποσφαλμάτωσης και ελέγχου μνήμης παρέχουν ανεξάρτητα στοιχεία. Ακολουθεί μια όσο γίνεται μικρότερη δοκιμή που αναπαράγει το πρόβλημα. Μετά τη διόρθωση, εξετάζεται τόσο αν το σφάλμα εξαφανίστηκε όσο και αν διατηρείται η κανονική λειτουργία. Η τελική αποδοχή της αλλαγής παραμένει ευθύνη της ομάδας συντήρησης.
Η έρευνα PrimeVul ανέδειξε ότι προβληματικά σύνολα δεδομένων και μέθοδοι αξιολόγησης μπορούν να υπερεκτιμήσουν τις επιδόσεις των μοντέλων. Επαναλαμβανόμενα δείγματα και αλληλεπικάλυψη μεταξύ εκπαίδευσης και αξιολόγησης δημιουργούν παραπλανητικές εντυπώσεις. Τα αποτελέσματα εκείνης της μελέτης αφορούν τα μοντέλα που εξετάστηκαν, αλλά το μεθοδολογικό δίδαγμα παραμένει: χρειαζόμαστε νέες περιπτώσεις, ανεξάρτητη επιβεβαίωση και μέτρηση των ψευδών συναγερμών.
Για ένα έργο ανοιχτού λογισμικού, εκατοντάδες ατεκμηρίωτες αναφορές μπορούν να εξαντλήσουν τον χρόνο των συντηρητών. Η χρήσιμη αναφορά εξηγεί την αιτία, προσδιορίζει την επηρεαζόμενη έκδοση και συνοδεύεται από αναπαραγώγιμη δοκιμή. Οι έλεγχοι σε εγκαταστάσεις τρίτων χρειάζονται εξουσιοδότηση και τα ευρήματα συντονισμένη γνωστοποίηση.
Ανοιχτά εργαλεία και χρηματοδότηση της συντήρησης
Ο ανοιχτός κώδικας επιτρέπει σε ανεξάρτητες ομάδες να εξετάζουν το ίδιο πρόβλημα, να επαναλαμβάνουν δοκιμές και να συνεισφέρουν διορθώσεις. Το OSS-Fuzz-Gen αποτελεί διαθέσιμη ανοιχτή υποδομή για πειραματισμό με παραγωγή δοκιμών μέσω γλωσσικών μοντέλων. Η ανοιχτή άδεια του εργαλείου, πάντως, δεν συνεπάγεται ότι κάθε μοντέλο που χρησιμοποιεί είναι επίσης ανοιχτό.
Η τοπική λειτουργία κατάλληλων μοντέλων ανοιχτών βαρών μπορεί να περιορίσει τη διαβίβαση μη δημόσιου κώδικα σε εξωτερικούς παρόχους. Προϋποθέτει αξιολόγηση της άδειας, των επιδόσεων και της ασφάλειας της εγκατάστασης. Παράλληλα, ο περιορισμός δικαιωμάτων και η απομόνωση επικίνδυνων εργασιών παραμένουν απαραίτητα. Η πολιτική ασφαλείας του ImageMagick, για παράδειγμα, επιτρέπει περιορισμούς στις μορφές αρχείων και στην κατανάλωση πόρων.
Για την Ελλάδα, μια ουσιαστική επιλογή θα ήταν η συνεργασία εταιρειών, πανεπιστημιακών εργαστηρίων, δημόσιων φορέων και κοινοτήτων ανοιχτού λογισμικού σε ελέγχους κρίσιμων ανοιχτών βιβλιοθηκών. Η χρηματοδότηση πρέπει να καλύπτει την επιβεβαίωση, τη διόρθωση και τη διανομή ενημερώσεων, μαζί με κοινόχρηστες υπολογιστικές υποδομές και εκπαίδευση. Η πραγματική επιτυχία μετριέται στις ευπάθειες που διορθώνονται εγκαίρως στα συστήματα των χρηστών. Εκεί μπορεί η ΤΝ να ενισχύσει έμπρακτα την ασφάλεια ως κοινό αγαθό.
Πηγές άρθρου:
- Google Project Zero, From Naptime to Big Sleep: Using Large Language Models To Catch Vulnerabilities In Real-World Code: Πρωτογενής τεχνική παρουσίαση της αναζήτησης παραλλαγών σφαλμάτων και του εντοπισμού ευπάθειας στο SQLite πριν από την κυκλοφορία της επηρεαζόμενης έκδοσης: https://projectzero.google/2024/10/from-naptime-to-big-sleep.html.
- Google Security Blog, Leveling Up Fuzzing: Finding more vulnerabilities with AI: Τεκμηριώνει τις 26 ευπάθειες που εντοπίστηκαν με δοκιμές ενισχυμένες από ΤΝ στο OSS-Fuzz, συμπεριλαμβανομένου του ευρήματος στο OpenSSL: https://security.googleblog.com/2024/11/leveling-up-fuzzing-finding-more.html.
- Anthropic, Partnering with Mozilla to improve Firefox’s security: Παρουσιάζει τις 22 ευπάθειες, τη συνεργασία επαλήθευσης και διόρθωσης και τους περιορισμούς των δοκιμών εκμετάλλευσης: https://www.anthropic.com/news/mozilla-firefox-security.
- Hacktron AI, Hacking OpenAI: Πρωτογενής αναφορά των ερευνητών για τη χρήση Claude, την αλυσίδα libheif, ImageMagick και Discourse και το πρόβλημα ταυτοποίησης. Περιλαμβάνει χρονολόγιο γνωστοποίησης και διορθώσεων: https://www.hacktron.ai/blog/hacking-openai.
- Yangruibo Ding και συνεργάτες, Vulnerability Detection with Code Language Models: How Far Are We?: Ερευνητική εργασία που εισάγει το PrimeVul και αναλύει τις στρεβλώσεις των αξιολογήσεων μοντέλων για εντοπισμό ευπαθειών: https://arxiv.org/abs/2403.18624.
- Google, OSS-Fuzz-Gen: LLM powered fuzzing via OSS-Fuzz: Ανοιχτό αποθετήριο με κώδικα, τεκμηρίωση και καταγεγραμμένα ευρήματα για τη δημιουργία και βελτίωση δοκιμών fuzzing μέσω γλωσσικών μοντέλων: https://github.com/google/oss-fuzz-gen.
- ImageMagick, Security Policy: Επίσημη τεκμηρίωση για τον περιορισμό επιτρεπόμενων λειτουργιών, μορφών αρχείων και υπολογιστικών πόρων κατά την επεξεργασία μη έμπιστων εικόνων: https://imagemagick.org/security-policy/.

