Mastodon
Connect with us

Hacking

Πάνω από 600 εφαρμογές Laravel εκτεθειμένες λόγω διαρροής APP_KEYs στο GitHub

Published

on

Πάνω από 600 εφαρμογές Laravel εκτεθειμένες λόγω διαρροής APP_KEYs στο GitHub

Η απειλή της διαρροής APP_KEY

Ερευνητές κυβερνοασφάλειας ανακάλυψαν ένα σοβαρό ζήτημα ασφαλείας που επιτρέπει τη χρήση διαρροών των APP_KEYs του Laravel για απομακρυσμένη εκτέλεση κώδικα σε εκατοντάδες εφαρμογές. Το APP_KEY του Laravel είναι κρίσιμο για την κρυπτογράφηση ευαίσθητων δεδομένων και συχνά διαρρέει δημόσια, όπως στο GitHub. Εάν οι επιτιθέμενοι αποκτήσουν πρόσβαση σε αυτό το κλειδί, μπορούν να εκμεταλλευτούν ένα σφάλμα αποσειριοποίησης για να εκτελέσουν αυθαίρετο κώδικα στον διακομιστή, θέτοντας σε κίνδυνο δεδομένα και υποδομές.

Η έκταση της απειλής

Η εταιρεία GitGuardian, σε συνεργασία με τη Synacktiv, κατάφερε να εξάγει πάνω από 260.000 APP_KEYs από το GitHub από το 2018 έως τις 30 Μαΐου 2025, εντοπίζοντας πάνω από 600 ευάλωτες εφαρμογές Laravel στη διαδικασία. Παρατηρήθηκαν πάνω από 10.000 μοναδικά APP_KEYs, από τα οποία 400 επικυρώθηκαν ως λειτουργικά.

Η σημασία του APP_KEY

Το APP_KEY είναι ένα τυχαίο κλειδί κρυπτογράφησης 32 byte που δημιουργείται κατά την εγκατάσταση του Laravel. Αποθηκεύεται στο αρχείο .env της εφαρμογής και χρησιμοποιείται για την κρυπτογράφηση και αποκρυπτογράφηση δεδομένων, τη δημιουργία ασφαλών, τυχαίων συμβολοσειρών, την υπογραφή και επαλήθευση δεδομένων, καθώς και τη δημιουργία μοναδικών διακριτικών πιστοποίησης, αποτελώντας κρίσιμο στοιχείο ασφαλείας.

Το πρόβλημα της αποσειριοποίησης

Η GitGuardian σημείωσε ότι η τρέχουσα υλοποίηση της λειτουργίας decrypt() του Laravel εισάγει ένα ζήτημα ασφαλείας, καθώς αποσειριοποιεί αυτόματα τα αποκρυπτογραφημένα δεδομένα, ανοίγοντας την πόρτα για πιθανή απομακρυσμένη εκτέλεση κώδικα.

Εκμετάλλευση της ευπάθειας

Συγκεκριμένα, στις εφαρμογές Laravel, εάν οι επιτιθέμενοι αποκτήσουν το APP_KEY και μπορέσουν να καλέσουν τη λειτουργία decrypt() με κακόβουλο φορτίο, μπορούν να επιτύχουν απομακρυσμένη εκτέλεση κώδικα στον διακομιστή ιστού του Laravel. Αυτή η ευπάθεια τεκμηριώθηκε πρώτα με το CVE-2018-15133, που επηρέασε τις εκδόσεις του Laravel πριν από την 5.6.30. Ωστόσο, αυτός ο τρόπος επίθεσης παραμένει σε νεότερες εκδόσεις του Laravel όταν οι προγραμματιστές ρυθμίζουν ρητά την αποσειριοποίηση συνεδριών σε cookies χρησιμοποιώντας τη ρύθμιση SESSION_DRIVER=cookie, όπως αποδεικνύεται από το CVE-2024-55556.

Η διαρροή και οι συνέπειές της

