Εκμετάλλευση FCM πίσω από περίεργες ειδοποιήσεις από το Microsoft Teams, το Hangouts

click fraud protection

Μια ευπάθεια που αποκαλύφθηκε πρόσφατα στο Firebase Cloud Messaging οδήγησε σε περίεργες ειδοποιήσεις από εφαρμογές όπως το Microsoft Teams και το Hangouts.

Φαίνεται ότι δεν μπορούμε να πάμε μια μέρα χωρίς να εμφανιστεί ένα άλλο σημαντικό ελάττωμα ασφαλείας κάπου σε κάποιο λογισμικό ή υπηρεσία. Αυτή η εβδομάδα φαίνεται να είναι η ώρα για το Firebase Cloud Messaging να αντιμετωπίσει μια ευπάθεια εύκολα εκμεταλλεύσιμη.

Firebase Cloud Messaging είναι ένα πλαίσιο της Google για να διευκολύνει την παράδοση ειδοποιήσεων μέσω εφαρμογών σχεδόν σε οποιαδήποτε πλατφόρμα. Με κάποια απλή διαμόρφωση τόσο της εφαρμογής σας όσο και ενός διακομιστή, μπορείτε να στείλετε γενικές ή στοχευμένες ειδοποιήσεις push στους χρήστες σας μέσα σε λίγα λεπτά. Οι περισσότερες εφαρμογές Android που παρέχουν ειδοποιήσεις push πιθανότατα χρησιμοποιούν το Firebase Cloud Messaging (ή το παλαιού τύπου Google Cloud Messaging) για να το κάνουν. Αυτό περιλαμβάνει εφαρμογές από προγραμματιστές μεμονωμένους χομπίστες έως εφαρμογές από γιγάντιες εταιρείες όπως η Microsoft και, φυσικά, η Google.

Το Exploit

Και εκεί είναι που μπαίνει αυτό το exploit. Εάν χρησιμοποιείτε εφαρμογές όπως Ομάδες της Microsoft ή Google Hangouts, μπορεί να έχετε παρατηρήσει πρόσφατα τυχαίες ειδοποιήσεις, όπως αυτές στο παρακάτω στιγμιότυπο οθόνης. Αυτά προέρχονται από άτομα που εκμεταλλεύονται ακατάλληλες διαμορφώσεις του Firebase Cloud Messaging.

Στιγμιότυπο οθόνης από το /u/ToTooThenThan στο Reddit.

Δεν θα μπω σε πολλές λεπτομέρειες εδώ, αλλά αυτό το ζήτημα δεν φταίει πραγματικά η Google. Για την ασφαλή αποστολή ειδοποιήσεων push, η Google απαιτεί από τον διακομιστή που τις στέλνει να στείλει επίσης ένα κλειδί για να επιβεβαιώσει ότι είναι αυθεντικές. Αυτό το κλειδί υποτίθεται ότι βρίσκεται μόνο στην κονσόλα Firebase και στον διακομιστή σας.

Αλλά οι επηρεαζόμενες εφαρμογές, για οποιονδήποτε λόγο, έχουν επίσης το κλειδί ενσωματωμένο σε αυτές. Δεν χρησιμοποιείται, αλλά είναι εκεί, σε απλό κείμενο, για να το δει και να το χρησιμοποιήσει ο καθένας. Κάπως ειρωνικά, το Google Hangouts και η Μουσική Google Play φαίνεται να είναι ευάλωτα σε αυτό το exploit, καθώς και το Microsoft Teams. Άρα φταίει κάπως η Google, αλλά και όχι πραγματικά.

