Раскрытие S3 и хранилищ
Общедоступные сегменты
«Раскрытие S3 и хранилищ» — бесплатный урок Ethical Hacking Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Ethical Hacking Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Ethical Hacking Academy содержит 4 уроков всего.
Почему хранилища раскрывают данные
Объектное хранилище, такое как AWS S3, Azure Blob и GCP Cloud Storage, — один из самых распространённых источников утечек данных из облака. Хранилища легко создавать и легко неправильно настраивать.
- Случайно настроены на общедоступное чтение или write
- Имеют предсказуемые имена, которые можно угадать
- Используют слишком широкие политики хранилища или ACL
Одно общедоступное хранилище может раскрыть миллионы записей.
Как устроено именование S3
Имена хранилищ S3 глобально уникальны и соответствуют предсказуемым URL. Именно эта предсказуемость делает возможным перечисление.
Любой, кто угадает действительное имя хранилища, может проверить уровень его доступа.
# 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/Обнаружение общедоступных хранилищ
Самая быстрая проверка — отправить запрос без аутентификации. Код состояния HTTP показывает состояние доступа.
- 200 со списком в формате XML — общедоступен просмотр списка
- 403 AccessDenied — хранилище существует, но является закрытым
- 404 NoSuchBucket — хранилище не существует
# 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Перебор имён хранилищ
Атакующие составляют возможные имена из названия компании и распространённых суффиксов, а затем проверяют каждое. Инструменты автоматизируют этот процесс в больших масштабах.
Типичные шаблоны: 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Общедоступное чтение и общедоступная запись
Общедоступный доступ бывает двух видов, причём write намного опаснее чтения.
- Общедоступное чтение — атакующие скачивают Ваши данные (утечка данных)
- Общедоступная запись — атакующие загружают объекты или перезаписывают их
Общедоступная запись позволяет искажать содержимое сайта, размещать вредоносные программы в Вашем домене и даже проводить атаки на цепочку поставок, если хранилище обслуживает ресурсы сайта или программного обеспечения.
# 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.Вводящая в заблуждение настройка «Block Public Access»
AWS предлагает настройки Block Public Access на уровне учётной записи и хранилища. Они эффективны, но часто неправильно понимаются.
- Настройки уровня учётной записи имеют приоритет над политиками хранилища
- Хранилище может быть закрытым даже при разрешительной политике, если включён BPA
- И наоборот, отключение BPA может внезапно открыть множество хранилищ
Всегда проверяйте фактический доступ, а не только одну политику.
# Inspect block-public-access configuration
aws s3api get-public-access-block --bucket example-data
aws s3api get-bucket-policy-status --bucket example-dataРаскрытие данных в Azure Blob
Azure хранит объекты в container внутри учётных записей хранилища. Неправильная конфигурация устанавливает для container уровень общедоступного доступа blob или container.
Имена учётных записей хранилища также глобально уникальны и предсказуемы.
# 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'Раскрытие данных в GCP Cloud Storage
Хранилища Google Cloud Storage можно сделать общедоступными, предоставив субъекту allUsers или allAuthenticatedUsers роль чтения.
Схема раскрытия аналогична S3: предсказуемые имена, анонимная проверка и общедоступные привязки 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Что атакующие ищут внутри
Общедоступное хранилище — лишь дверь. Настоящая цель находится внутри:
- Дампы баз данных и резервные копии
- Исходный код и
.envfiles с секретами - Учётные данные облака и ключи API
- PII клиентов (персональные данные)
- Внутренние документы и конфигурации
Даже небольшой утёкший file может содержать ключи, позволяющие получить полный доступ к учётной записи.
Исправление и усиление защиты
Защита от раскрытия данных в хранилищах должна быть многоуровневой:
- Включите Block Public Access на уровне учётной записи
- Удалите общедоступные ACL и назначения
allUsers/allAuthenticatedUsers - Используйте политики хранилища, ограниченные конкретными субъектами
- Включите шифрование и журналирование доступа
- Запустите непрерывное сканирование конфигурации, чтобы обнаруживать новые общедоступные хранилища
Ответственно обращайтесь с раскрытыми данными
Обнаружение общедоступного хранилища с реальными данными связано с этическими и юридическими рисками.
- Не скачивайте больше минимального объёма, необходимого для подтверждения раскрытия
- Никогда не извлекайте и не сохраняйте PII клиентов
- Немедленно и безопасно сообщите об обнаружении
- Соблюдайте область проверки и правила проведения задания
Цель — доказать наличие доступа, а не собирать данные.
Быстрая проверка
Анонимный запрос к URL хранилища S3 возвращает HTTP 403 AccessDenied. На что это указывает?
Итоги: раскрытие данных в S3 и хранилищах
Вы узнали, как объектные хранилища становятся источником утечек и как безопасно проверять это.
- Имена хранилищ глобально уникальны и предсказуемы, что позволяет выполнять перечисление
- Коды состояния HTTP раскрывают состояние доступа: 200 (общедоступно), 403 (закрыто), 404 (отсутствует)
- Общедоступная запись опаснее общедоступного чтения
- Та же схема применима к Azure Blob и GCP Cloud Storage
- Для исправления используйте Block Public Access и политики минимальных привилегий
Далее: службы метаданных и SSRF — специфичная для облака цепочка атак.
Часто задаваемые вопросы
Урок «Раскрытие S3 и хранилищ» бесплатный?
Да — полный текст урока «Раскрытие S3 и хранилищ» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Ethical Hacking Academy, подпишись на CoddyKit PRO. Курс Ethical Hacking Academy содержит 4 уроков всего.
Чему я научусь в уроке «Раскрытие S3 и хранилищ»?
Общедоступные сегменты Ты практикуешь Ethical Hacking Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Ethical Hacking Academy?
Предыдущий опыт не требуется. Ethical Hacking Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.
Сколько времени занимает урок «Раскрытие S3 и хранилищ»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Ethical Hacking Academy?
Да. Каждый урок Ethical Hacking Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Область атак в облаке
- Ошибки конфигурации IAM
- Раскрытие S3 и хранилищ
- Метаданные и SSRF