ΑρχικήΛογισμικάΣφάλμα με exploit χτύπησε την PHP δημιουργώντας αναστάτωση

Σφάλμα με exploit χτύπησε την PHP δημιουργώντας αναστάτωση

Ερευνητές ασφαλείας προειδοποίησαν για ένα κρίσιμο κενό ασφαλείας στη γλώσσα προγραμματισμού PHP, το οποίο μπορεί να αξιοποιηθεί πολύ εύκολα για την εκτέλεση κακόβουλου κώδικα σε συσκευές Windows. Οι ερευνητές παροτρύνουν όσους επηρεάστηκαν να λάβουν μέτρα πριν ξεκινήσει το Σαββατοκύριακο.

Μέσα σε 24 ώρες από τη δημοσίευση της ευπάθειας και της συνοδευτικής ενημέρωσης κώδικα, ερευνητές από τον μη κερδοσκοπικό οργανισμό ασφαλείας Shadowserver ανέφεραν σαρώσεις στο διαδίκτυο σχεδιασμένες να εντοπίσουν διακομιστές που είναι ευάλλωτοι σε επιθέσεις. Αυτό σε συνδυασμό (1) με την ευκολία εκμετάλλευσης, (2) τη διαθεσιμότητα κώδικα επίθεσης ως απόδειξη, (3) τη σοβαρότητα της απομακρυσμένης εκτέλεσης κώδικα σε ευάλωτα μηχανήματα και (4) την ευρεία χρήση της πλατφόρμας XAMPP που είναι ευάλλωτη από προεπιλογή, έχει ωθήσει τους επαγγελματίες ασφαλείας να προτρέψουν τους διαχειριστές να ελέγξουν εάν οι διακομιστές PHP τους επηρεάζονται πριν ξεκινήσουν το Σαββατοκύριακο.

Όταν το “Best Fit” δεν είναι αρκετό

“Ένα πολύ δυσάρεστο κενό ασφαλείας με πολύ απλή εκμετάλλευση – τέλειο για ένα απόγευμα της Παρασκευής,” έγραψαν ερευνητές της εταιρείας ασφαλείας WatchTowr.

Το κενό ασφαλείας με την ονομασία CVE-2024-4577, προέρχεται από σφάλματα στον τρόπο που το PHP μετατρέπει χαρακτήρες unicode σε ASCII. Μια ενσωματωμένη λειτουργία των Windows γνωστή ως “Καλύτερη Εναρμόνιση” (Best Fit) επιτρέπει στους επιτιθέμενους να χρησιμοποιήσουν μια τεχνική γνωστή ως εισαγωγή ορισμάτων (argument injection) για να περάσουν την είσοδο που παρέχεται από τον χρήστη σε εντολές που εκτελούνται από μια εφαρμογή, σε αυτήν την περίπτωση, την PHP. Οι εκμεταλλεύσεις επιτρέπουν στους επιτιθέμενους να παρακάμψουν το CVE-2012-1823, ένα κρίσιμο κενό ασφαλείας εκτέλεσης κώδικα που διορθώθηκε στο PHP το 2012.

“Κατά την υλοποίηση του PHP, η ομάδα δεν παρατήρησε τη λειτουργία ‘Καλύτερης Εναρμόνισης’ (Best Fit) της μετατροπής κωδικοποίησης μέσα στο λειτουργικό σύστημα Windows,” έγραψαν ερευνητές της Devcore, της εταιρείας ασφαλείας που ανακάλυψε το CVE-2024-4577. “Αυτή η παράβλεψη επιτρέπει σε μη εξουσιοδοτημένους χρήστες (εισβολείς) να παρακάμψουν την προηγούμενη προστασία του CVE-2012-1823 με συγκεκριμένες αλληλουχίες χαρακτήρων. Αυθαίρετος κώδικας μπορεί να εκτελεστεί σε απομακρυσμένους διακομιστές PHP μέσω της επίθεσης εισαγωγή ορισμάτων (argument injection)”.

Το CVE-2024-4577 επηρεάζει την PHP μόνο όταν εκτελείται σε μια λειτουργία γνωστή ως CGI, στην οποία ένας διακομιστής ιστού αναλύει αιτήματα HTTP και τα διαβιβάζει σε ένα script PHP για επεξεργασία. Ακόμα και όταν το PHP δεν έχει οριστεί σε λειτουργία CGI, ωστόσο, το κενό ασφαλείας μπορεί να εξακολουθεί να αξιοποιείται όταν εκτελέσιμα αρχεία PHP όπως το php.exe και το php-cgi.exe βρίσκονται σε καταλόγους στους οποίους είναι προσβάσιμος ο διακομιστής Ιστού. Αυτή η ρύθμιση παραμέτρων έχει οριστεί από προεπιλογή στο XAMPP για Windows, καθιστώντας την πλατφόρμα ευάλωτη εκτός εάν έχει τροποποιηθεί.

