Nedavno otkrivena ranjivost u Firebase Cloud Messaging dovela je do čudnih obavijesti iz aplikacija kao što su Microsoft Teams i Hangouts.
Čini se da ne može proći dan a da se negdje u nekom softveru ili usluzi ne pojavi još jedan značajan sigurnosni propust. Čini se da je ovaj tjedan vrijeme da se Firebase Cloud Messaging suoči s ranjivošću koju je lako iskoristiti.
Firebase Cloud Messaging Googleov je okvir koji olakšava isporuku obavijesti putem aplikacija na gotovo svim platformama. Uz jednostavnu konfiguraciju vaše aplikacije i poslužitelja, možete poslati općenite ili ciljane push obavijesti svojim korisnicima u roku od nekoliko minuta. Većina Android aplikacija koje isporučuju push obavijesti vjerojatno za to koriste Firebase Cloud Messaging (ili naslijeđeni Google Cloud Messaging). To uključuje aplikacije programera pojedinačnih hobista do aplikacija divovskih korporacija poput Microsofta i, naravno, Googlea.
Iskorištavanje
I tu dolazi ovaj exploit. Ako koristite aplikacije poput
Microsoftovi timovi ili Google Hangouts, možda ste nedavno primijetili nasumične obavijesti, poput onih na sljedećoj snimci zaslona. To su ljudi koji iskorištavaju neprikladne konfiguracije Firebase Cloud Messaginga.Ovdje neću previše ulaziti u detalje, ali ovaj problem zapravo nije Googleova krivnja. Kako bi sigurno slao push obavijesti, Google zahtijeva da poslužitelj koji ih zapravo šalje također pošalje ključ za potvrdu njihove originalnosti. Ovaj ključ bi trebao biti samo u vašoj Firebase konzoli i na vašem poslužitelju.
Ali zahvaćene aplikacije, iz bilo kojeg razloga, također imaju ključ ugrađen u sebe. Ne koristi se, ali je tu, u otvorenom tekstu, da ga svi vide i koriste. Pomalo ironično, čini se da su Google Hangouts i Google Play Music ranjivi na ovaj exploit, kao i Microsoft Teams. Dakle, Google je donekle kriv, ali i ne baš.
I može se koristiti u prilično opake svrhe. Iako se čini da je većina "implementacija" ove ranjivosti korištena samo za slanje čudnog teksta ljudima, moguće je da napadač izvrši phishing prijevaru. Tekst obavijesti može biti nešto poput: "Vaša je sesija istekla. Dodirnite ovdje za ponovnu prijavu", s URL-om koji se pokreće kada ga dodirnete. Taj bi URL mogao završiti kao stranica oblikovana tako da izgleda kao, recimo, Microsoftova stranica za prijavu. Ali umjesto da se prijavite u Microsoft, nekome dajete svoju prijavu.
Što bi korisnici trebali učiniti?
Ništa. Vi kao korisnik ne možete učiniti mnogo da biste zaustavili te obavijesti. Možete blokirati kanale na kojima dolaze (ili potpuno blokirati obavijesti iz aplikacije), ali ne možete filtrirati nelegitimne obavijesti jer, koliko Firebase zna, oni su legitiman.
No, ono što možete učiniti jest biti oprezan. Ako dobijete obavijest koja kao da traži vaše podatke za prijavu—ili bilo koje druge osobne podatke u tom slučaju—nemojte je dodirnuti. Umjesto toga, izravno otvorite aplikaciju. Ako je obavijest bila stvarna, aplikacija će to pokazati. U suprotnom, vjerojatno se radilo o pokušaju krađe identiteta. Ako dodirnete obavijest, odmah zatvorite sve web stranice koje se otvore.
I na kraju, ako ste već negdje stavili lozinku kroz obavijest, odmah je promijenite, poništite autorizaciju svih prijavljenih uređaja (ako je primjenjivo) i omogućite dvofaktorsku autentifikaciju ako niste već.
Što bi programeri trebali učiniti?
Ako ste implementirali Firebase Cloud Messaging u svoje aplikacije, provjerite konfiguracijske datoteke kako biste bili sigurni da ključevi vašeg poslužitelja nisu tamo. Ako jesu, odmah ih poništite, stvorite nove i ponovno konfigurirajte svoj poslužitelj.
Opet, ovo nije baš tehnički članak, pa ćete htjeti posjetiti donje veze za više informacija o ublažavanju.
Odgovori Googlea i Microsofta
Rekao je glasnogovornik Googlea Dnevni gutljaj da je problem “konkretno povezan s programerima koji uključuju API ključeve u svoj kod za usluge koje ne bi trebale uključiti, što bi se zatim moglo iskoristiti”, umjesto da bude sama usluga Firebase Cloud Messaging kompromitirana. "U slučajevima kada Google može identificirati da se koristi ključ poslužitelja, pokušavamo upozoriti programere kako bi mogli popraviti svoju aplikaciju", dodao je glasnogovornik.
Microsoft je na Twitteru objavio sljedeću izjavu:
Daljnje čitanje
Evo nekoliko članaka koji detaljnije govore o tome što je to exploit, kako funkcionira i kako možete biti sigurni da niste ranjivi. Ako ste programer aplikacija ili vas samo zanima kako ovo funkcionira, pogledajte.
- Preuzimanje Firebase usluge slanja poruka u oblaku: malo istraživanje koje je dovelo do 30.000 $+ nagrada
- Ranjivost slanja poruka Google Firebase omogućila je napadačima slanje push obavijesti korisnicima aplikacije