Είναι αξιοσημείωτο ότι το CVE-2018-15133 έχει εκμεταλλευτεί από κακόβουλους παράγοντες που συνδέονται με το κακόβουλο λογισμικό AndroxGh0st, αφού σάρωσαν το διαδίκτυο για εφαρμογές Laravel με εσφαλμένη διαμόρφωση αρχείων .env. Περαιτέρω ανάλυση έδειξε ότι το 63% των διαρροών APP_KEY προέρχεται από αρχεία .env (ή τις παραλλαγές τους) που συνήθως περιέχουν άλλα πολύτιμα μυστικά, όπως διακριτικά αποθήκευσης στο cloud, διαπιστευτήρια βάσεων δεδομένων και μυστικά που σχετίζονται με πλατφόρμες ηλεκτρονικού εμπορίου, εργαλεία υποστήριξης πελατών και υπηρεσίες τεχνητής νοημοσύνης (AI).

Η ανάγκη για προληπτικά μέτρα

Περίπου 28.000 ζεύγη APP_KEY και APP_URL έχουν εκτεθεί ταυτόχρονα στο GitHub. Από αυτά, περίπου το 10% έχει βρεθεί ότι είναι έγκυρα, καθιστώντας 120 εφαρμογές ευάλωτες σε επιθέσεις απομακρυσμένης εκτέλεσης κώδικα. Δεδομένου ότι η διαμόρφωση APP_URL καθορίζει τη βασική διεύθυνση URL της εφαρμογής, η έκθεση τόσο του APP_URL όσο και του APP_KEY δημιουργεί έναν ισχυρό τρόπο επίθεσης που οι κακόβουλοι παράγοντες μπορούν να αξιοποιήσουν για να αποκτήσουν άμεση πρόσβαση στην εφαρμογή, να ανακτήσουν cookies συνεδρίας και να προσπαθήσουν να τα αποκρυπτογραφήσουν χρησιμοποιώντας το εκτεθειμένο κλειδί.

Προτάσεις για ασφαλή διαχείριση

Η απλή διαγραφή μυστικών από αποθετήρια δεν είναι αρκετή, ειδικά όταν έχουν ήδη κλωνοποιηθεί ή αποθηκευτεί σε cache από εργαλεία τρίτων. Αυτό που χρειάζονται οι προγραμματιστές είναι μια σαφής πορεία περιστροφής, υποστηριζόμενη από παρακολούθηση που επισημαίνει κάθε μελλοντική επανεμφάνιση ευαίσθητων συμβολοσειρών σε καταγραφές CI, κατασκευές εικόνων και επίπεδα κοντέινερ.

Οι προγραμματιστές δεν πρέπει ποτέ να διαγράφουν απλώς εκτεθειμένα APP_KEYs από αποθετήρια χωρίς σωστή περιστροφή. Η σωστή αντίδραση περιλαμβάνει: άμεση περιστροφή του παραβιασμένου APP_KEY, ενημέρωση όλων των συστημάτων παραγωγής με το νέο κλειδί και εφαρμογή συνεχούς παρακολούθησης μυστικών για την αποτροπή μελλοντικών διαρροών.

Ευρύτερες επιπτώσεις και προτάσεις

Αυτού του είδους τα περιστατικά ευθυγραμμίζονται επίσης με μια ευρύτερη κατηγορία ευπαθειών αποσειριοποίησης PHP, όπου εργαλεία όπως το phpggc βοηθούν τους επιτιθέμενους να δημιουργήσουν αλυσίδες gadgets που προκαλούν ανεπιθύμητες συμπεριφορές κατά τη φόρτωση αντικειμένων. Όταν χρησιμοποιούνται σε περιβάλλοντα Laravel με διαρροές κλειδιών, τέτοια gadgets μπορούν να επιτύχουν πλήρη απομακρυσμένη εκτέλεση κώδικα χωρίς να χρειάζεται να παραβιάσουν τη λογική της εφαρμογής ή τις διαδρομές.

Η αποκάλυψη αυτή έρχεται μετά από την ανακοίνωση της GitGuardian ότι ανακάλυψε “καταπληκτικά 100.000 έγκυρα μυστικά” σε εικόνες Docker που είναι δημόσια προσβάσιμες στο DockerHub. Αυτό περιλαμβάνει μυστικά που σχετίζονται με το Amazon Web Services (AWS), το Google Cloud και διακριτικά του GitHub.

Επεκτάσεις της έρευνας

Μια νέα ανάλυση της Binarly σε πάνω από 80.000 μοναδικές εικόνες Docker που καλύπτουν 54 οργανισμούς και 3.539 αποθετήρια αποκάλυψε επίσης 644 μοναδ

Advertisement