Εν ολίγοις: Το CERT-EU συμβουλεύει, σύμφωνα με αναφορές, να καταγραφούν οι εγκαταστάσεις PHP, να γίνει άμεσα patch και να απομονωθούν οι δημόσια προσβάσιμες εφαρμογές εάν δεν μπορούν να διορθωθούν έγκαιρα. Το CERT-Bund και η BSI συνιστούν στην προειδοποίησή τους την άμεση ενημέρωση και, αν αυτή δεν είναι δυνατή, την προσωρινή απομάκρυνση των επηρεαζόμενων διακομιστών ιστού από το δίκτυο. Οι συστάσεις συμπίπτουν στον πυρήνα: πρώτα η ενημέρωση, η απομόνωση ως λύση ανάγκης, τα προσωρινά μέτρα μόνο ως συμπλήρωμα.
Ποιος προειδοποιεί, και για ποιον;
Στο PHP2Shell αντέδρασαν αρκετοί επίσημοι φορείς μέσα σε λίγες ώρες. Για τις επιχειρήσεις στη Γερμανία η BSI με την ομάδα απόκρισης έκτακτων περιστατικών υπολογιστών CERT-Bund (το CERT της γερμανικής κυβέρνησης) είναι η πρώτη διεύθυνση. Το CERT-EU είναι η υπηρεσία κυβερνοασφάλειας των θεσμικών οργάνων της ΕΕ· οι υποδείξεις του απευθύνονται αρχικά σε αυτά, διαβάζονται όμως σε όλη την Ευρώπη. Σύμφωνα με το BleepingComputer προειδοποίησε και το βρετανικό National Cyber Security Centre. Από τον ιδιωτικό τομέα ανταποκρίθηκαν μεταξύ άλλων οι Huntress και Cloudflare.
Για εσάς ως διαχειριστή η προέλευση είναι λιγότερο σημαντική από τη σύμπτωση. Όταν αρκετοί ανεξάρτητοι φορείς συμβουλεύουν το ίδιο, αυτό είναι ισχυρό σήμα.
CERT-Bund, CERT-EU και άλλοι: οι προειδοποιήσεις για την PHP σε σύγκριση
| Φορέας | Βασική σύσταση | Ιδιαιτερότητα |
|---|---|---|
| BSI / CERT-Bund | άμεση ενημέρωση, αλλιώς προσωρινή απομάκρυνση των διακομιστών ιστού από το δίκτυο | επίπεδο προειδοποίησης 3 / πορτοκαλί |
| CERT-EU | καταγραφή εγκαταστάσεων PHP, άμεσο patch, αλλιώς απομόνωση δημόσιων εφαρμογών | θεωρούσε, σύμφωνα με αναφορές, πιθανό να επηρεάζονται εκδόσεις από την PHP 5 και μετά |
| UK NCSC | άμεση ενημέρωση ή απομάκρυνση των επηρεαζόμενων συστημάτων από το δίκτυο μέχρι το patch | σύμφωνα με το BleepingComputer |
| php.net | ενημέρωση σε 8.5.12, 8.4.27, 8.3.36 ή 8.2.35, προσωρινά μέτρα μόνο ως μερική προστασία | πρωτογενής πηγή για εκδόσεις και ρυθμίσεις |
Κανένας από τους φορείς δεν συνιστά να βασιστείτε αποκλειστικά σε Web Application Firewall ή σε ρυθμίσεις του php.ini. Όλοι αναφέρουν την ενημέρωση ως την πραγματική λύση. Τι συμβουλεύει επιπλέον αναλυτικά η BSI, αναφέρεται στη σελίδα Τι συστήνει η BSI για το PHP2Shell.
Το ζήτημα των εκδόσεων: τι σημαίνει «από την PHP 5 και μετά»
Το CERT-EU θεωρούσε, σύμφωνα με αναφορές, πιθανό ότι επηρεάζονται εκδόσεις από την PHP 5 και μετά. Ο φορέας βασίστηκε, σύμφωνα με εξειδικευμένες αναφορές, σε πληροφορίες που κυκλοφορούσαν πριν από την επίσημη ανακοίνωση. Ο εξειδικευμένος Τύπος μιλά για σχεδόν όλες τις εκδόσεις πίσω μέχρι την PHP 5.4.
Πρακτικά το ακριβές όριο αλλάζει λίγα. Για την PHP 8.1 και παλαιότερες το έργο PHP δεν παρέχει πλέον επίσημες ενημερώσεις. Υπάρχουν ελάχιστα backports πηγαίου κώδικα για τις 7.4, 8.0 και 8.1, αλλά όχι εκδόσεις. Όποιος τρέχει ακόμη PHP 5 ή 7, εξαρτάται από διανομές, τρίτους παρόχους ή μια μετάβαση. Το αν η διανομή σας παρέδωσε διόρθωση, δείχνουν οι δικές της σελίδες ασφαλείας, για παράδειγμα το Debian Security Tracker, οι Ubuntu Security Notices ή οι υποδείξεις της Red Hat. Υπάρχουν και εμπορικές προσφορές μακροπρόθεσμης υποστήριξης για παλιές εκδόσεις PHP· το αν καλύπτουν το PHP2Shell, πρέπει να σας το επιβεβαιώσει γραπτώς ο πάροχος. Λεπτομέρειες για τους κλάδους θα βρείτε στις σελίδες Ποιες εκδόσεις PHP επηρεάζονται; και PHP 8.1 και παλαιότερες.
Απομόνωση: πώς υλοποιείτε τη σύσταση
Η «απομόνωση» ακούγεται αφηρημένη. Εννοείται ότι τα αιτήματα από το διαδίκτυο δεν φτάνουν πλέον στην ευάλωτη εφαρμογή PHP. Ανάλογα με την εφαρμογή υπάρχουν αρκετά στάδια:
- Πλήρης απενεργοποίηση: Ο ιστότοπος αντικαθίσταται από μια στατική σελίδα έκτακτης ανάγκης χωρίς PHP. Αυτή είναι η ασφαλέστερη παραλλαγή.
- Περιορισμός πρόσβασης: Η εφαρμογή παραμένει σε λειτουργία, αλλά είναι προσβάσιμη μόνο μέσω VPN ή για καθορισμένες διευθύνσεις IP, για παράδειγμα για εσωτερικές πύλες.
- Προτεταγμένη σύνδεση: Μια σύνδεση σε επίπεδο διακομιστή ιστού ή proxy πριν από την εφαρμογή. Προσοχή: στο mod_php επιδείχθηκε exploit προτού εκτελεστεί κώδικας της εφαρμογής. Η σύνδεση πρέπει επομένως να ισχύει πριν από την PHP και όχι μέσα στην εφαρμογή.
- Αποκλεισμός άμεσης πρόσβασης στον διακομιστή προέλευσης: Όποιος χρησιμοποιεί υπηρεσία proxy ή CDN, πρέπει να εξασφαλίσει ότι ο διακομιστής δεν είναι επιπλέον άμεσα προσβάσιμος.
Ένας περιορισμός στον διακομιστή ιστού μπορεί να μοιάζει ως εξής, ως ακίνδυνη διαμόρφωση για τον Apache:
# Επιτρέπεται η πρόσβαση μόνο από το εσωτερικό δίκτυο (προσαρμόστε το εύρος του παραδείγματος)
<Location "/">
Require ip 192.0.2.0/24
</Location>
Δοκιμάστε το αποτέλεσμα από έξω, για παράδειγμα μέσω σύνδεσης κινητής τηλεφωνίας. Μια απομόνωση που ελέγχθηκε μόνο στο δίκτυο του γραφείου δεν είναι ελεγμένη απομόνωση.
Η απομόνωση είναι γέφυρα. Όταν απομονώνετε, ορίστε αμέσως έως πότε θα έρθει η ενημέρωση και ποιος θα την εγκαταστήσει. Διαφορετικά η λύση ανάγκης γίνεται μόνιμη κατάσταση.
Τι απαιτούν από κοινού οι συστάσεις: μια απογραφή
Όλοι οι επίσημοι φορείς προϋποθέτουν ότι γνωρίζετε πού τρέχει η PHP. Ακριβώς εκεί αποτυγχάνουν πολλές επιχειρήσεις: microsites από παλιές καμπάνιες, μια ξεχασμένη πύλη πελατών, ένα σύστημα δοκιμών με δημόσια διεύθυνση, μια εφαρμογή σε NAS. Το CERT-EU αναφέρει ρητά την καταγραφή των εγκαταστάσεων PHP ως πρώτο βήμα.
Ξεχασμένα συστήματα βρίσκετε πιο εύκολα με τρεις δρόμους: τις ζώνες DNS των domain σας, τη λίστα των εκδοθέντων πιστοποιητικών TLS και τις συμβάσεις με πρακτορεία, παρόχους φιλοξενίας και παρόχους λογισμικού. Κάθε εγγραφή για την οποία κανείς δεν μπορεί αμέσως να πει τι τρέχει πίσω της, ανήκει στη λίστα ελέγχου. Ακριβώς τέτοια συστήματα είναι επικίνδυνα σε μια κατάσταση όπως το PHP2Shell, επειδή κανείς δεν τα ενημερώνει και κανείς δεν τα χάνει όταν παραβιάζονται.
Μια χρήσιμη απογραφή περιέχει για κάθε σύστημα: διεύθυνση, σκοπό, διαχειριστή, έκδοση PHP και τρόπο λειτουργίας, πηγή των πακέτων και το πρόσωπο επικοινωνίας για ενημερώσεις. Πώς τη δημιουργείτε και τη διατηρείτε επίκαιρη, δείχνει το άρθρο Απογραφή όλων των ιστότοπων και διακομιστών.
Πώς βοηθά συγκεκριμένα η PHP SOS;
- Καταγραφή: Εντοπίζουμε τα δημόσια προσβάσιμα συστήματα PHP σας και τα ταξινομούμε κατά κίνδυνο.
- Patch ή απομόνωση: Εγκαθιστούμε ενημερώσεις ή απομονώνουμε εφαρμογές που δεν μπορούν να διορθωθούν αμέσως και ελέγχουμε το αποτέλεσμα από έξω.
- Παλιές εκδόσεις: Για συστήματα με PHP 8.1 και παλαιότερη σχεδιάζουμε μαζί σας τον δρόμο προς ένα υποστηριζόμενο επίπεδο.
- Απόδειξη: Λαμβάνετε τεκμηρίωση των συστάσεων που υλοποιήθηκαν ανά σύστημα.
Πώς μεταφέρουμε παλιές εφαρμογές σε υποστηριζόμενες εκδόσεις, περιγράφει η υπηρεσία Μετάβαση PHP για συστήματα legacy.
Συμπέρασμα
Το CERT-EU, το CERT-Bund, η BSI και το έργο PHP μιλούν με μία φωνή: ενημερώστε, και όπου αυτό δεν γίνεται άμεσα, απομονώστε. Οι διαφορές βρίσκονται σε λεπτομέρειες όπως το όριο των εκδόσεων. Για την πράξη μετράει το πρώτο βήμα που προϋποθέτουν όλοι: να γνωρίζετε πού τρέχει παντού η PHP.
Συχνές ερωτήσεις
Ποια είναι η διαφορά μεταξύ CERT-Bund και CERT-EU;
Το CERT-Bund είναι η ομάδα απόκρισης έκτακτων περιστατικών υπολογιστών της BSI (Ομοσπονδιακή Υπηρεσία Ασφάλειας Πληροφορικής της Γερμανίας) και προειδοποιεί στη Γερμανία για ευπάθειες. Το CERT-EU είναι η υπηρεσία κυβερνοασφάλειας των θεσμικών οργάνων και φορέων της Ευρωπαϊκής Ένωσης. Και οι δύο εκδίδουν συστάσεις που είναι χρήσιμες και για επιχειρήσεις.
Τι σημαίνει να απομονώσω μια εφαρμογή PHP;
Η εφαρμογή δεν είναι πλέον ελεύθερα προσβάσιμη από το διαδίκτυο. Αυτό είναι δυνατό μέσω σελίδας έκτακτης ανάγκης, μέσω πρόσβασης μόνο από VPN ή από συγκεκριμένες διευθύνσεις IP ή μέσω πλήρους απενεργοποίησης. Καθοριστικό είναι ότι τα αιτήματα από έξω δεν φτάνουν πλέον στην ευάλωτη διεργασία PHP.
Επηρεάζονται σύμφωνα με το CERT-EU και εκδόσεις PHP 5;
Το CERT-EU θεωρούσε, σύμφωνα με αναφορές, πιθανό ότι επηρεάζονται εκδόσεις από την PHP 5 και μετά, βασιζόμενο σε πληροφορίες που κυκλοφορούσαν πριν από την επίσημη ανακοίνωση. Ο εξειδικευμένος Τύπος αναφέρει σχεδόν όλες τις εκδόσεις έως την PHP 5.4. Για τόσο παλιές εκδόσεις δεν υπάρχουν επίσημες ενημερώσεις.
Υπάρχουν επίσημα χαρακτηριστικά αναγνώρισης για επιθέσεις;
Όχι. Μέχρι στιγμής δεν υπάρχουν δημοσιευμένα, επιβεβαιωμένα Indicators of Compromise για το PHP2Shell. Ο εντοπισμός βασίζεται σε ανάλυση συμπεριφοράς, για παράδειγμα σε διεργασίες του διακομιστή ιστού που ξεκινούν shell ή σε νέα αρχεία PHP σε φακέλους μεταφόρτωσης.