Ένα παράδειγμα, σημείωσε η WatchTowr, εμφανίζεται όταν τα ερωτήματα αναλύονται και αποστέλλονται μέσω μιας γραμμής εντολών. Το αποτέλεσμα: ένα αβλαβές αίτημα όπως http://host/cgi.php?foo=barθα μπορούσε να μετατραπεί σε php.exe cgi.php foo=bar, μια εντολή που θα εκτελούνταν από την κύρια μηχανή PHP.

Δεν υπάρχει διαφυγή

Όπως και πολλές άλλες γλώσσες, το PHP μετατρέπει ορισμένους τύπους δεδομένων που εισάγει ο χρήστης για να αποτρέψει την ερμηνεία τους ως εντολή προς εκτέλεση. Αυτή είναι μια διαδικασία γνωστή ως “escaping” (απόδραση). Για παράδειγμα, στην HTML, οι χαρακτήρες < και > συχνά αποδρούν μετατρέποντας τους στις αντίστοιχες τιμές δεκαεξαδικού κώδικα unicode < και >, για να αποτραπεί η ερμηνεία τους ως ετικέτες HTML από ένα πρόγραμμα περιήγησης.

Οι ερευνητές της WatchTowr εξηγούν πως η λειτουργία “Καλύτερη Εναρμόνιση” (Best Fit) δεν καταφέρνει να αποφύγει χαρακτήρες όπως μια παύλα με τιμή unicode 0xAD και αντίθετα τη μετατρέπει σε μια παύλα 0x2D, έναν χαρακτήρα που είναι σημαντικός σε πολλές συντακτικές δομές κώδικα.

Το κενό ασφαλείας ανακαλύφθηκε από τον ερευνητή της Devcore, Orange Tsai, ο οποίος δήλωσε ότι: «Το σφάλμα είναι απίστευτα απλό, αλλά αυτό είναι επίσης που το κάνει ενδιαφέρον».

Η αναφορά της Devcore αναφέρει ότι οι ερευνητές έχουν επιβεβαιώσει πως το XAMPP είναι ευάλλωτο όταν τα Windows είναι διαμορφωμένα να χρησιμοποιούν τις τοπικές ρυθμίσεις για Παραδοσιακά Κινεζικά, Απλοποιημένα Κινεζικά ή Ιαπωνικά. Στα Windows, μια τοπική ρύθμιση είναι ένα σύνολο πληροφοριών προτίμησης χρήστη που σχετίζεται με τη γλώσσα, το περιβάλλον ή/και τις πολιτιστικές συμβάσεις του χρήστη.

Οι ερευνητές δεν έχουν δοκιμάσει άλλες τοπικές ρυθμίσεις και έχουν προτρέψει τους χρήστες που τις χρησιμοποιούν να πραγματοποιήσουν μια ολοκληρωμένη αξιολόγηση πόρων για να δοκιμάσουν τα σενάρια χρήσης τους.

Το CVE-2024-4577 επηρεάζει όλες τις εκδόσεις του PHP που εκτελούνται σε μια συσκευή Windows. Αυτό περιλαμβάνει τους κλάδους έκδοσης 8.3 πριν από την 8.3.8, την 8.2 πριν από την 8.2.20 και 8.1 πριν από την 8.1.29.

Οι κλάδοι εκδόσεων 8.0, 7 και 5 είναι επίσης ευάλλωτοι, αλλά επειδή δεν υποστηρίζονται πλέον, οι διαχειριστές θα πρέπει να ακολουθήσουν συμβουλές περιορισμού της επίπτωσης, καθώς δεν υπάρχουν διαθέσιμα patches. Μια επιλογή είναι να εφαρμόσετε κανόνες επαναγραφής (rewrite rules) όπως:

RewriteEngine On
RewriteCond %{QUERY_STRING} ^%ad [NC]
RewriteRule .? - [F,L]

Οι ερευνητές προειδοποιούν ότι αυτοί οι κανόνες έχουν δοκιμαστεί μόνο για τις τρεις περιοχές που έχουν επιβεβαιώσει ως ευάλωτες.

Το XAMPP για Windows δεν είχε κυκλοφορήσει ακόμα κάποια επίλυση τη στιγμή που δημοσιεύτηκε αυτή η ανάρτηση. Για διαχειριστές που δεν χρειάζονται το PHP CGI, μπορούν να το απενεργοποιήσουν χρησιμοποιώντας τη διαμόρφωση του διακομιστή Apache HTTP Server:

C:/xampp/apache/conf/extra/httpd-xampp.conf

Εντοπίζοντας τις αντίστοιχες γραμμές:

ScriptAlias /php-cgi/ "C:/xampp/php/"

Και να τις σχολιάσετε:

ScriptAlias /php-cgi/ "C:/xampp/php/"
Στέλιος Θεοδωρίδης
Στέλιος Θεοδωρίδης
Ο ήρωας μου είναι ο γάτος μου ο Τσάρλι και ακροάζομαι μόνο Psychedelic Trance
RELATED ARTICLES

Πρόσφατα άρθρα

Tηλέφωνα έκτακτης ανάγκης

Δίωξη Ηλεκτρονικού Εγκλήματος: 11188
Ελληνική Αστυνομία: 100
Χαμόγελο του Παιδιού: 210 3306140
Πυροσβεστική Υπηρεσία: 199
ΕΚΑΒ 166