Cosa non ti piace di Google Cloud Firestore?
Siamo stati hackerati e il nostro numero di letture è aumentato letteralmente di miliardi di letture in un breve periodo, la nostra bolletta è aumentata di migliaia di dollari e poiché non siamo stati in grado di spiegare questo ai nostri stakeholder, abbiamo dovuto interrompere lo sviluppo e i nostri posti di lavoro sono meno stabili di prima.
Abbiamo impostato avvisi e quote sulla nostra API, ma le letture hanno bypassato l'API e quindi siamo stati avvisati quando è arrivata la nostra bolletta - se avessimo avuto di nuovo il nostro tempo, avremmo trovato un modo per impostare avvisi sulle letture di Firevase stesso, ma avevamo operato con il presupposto che le letture sarebbero state attraverso le nostre API.
Il nostro team di sicurezza ci ha consigliato che il requisito di includere il file delle credenziali di Google nella nostra app Android (in modo che l'app sappia quale endpoint utilizzare) significava che il nostro endpoint di Firestore era aperto a chiunque potesse vederlo, quindi ci stavamo affidando alle regole per funzionare. Eravamo fiduciosi che fosse tutto a posto e che avere regole in atto avrebbe mitigato questi rischi.
Quello che abbiamo sperimentato è stato un agente malintenzionato che, senza alcun guadagno personale, ha trovato un modo per distruggere il nostro servizio e far aumentare la nostra bolletta.
Nel caso possa aiutare qualcuno, le nostre regole sono qui sotto. Queste non hanno funzionato e improvvisamente ci troviamo di fronte a una bolletta enorme che ha danneggiato enormemente la reputazione della nostra unità aziendale all'interno della nostra organizzazione.
Non abbiamo (fino ad oggi, sono passati circa 20 giorni da quando l'attacco è stato notato) ricevuto alcun aiuto utile da Google per rintracciare come l'attacco abbia funzionato, ma il nostro team di sicurezza ipotizza che qualcuno sia riuscito a fingere che le loro richieste provenissero dal nostro dominio.
Usiamo l'autenticazione Microsoft - il nostro prodotto era destinato a clienti aziendali - e avevamo testato con successo la sicurezza con account non autenticati e account autenticati al di fuori del nostro dominio.
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if request.auth != null && request.auth.token.email.matches('.*@"nostro dominio");
}
}
} Recensione raccolta e ospitata su G2.com.