Problem wynika ze sposobu, w jaki zmiany uwierzytelniania rozchodzą się w rozproszonej infrastrukturze Google. Gdy klucz zostanie usunięty, unieważnienie nie jest egzekwowane jednocześnie na wszystkich serwerach obsługujących uwierzytelnianie API. Niektóre systemy odrzucają dane uwierzytelniające szybko, inne – dopóki aktualizacja o usunięciu do nich nie dotrze.
Aikido testowało to zjawisko, wysyłając wielokrotne żądania uwierzytelnienia po usunięciu nowo utworzonych kluczy. W dziesięciu próbach udane uwierzytelnianie utrzymywało się do momentu pełnego rozpowszechnienia unieważnienia, co dało obserwowane okno czasowe 8–23 minut z medianą około 16 minut.
Oznacza to, że klucz widoczny jako usunięty w interfejsie Google Cloud może przez chwilę nadal działać na części platformy.
Dla organizacji reagujących na wyciek danych uwierzytelniających natychmiastowe odwołanie ma kluczowe znaczenie. Opóźnienie odkryte przez Aikido stwarza okres, w którym atakujący mogą nadal używać klucza, mimo że obrońcy sądzą, że został on wyłączony.
Jeśli atakujący posiada skompromitowany klucz w tym oknie czasowym, może on:
Badacze potwierdzili to zachowanie w przypadku kluczy skonfigurowanych dla Gemini, a także zaobserwowali to samo opóźnione unieważnienie w przypadku kluczy podłączonych do innych API Google Cloud, takich jak BigQuery i Google Maps. Luka jest związana z samym typem danych uwierzytelniających (klucz API), a nie z konkretną usługą.
Z doniesień i informacji Aikido wynika, że Google początkowo uznało to zachowanie za oczekiwane opóźnienie propagacyjne w systemie rozproszonym, a nie krytyczną lukę bezpieczeństwa. Niektóre źródła podają, że zgłoszenie początkowo zamknięto jako „won’t fix” (nie naprawimy).
Po dalszym przeglądzie zgłoszenie zostało ponownie otwarte i sklasyfikowane wewnętrznie jako błąd P0, co oznacza najwyższy priorytet dochodzenia.
Przyczyną techniczną jest stopniowe propagowanie aktualizacji unieważnienia w infrastrukturze, co oznacza, że dokładny czas odwołania może się różnić w zależności od tego, które systemy zaplecza przetwarzają żądanie.
Dopóki nie zagwarantujemy natychmiastowego unieważnienia, zespoły bezpieczeństwa powinny zakładać, że usunięcie klucza API nie blokuje natychmiastowo całego dostępu.
Zalecane środki ostrożności:
Traktuj usunięcie jako opóźniony krok powstrzymania
Zaplanuj tymczasowe okno ryzyka – około 30 minut – podczas którego skompromitowany klucz może nadal działać.
Monitoruj logi i rozliczenia po unieważnieniu
Niespodziewane wywołania API lub nagłe skoki użycia wkrótce po usunięciu mogą wskazywać na kontynuowane nadużycie podczas okna propagacji.
Ograniczaj klucze API tam, gdzie to możliwe
Google zaleca stosowanie ograniczeń, takich jak dozwolone źródła (referrer), adresy IP lub konkretne API, tak aby wyciekły klucz miał ograniczoną użyteczność.
Rotuj i wymieniaj dane uwierzytelniające
Zamiast polegać wyłącznie na usunięciu, rotuj klucze i jak najszybciej aktualizuj usługi, aby używały nowo wygenerowanych danych uwierzytelniających.
Odkrycie uwypukla ważną operacyjną rzeczywistość dużych systemów rozproszonych: zmiany konfiguracji, w tym unieważnianie danych uwierzytelniających, często propagują się stopniowo, a nie natychmiastowo.
Dla programistów i zespołów bezpieczeństwa wniosek jest prosty – „usunięty” nie zawsze oznacza „nieaktywny natychmiast”. Instrukcje bezpieczeństwa powinny uwzględniać krótkie opóźnienia propagacyjne za każdym razem, gdy odwoływane są wrażliwe dane uwierzytelniające.
Problem wynika ze sposobu, w jaki zmiany uwierzytelniania rozchodzą się w rozproszonej infrastrukturze Google. Gdy klucz zostanie usunięty, unieważnienie nie jest egzekwowane jednocześnie na wszystkich serwerach obsługujących uwierzytelnianie API. Niektóre systemy odrzucają dane uwierzytelniające szybko, inne – dopóki aktualizacja o usunięciu do nich nie dotrze.
Aikido testowało to zjawisko, wysyłając wielokrotne żądania uwierzytelnienia po usunięciu nowo utworzonych kluczy. W dziesięciu próbach udane uwierzytelnianie utrzymywało się do momentu pełnego rozpowszechnienia unieważnienia, co dało obserwowane okno czasowe 8–23 minut z medianą około 16 minut.
Oznacza to, że klucz widoczny jako usunięty w interfejsie Google Cloud może przez chwilę nadal działać na części platformy.
Dla organizacji reagujących na wyciek danych uwierzytelniających natychmiastowe odwołanie ma kluczowe znaczenie. Opóźnienie odkryte przez Aikido stwarza okres, w którym atakujący mogą nadal używać klucza, mimo że obrońcy sądzą, że został on wyłączony.
Jeśli atakujący posiada skompromitowany klucz w tym oknie czasowym, może on:
Badacze potwierdzili to zachowanie w przypadku kluczy skonfigurowanych dla Gemini, a także zaobserwowali to samo opóźnione unieważnienie w przypadku kluczy podłączonych do innych API Google Cloud, takich jak BigQuery i Google Maps. Luka jest związana z samym typem danych uwierzytelniających (klucz API), a nie z konkretną usługą.
Z doniesień i informacji Aikido wynika, że Google początkowo uznało to zachowanie za oczekiwane opóźnienie propagacyjne w systemie rozproszonym, a nie krytyczną lukę bezpieczeństwa. Niektóre źródła podają, że zgłoszenie początkowo zamknięto jako „won’t fix” (nie naprawimy).
Po dalszym przeglądzie zgłoszenie zostało ponownie otwarte i sklasyfikowane wewnętrznie jako błąd P0, co oznacza najwyższy priorytet dochodzenia.
Przyczyną techniczną jest stopniowe propagowanie aktualizacji unieważnienia w infrastrukturze, co oznacza, że dokładny czas odwołania może się różnić w zależności od tego, które systemy zaplecza przetwarzają żądanie.
Dopóki nie zagwarantujemy natychmiastowego unieważnienia, zespoły bezpieczeństwa powinny zakładać, że usunięcie klucza API nie blokuje natychmiastowo całego dostępu.
Zalecane środki ostrożności:
Traktuj usunięcie jako opóźniony krok powstrzymania
Zaplanuj tymczasowe okno ryzyka – około 30 minut – podczas którego skompromitowany klucz może nadal działać.
Monitoruj logi i rozliczenia po unieważnieniu
Niespodziewane wywołania API lub nagłe skoki użycia wkrótce po usunięciu mogą wskazywać na kontynuowane nadużycie podczas okna propagacji.
Ograniczaj klucze API tam, gdzie to możliwe
Google zaleca stosowanie ograniczeń, takich jak dozwolone źródła (referrer), adresy IP lub konkretne API, tak aby wyciekły klucz miał ograniczoną użyteczność.
Rotuj i wymieniaj dane uwierzytelniające
Zamiast polegać wyłącznie na usunięciu, rotuj klucze i jak najszybciej aktualizuj usługi, aby używały nowo wygenerowanych danych uwierzytelniających.
Odkrycie uwypukla ważną operacyjną rzeczywistość dużych systemów rozproszonych: zmiany konfiguracji, w tym unieważnianie danych uwierzytelniających, często propagują się stopniowo, a nie natychmiastowo.
Dla programistów i zespołów bezpieczeństwa wniosek jest prosty – „usunięty” nie zawsze oznacza „nieaktywny natychmiast”. Instrukcje bezpieczeństwa powinny uwzględniać krótkie opóźnienia propagacyjne za każdym razem, gdy odwoływane są wrażliwe dane uwierzytelniające.