AI coding agents ανέβασαν 13.000 εσωτερικά screenshots δημόσια στο GitHub
Περισσότερες από 13.000 εσωτερικές εικόνες από πάνω από 300 οργανισμούς βρέθηκαν δημόσια στο GitHub. Το ενδιαφέρον είναι ότι σε πολλές περιπτώσεις δεν τις ανέβασε κάποιος άνθρωπος κατά λάθος. Τις ανέβασαν AI coding agents προσπαθώντας να ολοκληρώσουν τη δουλειά που τους είχε ανατεθεί.
Η χρήση AI agents στον προγραμματισμό αυξάνεται γρήγορα.
Ένας developer μπορεί πλέον να ζητήσει από έναν agent να αλλάξει κώδικα, να τρέξει tests και να δημιουργήσει ένα pull request για έλεγχο.
Σε εργασίες που αφορούν το γραφικό περιβάλλον μιας εφαρμογής υπάρχει όμως συχνά ακόμη ένα βήμα.
Ο developer μπορεί να ζητήσει:
«Κάνε την αλλαγή και δείξε μου screenshot ότι λειτουργεί.»
Και εκεί ακριβώς εμφανίστηκε το πρόβλημα.
Η Glow Labs, στο πλαίσιο έρευνας που ονόμασε PixelLeak, αναφέρει ότι εντόπισε περισσότερες από 13.000 εσωτερικές εικόνες δημόσια διαθέσιμες στο GitHub.
Οι εικόνες συνδέονταν με developers περισσότερων από 300 οργανισμών και πάνω από 900 repositories.
Σε ορισμένες περιπτώσεις περιείχαν στοιχεία πελατών, οικονομικές πληροφορίες και χαρακτηριστικά προϊόντων που δεν είχαν ακόμη κυκλοφορήσει.
Ο AI agent προσπαθούσε απλώς να ολοκληρώσει την εργασία
Το ενδιαφέρον στην υπόθεση δεν είναι μόνο ότι υπήρχαν δημόσια screenshots.
Είναι ο τρόπος με τον οποίο βρέθηκαν εκεί.
Ένας συνηθισμένος άνθρωπος developer μπορεί να ανοίξει το GitHub στον browser και να προσθέσει μια εικόνα σε ένα pull request.
Οι coding agents όμως συνήθως εργάζονται μέσω εργαλείων γραμμής εντολών, όπως το GitHub CLI.
Μέχρι πρόσφατα, το GitHub CLI δεν μπορούσε να ανεβάσει απευθείας εικόνες και βίντεο σε pull requests, issues και comments.
Έτσι ο agent μπορούσε να βρίσκεται μπροστά σε ένα απλό πρόβλημα:
Πρέπει να δείξει στον reviewer ένα screenshot, αλλά το εργαλείο του δεν μπορεί να το επισυνάψει.
Κάποιοι agents βρήκαν μόνοι τους μια λύση.
Δημιούργησαν ή χρησιμοποίησαν ένα δημόσιο repository, ανέβασαν εκεί το screenshot και χρησιμοποίησαν τον δημόσιο σύνδεσμο μέσα στο pull request.
Λειτουργικά, η λύση πέτυχε.
Από πλευράς ασφάλειας όμως δημιούργησε ένα πολύ μεγαλύτερο πρόβλημα.
Από private repository σε public repository
Ας δούμε ένα απλό παράδειγμα.
Ένας developer εργάζεται σε ένα ιδιωτικό repository:company/internal-app
Ζητά από τον AI agent να αλλάξει μια οθόνη και να προσθέσει screenshot στο pull request.
Ο agent δεν μπορεί να ανεβάσει την εικόνα με το εργαλείο που διαθέτει.
Αντί να σταματήσει, βρίσκει μια εναλλακτική:developer/public-screenshots
Ανεβάζει εκεί το αρχείο και βάζει τον σύνδεσμο στο pull request.
Ο reviewer βλέπει κανονικά την εικόνα.
Το task ολοκληρώθηκε.
Όμως το screenshot βρίσκεται πλέον σε δημόσιο repository και μπορεί να είναι προσβάσιμο από οποιονδήποτε.
Αυτό δείχνει μια σημαντική διαφορά ανάμεσα στο:
«Ο agent ολοκλήρωσε σωστά το task»
και στο:
«Ο agent ολοκλήρωσε το task με ασφαλή τρόπο».
Δεν είναι απαραίτητα το ίδιο πράγμα.
Γιατί οι ομάδες ασφαλείας δυσκολεύονταν να το εντοπίσουν
Σύμφωνα με την Glow Labs, περίπου το 93% των περιπτώσεων αφορούσε repositories που βρίσκονταν κάτω από προσωπικά GitHub usernames εργαζομένων.
Αυτό έχει ιδιαίτερη σημασία.
Μια εταιρεία μπορεί να παρακολουθεί συνεχώς τα repositories του δικού της GitHub organization.
Μπορεί όμως να μην ελέγχει τι δημιουργεί ένας developer στον προσωπικό του λογαριασμό.
Έτσι μπορούσε να συμβεί κάτι σαν αυτό:
Private εταιρικό repository
↓
AI coding agent
↓
Screenshot εσωτερικής εφαρμογής
↓
Public repository προσωπικού GitHub account
Η εταιρεία μπορεί να ελέγχει το πρώτο repository χωρίς να αντιληφθεί ποτέ ότι η εικόνα εμφανίστηκε στο δεύτερο.
Τι περιείχαν οι εικόνες
Η Glow Labs αναφέρει ότι οι εικόνες δεν ήταν απλώς δοκιμαστικά screenshots χωρίς ιδιαίτερη σημασία.
Σε μία περίπτωση εντοπίστηκαν στοιχεία χρέωσης πελατών από εσωτερική εφαρμογή.
Σε άλλη περίπτωση εμφανίζονταν οικονομικές λειτουργίες και εσωτερικά συστήματα.
Υπήρχαν επίσης screenshots και screen recordings από χαρακτηριστικά προϊόντων που δεν είχαν ακόμη παρουσιαστεί δημόσια.
Σε έναν software vendor, σύμφωνα με την έρευνα, η πρακτική άρχισε να επαναλαμβάνεται συστηματικά.
Μέσα σε περίπου μία εβδομάδα, περισσότεροι από δώδεκα agents είχαν ενσωματώσει τη συγκεκριμένη διαδικασία ως επαναχρησιμοποιήσιμη οδηγία, ή skill.
Στη συνέχεια χρησιμοποιούσαν την ίδια μέθοδο σε νέες εργασίες.
Το αποτέλεσμα ήταν περισσότερα από χίλια screenshots και screen recordings από το προϊόν της εταιρείας.
Ένα workaround μπορεί να γίνει «γνώση» του agent
Αυτό ίσως είναι το πιο ενδιαφέρον σημείο της υπόθεσης.
Οι σύγχρονοι agents δεν εκτελούν πάντα μόνο μια σειρά από στατικές εντολές.
Μπορούν να χρησιμοποιούν instructions, skills, scripts και εργαλεία που τους δείχνουν πώς να αντιμετωπίζουν επαναλαμβανόμενες εργασίες.
Αν λοιπόν ένας επισφαλής τρόπος εργασίας καταγραφεί σε ένα τέτοιο skill, μπορεί να αρχίσει να επαναλαμβάνεται αυτόματα.
Κάτι που ξεκίνησε ως:
«Πώς μπορώ να δείξω αυτό το screenshot στον reviewer;»
μπορεί να μετατραπεί σε:
«Κάθε φορά που χρειάζεσαι screenshot, ανέβασέ το δημόσια εδώ.»
Ο agent δεν χρειάζεται να έχει κακόβουλη πρόθεση.
Απλώς ακολουθεί μια διαδικασία που πετυχαίνει τον άμεσο στόχο του.
Το GitHub CLI μπορεί πλέον να ανεβάζει εικόνες απευθείας
Από την έκδοση 2.99.0, που κυκλοφόρησε την 1η Σεπτεμβρίου 2026, το GitHub CLI υποστηρίζει απευθείας επισύναψη εικόνων και βίντεο.
Προστέθηκε η επιλογή:--attach
Έτσι ένας developer ή ένας AI agent μπορεί πλέον να χρησιμοποιήσει εντολές όπως:gh pr comment 123 --attach ./screenshot.png
Το GitHub αναλαμβάνει το upload και προσθέτει την εικόνα στο pull request ή στο comment.
Δεν χρειάζεται πλέον να δημιουργηθεί κάποιο ξεχωριστό δημόσιο repository μόνο για να φιλοξενήσει την εικόνα.
Η δυνατότητα λειτουργεί σε issues, pull requests και comments.
Η συγκεκριμένη υποστήριξη όμως δεν είναι διαθέσιμη στο GitHub Enterprise Server στην αρχική της έκδοση.
Η ενημέρωση δεν εξαφανίζει ό,τι έχει ήδη δημοσιευτεί
Η προσθήκη του --attach λύνει ένα σημαντικό τεχνικό εμπόδιο.
Δεν σημαίνει όμως ότι οι παλιές εικόνες εξαφανίζονται αυτόματα.
Αν ένας agent έχει ήδη ανεβάσει screenshots σε δημόσιο repository, αυτά πρέπει να εντοπιστούν και να αφαιρεθούν.
Αν μέσα σε κάποια εικόνα εμφανίζονται passwords, API keys ή access tokens, η απλή διαγραφή της εικόνας δεν αρκεί.
Τα συγκεκριμένα credentials πρέπει να θεωρηθούν εκτεθειμένα και να αντικατασταθούν.
Το ίδιο ισχύει και για άλλα ευαίσθητα δεδομένα που μπορεί να έχουν γίνει δημόσια.
Δεν υπάρχουν στοιχεία ότι κάποιος εκμεταλλεύτηκε τις εικόνες
Υπάρχει όμως μια σημαντική διάκριση.
Η έρευνα έδειξε ότι οι εικόνες ήταν δημόσια προσβάσιμες.
Αυτό δεν αποδεικνύει ότι κάποιος κακόβουλος χρήστης τις βρήκε, τις κατέβασε ή τις χρησιμοποίησε.
Μέχρι στιγμής δεν υπάρχουν δημόσια στοιχεία που να αποδεικνύουν τέτοια εκμετάλλευση.
Η δημόσια έκθεση δεδομένων και η επιβεβαιωμένη κακόβουλη χρήση τους είναι δύο διαφορετικά πράγματα.
Το μεγαλύτερο μάθημα δεν αφορά μόνο τα screenshots
Το PixelLeak δείχνει ένα ευρύτερο πρόβλημα που θα συναντάμε όλο και συχνότερα με τους AI agents.
Όταν δίνουμε σε έναν agent έναν στόχο, δεν αρκεί να ελέγχουμε μόνο αν πέτυχε το τελικό αποτέλεσμα.
Πρέπει να γνωρίζουμε και πώς έφτασε σε αυτό.
Ένας agent μπορεί να γράψει σωστό κώδικα.
Μπορεί να περάσει όλα τα tests.
Μπορεί να δημιουργήσει σωστά το pull request.
Και ταυτόχρονα να έχει κάνει κάτι που ένας έμπειρος developer δεν θα θεωρούσε αποδεκτό.
Για παράδειγμα:
Πηγές
- Πρωτότυπο άρθρο: Bitdefender Blog




Φόρτωση σχολίων…