Όταν ο developer δίνει «ελεύθερο πεδίο» σε έναν AI agent, το αποτέλεσμα συχνά είναι ανασφαλές
Εφαρμογές που παράγονται με vibe coding — δηλαδή όταν ο developer δίνει μεγάλη αυτονομία σε έναν AI agent να γράψει τον κώδικα — είναι πιθανό να είναι ανασφαλείς, με δημοφιλείς agents όπως το Claude Code να περιλαμβάνουν ακόμη και βασικά λογικά σφάλματα.
Αυτό υποστηρίζει ο Ori David, ερευνητής στη startup εταιρεία ασφάλειας Tenzai.
Πως έγινε η έρευνα: 5 coding agents, ίδια prompts, παρόμοια κενά
Ο David δημιούργησε τρεις διαφορετικές εφαρμογές, χρησιμοποιώντας τα ίδια λεπτομερή prompts σε πέντε coding agents:
- Cursor
- Claude Code
- OpenAI Codex
- Replit
- Devin
…με τα προεπιλεγμένα LLMs (large language models) του καθενός.
Κύριο εύρημα
Ο ερευνητής εντόπισε παρόμοιο αριθμό ευπαθειών σε κάθε υλοποίηση, όμως μόνο τα Claude, Devin και Codex παρήγαγαν σφάλματα που αξιολογήθηκαν ως critical.
Παράδειγμα: «Έλεγχος δικαιωμάτων» που αφήνει τους ανώνυμους να διαγράφουν προϊόντα
Σε ένα χαρακτηριστικό παράδειγμα που παραθέτει ο David, το Claude δημιούργησε το παρακάτω PHP:
PHP// If authenticated, enforce ownership check
if ($user) {
// Admin can delete any product, seller can only delete own
if ($user['role'] !== 'admin' && $product['seller_id'] != $user['id']) {
sendJsonResponse(['error' => 'Failed to delete', 'code' => 'FORBIDDEN'], 403);
}
}
// Delete the product
$stmt = $db->prepare("DELETE FROM products WHERE id = ?");
$stmt->execute([$id]);Το συγκεκριμένο snippet για ένα ecommerce site ελέγχει αν ο χρήστης είναι logged in και, αν ναι, αν έχει άδεια να διαγράψει προϊόντα.
Όμως, αν ο χρήστης δεν είναι logged in, δεν γίνεται κανένας έλεγχος και η διαγραφή προχωρά κανονικά.
Γιατί είναι επικίνδυνο
Ένα τέτοιο λάθος μπορεί να περάσει απαρατήρητο, ειδικά από developer που δεν γνωρίζει καλά τον κώδικα, επειδή η εφαρμογή μπορεί να «φαίνεται» ότι λειτουργεί σωστά μέχρι κάποιος να την κακομεταχειριστεί (abuse).
«Θυμίζει» παλαιότερο περιστατικό: non-technical χρήστης, bypass συνδρομών, λουκέτο
Το περιστατικό θυμίζει έναν χρήστη που, στα πρώτα στάδια του vibe coding, καυχήθηκε στο X ότι έφτιαξε software service παρότι ήταν «not technical», και αργότερα παραπονέθηκε ότι «οι άνθρωποι παρακάμπτουν τη συνδρομή», για να κλείσει τελικά την εφαρμογή.
Που τα πήγαν καλά οι agents και πού απέτυχαν
Σύμφωνα με την έρευνα, οι agents είχαν σχετικά «σωστή συμπεριφορά» απέναντι σε γνωστές κλάσεις bugs όπως:
- SQL injection
- Cross-site scripting (XSS)
Όμως είχαν κακή απόδοση σε:
Authorization logic (λογική εξουσιοδότησης)
- Λάθη τύπου «αν δεν είσαι logged in, περνάς» ή «δεν ελέγχεται σωστά ο ρόλος/ιδιοκτησία».
Business logic (λογική επιχειρησιακών κανόνων)
Παράδειγμα: οι περισσότεροι agents επέτρεπαν:
- παραγγελία αρνητικού αριθμού αντικειμένων στο ecommerce app
- αρνητικές τιμές όταν οι sellers δημιουργούσαν προϊόντα
Άλλα συχνά κενά ασφαλείας που βρέθηκαν
Μεταξύ άλλων, εντοπίστηκαν:
- ευπάθειες SSRF (Server-Side Request Forgery)
- απουσία βέλτιστων πρακτικών όπως security headers (π.χ. για μείωση επιθέσεων σε browser επίπεδο)
Γιατί το πρόβλημα δεν είναι «λάθος του agent», αλλά του workflow
Οι coding agents δεν εγγυώνται ότι ο παραγόμενος κώδικας θα είναι ασφαλής — άρα το γεγονός ότι εφαρμογές από vibe coding έχουν ευπάθειες δεν είναι έκπληξη και δεν αποτελεί απαραίτητα «σφάλμα» του εργαλείου.
Το ζήτημα είναι ότι το vibe coding επιτρέπει ανάπτυξη εφαρμογών από:
- ανειδίκευτους developers, ή
- άτομα με δεξιότητες στα AI prompts αλλά όχι στην προγραμματιστική επάρκεια
Αν τέτοιες «απλές» εφαρμογές περιέχουν σημαντικά κενά, είναι πιθανό ότι πιο σύνθετα projects θα είναι ακόμη λιγότερο ασφαλή.
Η πρόταση της Tenzai: AI security agents για εντοπισμό ευπαθειών
Η Tenzai (startup σε closed beta) προτείνει τα AI security agents της ως λύση:
«Ενώ οι AI agents μπορεί να εισάγουν ευπάθειες – διαπρέπουν επίσης στο να τις εντοπίζουν», δήλωσε ο David.
Ωστόσο, το κατά πόσο προβλήματα που προκαλούνται από AI μπορούν να επιλυθούν επαρκώς από AI παραμένει ανοιχτό ερώτημα.
Τι εξακολουθεί να πιάνει πολλά λάθη: ανθρώπινο code review (με κατανόηση του κώδικα)
Οι άνθρωποι κάνουν επίσης λάθη, όμως είναι προφανές ότι ένα προσεκτικό ανθρώπινο code review από developers που κατανοούν πλήρως τον κώδικα μπορεί να εντοπίσει πολλές κατηγορίες σφαλμάτων.
Παρόλα αυτά, οι σφιχτές προθεσμίες και η πίεση για γρήγορη παράδοση νέων features συχνά οδηγούν σε παραμέληση των best practices.
Η προσθήκη vibe coding σε αυτό το περιβάλλον μοιάζει με επικίνδυνο συνδυασμό.
