Ethical Hacking Academy · Lekcja

Ujawnienie S3 i danych w magazynach

Publiczne buckety

Lekcja 3 z 413 kroki

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-request

Zgadywanie 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.txt

Publiczny 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-data

Naraż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-bucket

Czego 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 .env zawierają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.

Bezpłatny start

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

  1. Powierzchnia ataku chmury
  2. Błędne konfiguracje IAM
  3. Ujawnienie S3 i danych w magazynach
  4. Metadane i SSRF
← Powrót do Ethical Hacking Academy