Και μπορεί να χρησιμοποιηθεί για πολύ κακούς σκοπούς. Ενώ φαίνεται ότι οι περισσότερες "υλοποιήσεις" αυτής της ευπάθειας έχουν χρησιμοποιηθεί μόνο για την αποστολή περίεργου κειμένου σε άτομα, είναι δυνατό για έναν εισβολέα να εκτελέσει μια απάτη ηλεκτρονικού "ψαρέματος" (phishing). Το κείμενο της ειδοποίησης θα μπορούσε να είναι κάτι σαν, "Η συνεδρία σας έχει λήξει. Πατήστε εδώ για να συνδεθείτε ξανά", με μια διεύθυνση URL που ξεκινά όταν την πατήσετε. Αυτή η διεύθυνση URL θα μπορούσε να καταλήξει να είναι ένας ιστότοπος με στυλ που μοιάζει, για παράδειγμα, με τη σελίδα σύνδεσης της Microsoft. Αλλά αντί να συνδεθείτε στη Microsoft, δίνετε σε κάποιον τη σύνδεσή σας.

Τι πρέπει να κάνουν οι χρήστες;

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

Αυτό που μπορείτε να κάνετε, όμως, είναι να είστε προσεκτικοί. Εάν λάβετε μια ειδοποίηση που φαίνεται να ζητά τα στοιχεία σύνδεσής σας —ή οποιαδήποτε άλλη προσωπική πληροφορία για αυτό το θέμα— μην την πατήσετε. Αντίθετα, ανοίξτε απευθείας την εφαρμογή. Εάν η ειδοποίηση ήταν πραγματική, η εφαρμογή θα το υποδείξει. Διαφορετικά, πιθανότατα επρόκειτο για απόπειρα phishing. Εάν πατήσετε μια ειδοποίηση, κλείστε αμέσως κάθε ιστότοπο που ανοίγει.

Και τέλος, αν έχετε ήδη βάλει τον κωδικό πρόσβασής σας κάπου μέσω μιας ειδοποίησης, αλλάξτε τον αμέσως, καταργήστε την εξουσιοδότηση όλων των συνδεδεμένων συσκευών (εάν υπάρχει) και ενεργοποιήστε τον έλεγχο ταυτότητας δύο παραγόντων εάν δεν το έχετε κάνει ήδη.

Τι πρέπει να κάνουν οι προγραμματιστές;

Εάν έχετε εφαρμόσει το Firebase Cloud Messaging στις εφαρμογές σας, ελέγξτε τα αρχεία διαμόρφωσης για να βεβαιωθείτε ότι τα κλειδιά του διακομιστή σας δεν βρίσκονται εκεί. Εάν είναι, ακυρώστε τα αμέσως, δημιουργήστε νέα και ρυθμίστε ξανά τον διακομιστή σας.

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

Απαντήσεις Google και Microsoft

είπε εκπρόσωπος της Google The Daily Swig ότι το ζήτημα αφορούσε «συγκεκριμένα με προγραμματιστές που περιλαμβάνουν κλειδιά API στον κώδικά τους για υπηρεσίες που δεν έπρεπε να συμπεριληφθούν, τα οποία στη συνέχεια θα μπορούσαν να αξιοποιηθούν», αντί να είναι η ίδια η υπηρεσία Firebase Cloud Messaging σε κίνδυνο. «Σε περιπτώσεις όπου η Google είναι σε θέση να αναγνωρίσει ότι χρησιμοποιείται κλειδί διακομιστή, προσπαθούμε να ειδοποιήσουμε τους προγραμματιστές ώστε να μπορούν να διορθώσουν την εφαρμογή τους», πρόσθεσε ο εκπρόσωπος.

Η Microsoft εξέδωσε την ακόλουθη δήλωση στο Twitter:

Περαιτέρω ανάγνωση

Ακολουθούν μερικά άρθρα που αναφέρονται σε πολύ περισσότερες λεπτομέρειες σχετικά με το τι είναι αυτό το exploit, πώς λειτουργεί και πώς μπορείτε να βεβαιωθείτε ότι δεν είστε ευάλωτοι. Εάν είστε προγραμματιστής εφαρμογών ή απλώς σας ενδιαφέρει να δείτε πώς λειτουργεί αυτό, ρίξτε μια ματιά.

  • Firebase Cloud Messaging Service Εξαγορά: Μια μικρή έρευνα που οδήγησε σε 30k$+ σε bounties
  • Η ευπάθεια ανταλλαγής μηνυμάτων του Google Firebase επέτρεψε στους εισβολείς να στέλνουν ειδοποιήσεις push στους χρήστες της εφαρμογής