FCM-exploit achter vreemde meldingen van Microsoft Teams, Hangouts

Een onlangs onthulde kwetsbaarheid in Firebase Cloud Messaging heeft geleid tot vreemde meldingen van apps als Microsoft Teams en Hangouts.

Het lijkt erop dat er geen dag voorbij kan gaan zonder dat er ergens in een bepaalde software of dienst weer een significant beveiligingslek opduikt. Deze week lijkt de tijd te zijn voor Firebase Cloud Messaging om tegen een gemakkelijk te exploiteren kwetsbaarheid aan te lopen.

Firebase Cloud-berichten is een raamwerk van Google om het bezorgen van meldingen via apps op vrijwel elk platform eenvoudiger te maken. Met een eenvoudige configuratie van zowel uw app als een server kunt u binnen enkele minuten algemene of gerichte pushmeldingen naar uw gebruikers sturen. De meeste Android-apps die pushmeldingen leveren, gebruiken hiervoor waarschijnlijk Firebase Cloud Messaging (of de oudere Google Cloud Messaging). Dat omvat apps van enkele hobbyistische ontwikkelaars tot apps van gigantische bedrijven als Microsoft en natuurlijk Google.

De exploit

En dat is waar deze exploit om de hoek komt kijken. Als je apps gebruikt zoals

Microsoft Teams of Google Hangouts, heb je onlangs misschien willekeurige meldingen opgemerkt, zoals die in de volgende schermafbeelding. Deze zijn afkomstig van mensen die misbruik maken van onjuiste configuraties van Firebase Cloud Messaging.

Schermafbeelding van /u/ToTooThenThan op Reddit.

Ik zal hier niet te veel in detail treden, maar dit probleem is niet echt de schuld van Google. Om pushmeldingen veilig te kunnen verzenden, vereist Google dat de server die ze daadwerkelijk verzendt ook een sleutel verzendt om te valideren dat ze echt zijn. Deze sleutel hoort alleen in uw Firebase-console en op uw server te staan.

Maar in de getroffen apps is, om welke reden dan ook, de sleutel ook ingebouwd. Het wordt niet gebruikt, maar het is er, in leesbare tekst, zodat iedereen het kan zien en gebruiken. Enigszins ironisch genoeg lijken Google Hangouts en Google Play Music kwetsbaar voor deze exploit, evenals Microsoft Teams. Het is dus een beetje de schuld van Google, maar ook niet echt.

En het kan voor behoorlijk snode doeleinden worden gebruikt. Hoewel het erop lijkt dat de meeste "implementaties" van dit beveiligingslek alleen zijn gebruikt om vreemde sms-berichten naar mensen te sturen, is het mogelijk dat een aanvaller een phishing-scam uitvoert. De tekst van de melding zou zoiets kunnen zijn als: "Uw sessie is verlopen. Tik hier om opnieuw in te loggen', met een URL die wordt gestart wanneer u erop tikt. Die URL zou uiteindelijk een site kunnen worden die lijkt op bijvoorbeeld de inlogpagina van Microsoft. Maar in plaats van in te loggen bij Microsoft, geeft u iemand uw login.

Wat moeten gebruikers doen?

Niets. U als gebruiker kunt niet veel doen om deze meldingen te stoppen. Je kunt de kanalen waarop ze binnenkomen blokkeren (of meldingen van de app helemaal blokkeren), maar je kunt de onwettige meldingen niet wegfilteren, omdat deze, voor zover Firebase weet, Zijn rechtmatig.

Wat u echter wel kunt doen, is voorzichtig zijn. Als u een melding ontvangt waarin om uw inloggegevens (of andere persoonlijke gegevens) wordt gevraagd, tik er dan niet op. Open in plaats daarvan de app rechtstreeks. Als de melding echt was, geeft de app dat aan. Anders was het waarschijnlijk een phishing-poging. Als u op een melding tikt, sluit dan onmiddellijk elke website die wordt geopend.

En tot slot: als u uw wachtwoord al ergens via een melding hebt ingevoerd, wijzig dit dan onmiddellijk, trek de autorisatie van alle ingelogde apparaten in (indien van toepassing) en schakel tweefactorauthenticatie in als u dat niet heeft gedaan al.

Wat moeten ontwikkelaars doen?

Als u Firebase Cloud Messaging in uw apps heeft geïmplementeerd, controleert u de configuratiebestanden om er zeker van te zijn dat uw serversleutels daar niet in staan. Als dit het geval is, maakt u ze onmiddellijk ongeldig, maakt u nieuwe en configureert u uw server opnieuw.

Nogmaals, dit is geen erg technisch artikel, dus bezoek de onderstaande links voor meer informatie over risicobeperking.

Reacties van Google en Microsoft

Dat zegt een Google-woordvoerder De dagelijkse slok dat het probleem “specifiek verband hield met het feit dat ontwikkelaars API-sleutels in hun code opnemen voor services die dat niet zouden moeten doen worden opgenomen, die vervolgens kunnen worden uitgebuit”, in plaats van de Firebase Cloud Messaging-service zelf gecompromitteerd. “In gevallen waarin Google kan identificeren dat een serversleutel wordt gebruikt, proberen we de ontwikkelaars te waarschuwen zodat ze hun app kunnen repareren”, voegde de woordvoerder eraan toe.

Microsoft heeft de volgende verklaring op Twitter uitgegeven:

Verder lezen

Hier zijn een paar artikelen die veel gedetailleerder ingaan op wat deze exploit is, hoe deze werkt en hoe u ervoor kunt zorgen dat u niet kwetsbaar bent. Als u een app-ontwikkelaar bent of gewoon wilt weten hoe dit werkt, neem dan een kijkje.

  • Firebase Cloud Messaging Service Takeover: een klein onderzoek dat leidde tot meer dan 30.000 dollar aan premies
  • Door de berichtenkwetsbaarheid van Google Firebase konden aanvallers pushmeldingen naar app-gebruikers sturen