Η αρχιτεκτονική της διαρροής
Το πρόβλημα πηγάζει από τον τρόπο με τον οποίο το Claude Code διαχειρίζεται την αυτοματοποίηση των εντολών. Όταν ένας χρήστης επιλέγει «Don't Ask Again» για μια εντολή που περιλαμβάνει ευαίσθητα δεδομένα (π.χ. PGPASSWORD=...), το εργαλείο αποθηκεύει ολόκληρη τη συμβολοσειρά (string) στο αρχείο .claude/settings.local.json. Παρόλο που το εργαλείο προσπαθεί να προσθέσει το αρχείο στο global .gitignore, αυτό δεν αποτρέπει τη διαρροή σε περιπτώσεις όπου ο φάκελος μετατρέπεται εκ των υστέρων σε αποθετήριο ή όταν ο χρήστης κάνει commit το αρχείο χειροκίνητα.
Γιατί τα εργαλεία σάρωσης αποτυγχάνουν
Τα καθιερωμένα εργαλεία όπως το gitleaks και το TruffleHog βασίζονται κυρίως σε αναγνώριση προτύπων (pattern matching) για γνωστά format κλειδιών (π.χ. AWS keys). Ωστόσο, οι κωδικοί που πληκτρολογούνται απευθείας σε εντολές (π.χ. μετά από sshpass -p ή mysql -p) δεν ακολουθούν σταθερή δομή, με αποτέλεσμα να περνούν απαρατήρητοι από τους αυτοματοποιημένους ελέγχους ασφαλείας.
Στρατηγική αντιμετώπισης και θωράκισης
Για την προστασία των υποδομών, οι ομάδες ασφαλείας πρέπει να αντιμετωπίζουν τους φακέλους ρυθμίσεων των AI agents (όπως .claude/, .cursor/, .specstory/) με την ίδια αυστηρότητα που αντιμετωπίζουν τα αρχεία .env.
Οι προγραμματιστές οφείλουν:
- Να αφαιρέσουν άμεσα τα αρχεία ρυθμίσεων από το git (
git rm --cached). - Να περιστρέψουν (rotate) όλα τα διαπιστευτήρια που έχουν καταγραφεί σε αυτά τα αρχεία.
- Να χρησιμοποιούν μεταβλητές περιβάλλοντος ($VAR) αντί για hardcoded τιμές στις εντολές που εγκρίνουν για τους agents.