Hacking
Agentjacking: πώς οι AI coding agents γίνονται όπλα κατά των προγραμματιστών
Η έρευνα της Tenet Security αποκαλύπτει μια αρχιτεκτονική ευπάθεια όπου εμφυτευμένα Sentry events με δημόσιο DSN οδηγούν AI coding agents να τρέξουν επιβλαβείς εντολές, με ευρεία έκθεση οργανισμών και υψηλό ποσοστό επιτυχίας. Προτείνονται άμεσα τεχνικά μέτρα και αλλαγές στη σχεδίαση των πλατφορμών.
Μια νέα κατηγορία επιθέσεων, που ονομάζεται Agentjacking, αποδεικνύει πόσο εύθραυστη είναι η τρέχουσα αλληλεπίδραση μεταξύ εργαλείων παρακολούθησης σφαλμάτων και των AI coding agents που οι προγραμματιστές χρησιμοποιούν καθημερινά. Η επίθεση δεν απαιτεί phishing, παραβίαση διακομιστή ή κάποια ιδιαίτερη αλληλεπίδραση από τον χρήστη πέρα από το κανονικό αίτημα προς τον βοηθό AI να διερευνήσει ένα σφάλμα.
Ερευνητές από το Tenet Security έδειξαν πειραματικά πώς ένα μόνο εμφυτευμένο σφάλμα, αυθεντικοποιημένο με ένα δημόσιο αναγνωριστικό που συχνά περιλαμβάνεται σε frontend JavaScript, μπορεί να προκαλέσει έναν AI agent να τρέξει αυθαίρετο κώδικα στο μηχάνημα του προγραμματιστή. Το εύρημα θέτει υπό αμφισβήτηση ένα θεμελιώδες τμήμα της αρχιτεκτονικής που συνδέει monitoring πλατφόρμες με εργαλεία αυτοματισμού και AI.
Πώς λειτουργεί στην πράξη το Agentjacking
Κεντρικό στοιχείο της επίθεσης είναι το DSN — το Data Source Name — που χρησιμοποιούν πλατφόρμες όπως η Sentry για να δέχονται αναφορές σφαλμάτων από εφαρμογές. Η Sentry έχει καταστήσει σαφές ότι το DSN είναι ασφαλές για ενσωμάτωση σε frontend JavaScript, με αποτέλεσμα να είναι εύκολα εντοπίσιμο μέσω ανάλυσης πηγής, αναζητήσεων σε δημόσιους δείκτες όπως Censys ή αναζητήσεων σε αποθετήρια.
Ένας επιτιθέμενος που αποκτήσει το DSN μπορεί να στείλει ένα crafted POST στο endpoint ingest της Sentry. Το endpoint απαντά με HTTP 200 και επεξεργάζεται το payload όπως οποιοδήποτε νόμιμο σφάλμα. Η μαεστρία της επίθεσης είναι ότι το payload μορφοποιείται με markdown headings, code blocks και ψευδείς ενότητες «Resolution» έτσι ώστε να μοιάζει ακριβώς με τα templates που επιστρέφει το Sentry MCP (MCP = Sentry’s Messaging and Control Plane) — δηλαδή την πληροφορία που τροφοδοτεί AI εργαλεία.
Ποια είναι η αλυσίδα εκμετάλλευσης
Η αλυσίδα είναι απλή αλλά δυνητικά καταστροφική: ο προγραμματιστής ζητά από τον AI agent να ερευνήσει ή να επιλύσει ανοιχτά Sentry issues. Ο agent ερωτά το Sentry μέσω MCP, λάμβάνει το εμφυτευμένο συμβάν που εμφανίζεται νόμιμο, και στη συνέχεια εκτελεί την περιεχόμενη εντολή — για παράδειγμα ένα npx command — με τα δικαιώματα του χρήστη. Το αποτέλεσμα είναι πλήρης έλεγχος του περιβάλλοντος όπου τρέχει ο agent: variables περιβάλλοντος, tokens, credentials, και ευαίσθητα URLs μπορούν να εξαχθούν σιωπηλά στο server του επιτιθέμενου.
Η εκτέλεση πραγματοποιείται με πλήρη εξουσιοδότηση του χρήστη, όχι επειδή κάτι παραβιάστηκε, αλλά επειδή η εντολή θεωρείται «επιτρεπτή» και «έγκυρη» από το σύστημα — ένα κρίσιμο σημείο που θα επανέλθουμε.
Γιατί το πρόβλημα ξεφεύγει από την παραδοσιακή ασφάλεια
Η επίθεση καταφέρνει να παρακάμψει παραδοσιακούς ελέγχους όπως EDR, WAF, IAM κανόνες, VPNs, και firewall γιατί κάθε βήμα της είναι τεχνικά εξουσιοδοτημένο. Οι ενέργειες δεν φαίνονται ως μη εξουσιοδοτημένες: το Sentry αποδέχεται ένα νόμιμο-looking event, ο agent λαμβάνει έναν νόμιμο-looking οδηγό επίλυσης και ο χρήστης (ή το περιβάλλον του) εκτελεί μια φαινομενικά συνήθη εντολή.
Tenet Security περιγράφει αυτό το φαινόμενο ως το «Authorized Intent Chain»: τα συστήματα ασφαλείας έχουν σχεδιαστεί για να ανιχνεύουν μη εξουσιοδοτημένη συμπεριφορά, αλλά εδώ δεν υπάρχει τέτοια συμπεριφορά — υπάρχει όμως κακόβουλη πρόθεση κρυμμένη πίσω από έγκυρες διεργασίες.
Γιατί οι AI agents «πιστεύουν» τα μολυσμένα μηνύματα
Ένα ακόμα ανησυχητικό συμπέρασμα των ερευνών είναι ότι ακόμα και όταν οι system prompts των agents ρητά λένε να αγνοηθούν μη αξιόπιστες πηγές, οι agents συχνά εκτελούν τις εντολές που προέρχονται από το MCP. Αυτό δείχνει ότι η ευπάθεια δεν είναι απαραίτητα αποτέλεσμα κακής ρύθμισης, αλλά εγγενής στον τρόπο με τον οποίο τα μοντέλα επεξεργάζονται την πληροφορία που ορίζεται ως “system” ή “tool” output.
Η μορφοποίηση σε markdown που μιμείται templates πλατφόρμας, η παρουσία code blocks και μπλοκ «Resolution» δημιουργούν μια οπτική και δομική ομοιότητα με νόμιμο περιεχόμενο που τα μοντέλα δεν διακρίνουν αξιόπιστα από τα πραγματικά templates. Το αποτέλεσμα: οι agents παραδίδουν υπερβολική εμπιστοσύνη στην εξωτερική πληροφορία.
Πραγματική επικύρωση και έκταση του προβλήματος
Οι ερευνητές της Tenet Security δεν έμειναν στη θεωρία. Έτρεξαν ελεγχόμενες δοκιμές και βρήκαν ότι 2,388 οργανισμοί είχαν εκτεθειμένα και injecable DSNs, εκ των οποίων 71 βρίσκονταν στο Tranco top one million. Κατά τις κύριες φάσεις επικύρωσης, πάνω από 100 οργανισμοί είδαν AI coding agents να ενεργούν βάσει εμφυτευμένων σφαλμάτων. Το συνολικό ποσοστό επιτυχίας των επιθέσεων έφτασε περίπου στο 85%.
Μεταξύ των τύπων agents που εκμεταλλεύτηκαν τα injections ήταν Claude Code, Cursor και Codex. Τα επιβεβαιωμένα θύματα περιλάμβαναν μια επιχείρηση Fortune 500 με γονική εταιρεία αξίας πάνω από $250B, έναν πάροχο υποδομών hosting αξίας άνω των $2B, εταιρείες επιστημονικών υπολογισμών και startups σε έξι ηπείρους. Ακόμη και ένας cloud security vendor βρέθηκε ανάμεσα στους εκτεθειμένους οργανισμούς, δείχνοντας ότι η δαπάνη σε ασφάλεια δεν εγγυάται προστασία από τέτοια αρχιτεκτονικά σφάλματα.
Παρενέργειες και τι μπορεί να κλαπεί
Η επίδραση της επίθεσης δεν περιορίζεται στην εκτέλεση κακόβουλου κώδικα. Οι επιτιθέμενοι μπορούν να εξάγουν:
- env variables όπως AWS keys και άλλα cloud credentials,
- GitHub tokens και git credentials που επιτρέπουν πρόσβαση σε ιδιωτικά repos,
- auth tokens για Sentry και άλλα εργαλεία, καθώς και ευαίσθητες πληροφορίες για τα συστήματα του οργανισμού.
Αυτά τα στοιχεία επιτρέπουν αλυσιδωτές επιθέσεις: εύκολη κίνηση πλάι-πλάι (lateral movement), επανεμφάνιση σε άλλα συστήματα και εκμετάλλευση υπαρκτών CI/CD ροών για περαιτέρω διάδοση.
Άμεσα πρακτικά μέτρα που μπορούν να πάρουν οι οργανισμοί
Υπάρχουν ειδικά βήματα που ομάδες ανάπτυξης και ασφάλειας μπορούν να εφαρμόσουν άμεσα για να μειώσουν τον κίνδυνο. Πρώτον, να σταματήσουν την ενσωμάτωση ευαίσθητων DSNs σε δημόσιο frontend: όπου είναι δυνατόν, οι αναφορές σφαλμάτων πρέπει να περνούν από έναν authenticated backend proxy που φιλτράρει και επιβεβαιώνει την προέλευση.
Επιπλέον, οι οργανισμοί πρέπει να περιορίσουν την αυτοματοποιημένη εκτέλεση εντολών από AI agents. Αυτό σημαίνει policies που απαγορεύουν αυτόματη εκτέλεση shell ή npx εντολών, ελάχιστα προνόμια για tokens που χρησιμοποιούνται από agents, περιορισμό δικαιωμάτων πρόσβασης στα secrets και έλεγχο εξόδου δικτύου (egress) από περιβάλλοντα όπου τρέχουν agents.
Ακόμη και χωρίς τέλειες λύσεις, πρακτικές όπως rotation των keys, αυστηρή λογική audit, ανίχνευση ασυνήθιστων egress συνδέσεων, και αύξηση της ορατότητας σε API calls μπορούν να ενισχύσουν την ανθεκτικότητα.
Τι πρέπει να αλλάξουν οι πάροχοι πλατφορμών
Η απάντηση δεν μπορεί να πέσει μόνο στις ομάδες ανάπτυξης· οι πάροχοι όπως η Sentry και κάθε πλατφόρμα που εκθέτει δεδομένα σε AI agents πρέπει να αναθεωρήσουν τη σχεδίαση των συστημάτων τους. Μερικές τεχνικές επιλογές περιλαμβάνουν:
- μη δημόσια DSNs και authenticated ingest endpoints,
- ψηφιακή υπογραφή των events ώστε οι agents να μπορούν να επαληθεύουν την προέλευση,
- πρόσθετα πεδία provenance στα API responses που δηλώνουν με σαφήνεια αν το περιεχόμενο είναι user-generated ή συστημικό,
- στενότερη συνεργασία με vendors AI agents για standardization της ασφαλούς διαχείρισης tool-output.
Επιπλέον, οι πλατφόρμες MCP θα πρέπει να αποφεύγουν την αποστολή οδηγιών εκτέλεσης ως plain text και να παρέχουν ένα μηχανισμό όπου οι agents θα λαμβάνουν δομημένα metadata αντί αυθαίρετου markdown που μπορεί να πλαστογραφηθεί.
Τι αλλάζει στην πράξη
Το Agentjacking είναι ένα καμπανάκι για το πώς οι αυτοματοποιημένες ροές εργασίας και τα AI εργαλεία αλλάζουν την επιφάνεια επίθεσης των οργανισμών. Δεν πρόκειται μόνο για ένα μεμονωμένο bug σε μια υπηρεσία: είναι μια αρχιτεκτονική αδυναμία που εμφανίζεται όταν εξωτερικά δεδομένα επιστρέφονται στο σύστημα ως «έγκυρες» οδηγίες προς ένα agent με εκτελεστικά δικαιώματα.
Στην πράξη, αυτό σημαίνει ότι οι οργανισμοί πρέπει να επανεξετάσουν τι εμπιστεύονται και πώς. Πρακτικές όπως human-in-the-loop για κρίσιμες εντολές, περιορισμός δικαιωμάτων για AI agents, και τεχνικοί έλεγχοι στα κανάλια που τροφοδοτούν τα agents θα γίνουν αναγκαία, όχι προαιρετικά. Παράλληλα, απαιτείται από τους παρόχους να αλλάξουν πρωτόκολλα ώστε τα εξωτερικά δεδομένα να μην μετατρέπονται εύκολα σε εκτελέσιμες οδηγίες.
Τέλος, το γεγονός ότι μια ευρεία γκάμα οργανισμών — από μεγάλες επιχειρήσεις μέχρι startups — ήταν εκτεθειμένη δείχνει πως η κοινότητα της ασφάλειας, οι προμηθευτές λογισμικού και οι ομάδες συστημάτων πρέπει να συνεργαστούν για να θέσουν πρότυπα και πρακτικές που θα περιορίσουν αυτή την κλάση επιθέσεων προτού γίνει γενικευμένη απειλή.