TL;DR wygląda na to, iż wystarczy znać czyjś NIP, aby się "dobrać" do jego danych finansowych w Google Cloud. I nie wygląda to na błąd w aplikacji, który można gwałtownie poprawić, ale na "by design".
Tak naprawdę, całkowicie przypadkowo.
Pracujemy w tej chwili nad nową stroną Poland - to taki klon naszej strony Polityka, ale kierowany do odbiorców zagranicznych, z tekstami tłumaczonymi na język angielski, oraz docelowo poszerzony o kategorie tematyczne z serwisów Wojna i Gospodarka. W zasadzie większość funkcjonalności nowego serwisu już działa, ale... teksty nie są na bieżąco tłumaczone, w związku z czym wyświetlają się po polsku. Oczywiście niedługo będą, ale o tym może kiedy indziej.
Jak tłumaczymy te teksty? Używamy pięciu serwisów tłumaczących:
- Google Cloud Translation
- DeepL
- Amazon Translate
- Microsoft Translator
- Bing Translator
Używamy przy tym wielu różnych kont, a na każdym korzystamy z Free Tier - w tym celu zbudowaliśmy sobie na własne potrzeby proste API, które udostępnia tylko jedną prostą metodę "translate", a pod spodem ma całą masę kluczy dostępowych i liczników przetłumaczonych bajtów.
Każdy klucz dostępowy ma zdefiniowaną quotę (zgodną z wielkością Free Tier albo przyznanych imiennie środków), a gdy licznik dojdzie do zera, API automatycznie przełącza się na kolejny klucz i kolejne konto. Tak to działa w bardzo dużym uproszczeniu. Możliwe, iż niedługo udostępnimy ten mechanizm jako open source.
Krok pierwszy
Kilka miesięcy temu wzięliśmy jedno (całkowicie przypadkowe) z wielu starych kont Gmail:
I skonfigurowaliśmy na nim usługi Google Cloud - konkretnie pod kątem uruchomienia Google Cloud Translation API:
- zwykłe konto @gmail.com (akurat to było utworzone najprawdopodobniej w 2011)
- w Google Cloud oznaczone jako Firmowe
- skonfigurowany NIP (jak na poniższym zdjęciu) i reszta danych spółki
- podpięta prywatna karta kredytowa
Krok drugi
Wzięliśmy całkiem inne konto Gmail - tym razem świeże, utworzone miesiąc temu. Poniżej widzicie adres w domenie @polskie.ai, ale tak naprawdę to zwykłe, "pojedyncze" konto Gmail, tylko z własnym adresem i tym samym bez obsługi poczty przez Google.
Na tym koncie - licząc na osobny Free Tier - również skonfigurowaliśmy Google Cloud Translation API. Podaliśmy przy tym:
- ten sam NIP co poprzednio (dla czytelników spoza Polski: pole "VAT number")
- dokładnie te same dane spółki - włącznie z formatem adresu itp. szczegółami
- dokładnie te same właściciela konta Gmail jako takiego
- inną kartę kredytową (firmową)
I, co bardzo ważne, nie podawaliśmy żadnych haseł ani innych danych związanych z tym pierwszym kontem, a wszystko robiliśmy w całkiem innej przeglądarce - takiej, z której nigdy się nie logowaliśmy na to pierwsze konto.
Czyli ten sam NIP - i być może takie same dane spółki lub właściciela - wystarczył, aby z poziomu jednego konta uzyskać dostęp do danych na drugim. I to danych billingowo-finansowych.
Krok trzeci
Nie ma kroku trzeciego. To już było wszystko. Teraz z poziomu drugiego konta mamy pełny dostęp do danych billingowych i finansowych skonfigurowanych na pierwszym koncie. Czyli do:
- raportów z wykorzystania poszczególnych usług Google Cloud - bieżących i z poprzednich miesięcy/lat, z podziałem na usługi i projekty
- zestawień operacji finansowych, czyli nie tylko faktur, ale też tego, jakie płatności są w toku, ile Google pobrało z kart na poczet najbliższej faktury itp.
- cenników i prawdopodobnie informacji o zniżkach (ciężko powiedzieć, bo my akurat żadnych nie mamy - ale dla konkurencji to może być jedna z kluczowych do wykradzenia informacji o realnych stawkach, jakie wynegocjowały sobie duże firmy)
- faktur - włącznie z możliwością pobierania załączników PDF z tymi fakturami
- ustawień płatności takich jak na powyższym zdjęciu
- listy skonfigurowanych metod płatności (czyli najczęściej 4 ostatnich cyfr numeru karty i daty ważności) - na szczęście bez możliwości usunięcia lub modyfikacji
No dobra, w zasadzie to kilka:
- Jak to możliwe, iż znając tylko czyjś NIP (bo resztę danych można sobie wyciągnąć z CEIDG/KRS), możemy się "podłączyć" do jego danych rozliczeniowych?
- Czy to jest jakiś błąd w aplikacji, który się wkradł i zostanie poprawiony w ciągu powiedzmy godzin - czy coś "by design", o czym dotychczas wiedział ten kto miał wiedzieć, a teraz trzeba będzie nauczyć się z tym żyć?
- A jeżeli są jakieś dane zbierane niejawnie przez Google, które pozwoliły magicznie połączyć te 2 zupełnie różne konta, to jakie? I jak ich zbieranie, a potem łączenie na ich podstawie różnych kont, ma się do RODO?
Zbliżamy się już do końca tekstu - a skoro tak, to poświęćmy minutę na pozdrowienia. Pozdrawiamy wszystkich naszych czytelników, szczególnie tych zagranicznych, np. z Nigerii, Brazylii czy Chin. Doceniamy to, iż trwacie przy nas nawet, gdy nie publikujemy nowych tekstów 🙂
A wracając do tematu - testując, czy Wam również to zadziała, pamiętajcie o dwóch sprawach:
- takie testy mogą być nielegalne - więc pamiętajcie, aby testować albo na własnych kontach, albo takich, co do których macie jakąś podstawę prawną (np. konto klienta, któremu robicie obsługę IT, testy bezpieczeństwa itp.) - albo testujcie to z takich krajów, w których w ten lub inny sposób takie testy nie będą Wam groziły jakąkolwiek odpowiedzialnością
- musicie podać (i zweryfikować) działającą kartę kredytową, więc... ryzykujecie, iż Google Was obciąży za czyjeś usługi (a kart prepaid Google nie przyjmuje) - i oczywiście niech Wam nie przyjdzie do głowy pomysł testowania cudzymi kartami 🙂
Intencją autorów ani wydawcy treści prezentowanych w magazynie PAYLOAD nie jest namawianie bądź zachęcanie do łamania prawa. jeżeli popełniłeś lub masz zamiar popełnić przestępstwo, bądź masz wątpliwości, czy Twoje działania nie będą łamać prawa, powinieneś skonsultować się z najbliższą jednostką Policji lub Prokuratury, a jeżeli są one związane z pieniędzmi, dla pewności również z Urzędem Skarbowym.
Nie zezwala się na użycie treści prezentowanych w magazynie PAYLOAD, ani produktów dostępnych w sklepie PAYLOAD, do celów popełniania przestępstw lub przestępstw skarbowych.