Ujawnienie S3 i danych w magazynach
Publiczne buckety
Ujawnienie S3 i danych w magazynach to bezpłatna lekcja Ethical Hacking Academy na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Ethical Hacking Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Ethical Hacking Academy zawiera 4 lekcji w sumie.
Dlaczego zasobniki magazynowe ujawniają dane
Magazyny obiektów, takie jak AWS S3, Azure Blob i GCP Cloud Storage, są jednym z najczęstszych źródeł wycieków danych z chmury. Zasobniki łatwo tworzyć i łatwo błędnie konfigurować.
- Przypadkowe ustawienie publicznego odczytu lub zapisu
- Przewidywalne nazwy, które można odgadnąć
- Zbyt szerokie zasady zasobnika lub listy ACL
Pojedynczy publiczny zasobnik może ujawnić miliony rekordów.
Jak działa nazewnictwo S3
Nazwy zasobników S3 są unikalne globalnie i mapują się na przewidywalne adresy URL. To właśnie ta przewidywalność umożliwia wyliczanie zasobników.
Każdy, kto odgadnie prawidłową nazwę zasobnika, może sprawdzić poziom jego dostępu.
# Two equivalent S3 URL forms
https://my-bucket.s3.amazonaws.com/
https://s3.amazonaws.com/my-bucket/
# Region-specific endpoint
https://my-bucket.s3.eu-west-1.amazonaws.com/Wykrywanie publicznych zasobników
Najszybszym testem jest żądanie nieuwierzytelnione. Kod statusu HTTP informuje o stanie dostępu.
- 200 z listą w formacie XML — publiczny dostęp do listy
- 403 AccessDenied — zasobnik istnieje, ale jest prywatny
- 404 NoSuchBucket — zasobnik nie istnieje
# Anonymous listing attempt
curl -s https://example-data.s3.amazonaws.com/
# Anonymous via the AWS CLI (no signing)
aws s3 ls s3://example-data --no-sign-requestZgadywanie nazw zasobników metodą brute force
Atakujący tworzą kandydatów na podstawie nazwy firmy i typowych przyrostków, a następnie testują każdą nazwę. Narzędzia automatyzują ten proces na dużą skalę.
Typowe wzorce: company-backups, company-dev, company-logs, company-assets.
# Permutate and probe bucket names from a keyword
cloud_enum -k example
# Dedicated S3 enumerator
s3scanner scan --bucket-file candidates.txtPubliczny odczyt a publiczny zapis
Publiczny dostęp występuje w dwóch wariantach, z których zapis jest znacznie groźniejszy niż odczyt.
- Publiczny odczyt — atakujący pobierają dane (wyciek danych)
- Publiczny zapis — atakujący przesyłają lub nadpisują obiekty
Publiczny zapis umożliwia podmianę treści, hostowanie złośliwego oprogramowania w domenie oraz nawet ataki na łańcuch dostaw, jeśli zasobnik udostępnia zasoby witryny lub oprogramowania.
# Test for public write (DANGEROUS - only with authorization)
aws s3 cp test.txt s3://example-data/ --no-sign-request
# If this succeeds, the bucket allows anonymous uploads.Mylące ustawienie „Block Public Access”
AWS oferuje ustawienia Block Public Access zarówno na poziomie konta, jak i zasobnika. Są one skuteczne, ale często źle rozumiane.
- Ustawienia na poziomie konta mają pierwszeństwo przed zasadami zasobnika
- Zasobnik może być prywatny mimo liberalnej zasady, jeśli włączono BPA
- Wyłączenie BPA może natomiast nagle ujawnić wiele zasobników
Zawsze należy sprawdzać efektywny dostęp, a nie tylko jedną zasadę.
# Inspect block-public-access configuration
aws s3api get-public-access-block --bucket example-data
aws s3api get-bucket-policy-status --bucket example-dataNarażenie Azure Blob
Azure przechowuje obiekty w kontenerach znajdujących się w kontach magazynu. Błędna konfiguracja ustawia poziom publicznego dostępu kontenera na blob lub container.
Nazwy kont magazynu również są unikalne globalnie i przewidywalne.
# Azure blob URL pattern
https://exampleacct.blob.core.windows.net/container/file.txt
# Anonymous list attempt against a public container
curl -s 'https://exampleacct.blob.core.windows.net/backups?restype=container&comp=list'Narażenie GCP Cloud Storage
Zasobniki Google Cloud Storage można upublicznić, przyznając podmiotowi allUsers lub allAuthenticatedUsers rolę odczytu.
Wzorzec narażenia przypomina S3: przewidywalne nazwy, anonimowe sprawdzanie i publiczne powiązania IAM.
# Anonymous list of a GCS bucket
curl -s https://storage.googleapis.com/example-bucket/
# Check IAM bindings for allUsers (authenticated)
gsutil iam get gs://example-bucketCzego atakujący szukają wewnątrz
Publiczny zasobnik to tylko drzwi. Prawdziwą nagrodą jest jego zawartość:
- Zrzuty baz danych i kopie zapasowe
- Kod źródłowy i pliki
.envzawierające sekrety - Poświadczenia chmurowe i klucze API
- Dane osobowe klientów (PII)
- Dokumenty wewnętrzne i konfiguracje
Nawet niewielki ujawniony plik może zawierać klucze prowadzące do pełnego dostępu do konta.
Działania naprawcze i wzmacnianie zabezpieczeń
Rozwiązanie problemu narażenia magazynu wymaga kilku warstw zabezpieczeń:
- Włączyć Block Public Access na poziomie konta
- Usunąć publiczne listy ACL oraz uprawnienia
allUsers/allAuthenticatedUsers - Stosować zasady zasobników ograniczone do określonych podmiotów
- Włączyć szyfrowanie i rejestrowanie dostępu
- Prowadzić ciągłe skanowanie konfiguracji w celu wykrywania nowych publicznych zasobników
Odpowiedzialne postępowanie z ujawnionymi danymi
Znalezienie publicznego zasobnika zawierającego rzeczywiste dane ma konsekwencje etyczne i prawne.
- Nie pobierać więcej niż minimum niezbędne do potwierdzenia narażenia
- Nigdy nie eksfiltrować ani nie przechowywać danych osobowych klientów
- Niezwłocznie i bezpiecznie zgłosić problem
- Pozostać w zakresie oraz przestrzegać zasad prowadzenia testów
Celem jest udowodnienie istnienia dostępu, a nie gromadzenie danych.
Szybkie sprawdzenie
Nieuwierzytelnione żądanie do adresu URL zasobnika S3 zwraca HTTP 403 AccessDenied. Co to oznacza?
Podsumowanie: narażenie S3 i magazynów
Dowiedział się Pan/Dowiedziała się Pani, w jaki sposób dochodzi do wycieków z magazynów obiektów oraz jak bezpiecznie je testować.
- Nazwy zasobników są unikalne globalnie i przewidywalne, co umożliwia ich wyliczanie
- Kody statusu HTTP ujawniają stan dostępu: 200 (publiczny), 403 (prywatny), 404 (brak)
- Publiczny zapis jest groźniejszy niż publiczny odczyt
- Ten sam wzorzec dotyczy Azure Blob i GCP Cloud Storage
- Działania naprawcze obejmują Block Public Access i zasady minimalnych uprawnień
W następnej części: usługi metadanych i SSRF — charakterystyczny dla chmury łańcuch ataku.
Ucz się Ethical Hacking Academy dzięki korepetycjom AI — za darmo
Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.
- Kursy
- 31
- Lekcje
- 111
Często zadawane pytania
Czy lekcja „Ujawnienie S3 i danych w magazynach” jest bezpłatna?
Tak — pełny tekst „Ujawnienie S3 i danych w magazynach” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Ethical Hacking Academy, przejdź na CoddyKit PRO. Kurs Ethical Hacking Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Ujawnienie S3 i danych w magazynach”?
Publiczne buckety Ćwiczysz Ethical Hacking Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Ethical Hacking Academy?
Nie wymagamy żadnego doświadczenia. Ethical Hacking Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.
Ile czasu zajmuje lekcja „Ujawnienie S3 i danych w magazynach”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Ethical Hacking Academy?
Tak. Każda lekcja Ethical Hacking Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Powierzchnia ataku chmury
- Błędne konfiguracje IAM
- Ujawnienie S3 i danych w magazynach
- Metadane i SSRF