За последнее десятилетие облачные технологии стали одной из самых быстрорастущих тенденций в ИТ-индустрии. Облачные среды позволяют компаниям перемещать и использовать вычислительные ресурсы в центре обработки данных облачного провайдера. Провайдеры услуг облачных систем работают по модели «плати по мере использования», что означает, что компания платит только за те ресурсы, которые использует. Некоторые облачные провайдеры используют поминутную оплату, другие — почасовую.
Еще по теме: Повышение привилегий при пентесте AWS S3
Уязвимость облачных решений
Ниже перечислены популярные поставщики услуг облачных систем:
- Amazon Web Services (AWS)
- Microsoft Azure
- Google Cloud Platform
Многие поставщики облачных услуг предлагают своим клиентам услуги хранения данных. Хранилище AWS известно как Simple Storage Service (S3). Когда клиент подключает сервис S3, создается бакет (хранилище). Бакет — это единица хранения на платформе AWS, куда клиент может добавлять или удалять файлы. В Microsoft Azure хранилище файлов называется Azure Files. В Google Cloud хранилище называется Google Cloud Storage.
В сфере ИБ необходимо помнить, что если компания использует облачную платформу, то данные на ней должны быть защищены так же, как и при локальном хранении (то есть при хранении в локальной сети). Иногда администраторы забывают включить конфигурации безопасности или не имеют достаточных знаний о безопасности облачных решений. Это может привести к тому, что, например, злоумышленник обнаружит бакеты AWS S3 целевой организации и скачает их содержимое.
В качестве примера воспользуемся бесплатными учебными онлайн-ресурсами с сайта http://flaws.cloud. Это учебная среда, созданная специалистом по безопасности AWS, который помогает сообществу узнать об уязвимостях безопасности, которые могут существовать в неправильных конфигурациях AWS S3.
Обнаружение утечек данных облака AWS S3
Чтобы обнаружить утечку данных из бакетов AWS S3, воспользуйтесь следующими шагами:
Включите виртуальную машину Kali Linux, откройте Терминал и установите инструмент S3Scanner:
1 2 |
kali@kali:~$ sudo apt update kali@kali:~$ sudo pip3 install s3scanner |
Установите пакет командной строки AWS:
1 |
kali@kali:~$ sudo apt install awscli |
Затем настройте функции командной строки AWS в Kali Linux:
1 |
kali@kali:~$ aws configure |
Просто нажмите Enter, чтобы использовать параметры по умолчанию, как показано на следующем скрине:
Чтобы просмотреть все поддерживаемые параметры S3Scanner, выполните команду:
1 |
s3scanner -h |
Теперь для получения IP-адреса целевого сервера воспользуемся NSlookup в Kali Linux:
1 |
kali@kali:~$ nslookup flaws.cloud |
Снова воспользуемся NSlookup для получения имени хоста сервера AWS S3 Bucket:
1 |
kali@kali:~$ nslookup 52.92.148.75 |
На следующем снимке экрана вы можете видеть имя хоста сервера, включая имя хранилища AWS S3 Bucket.
Формат URL-адреса бакета AWS S3 обычно имеет вид
1 |
https://<bucketname> <region>.amazonaws.com |
Поэтому, используя информацию из URL, можно определить следующее:
- Имя бакета S3 ( s3-website).
- Регион хостинга ( us-west-2).
Бакеты AWS S3 используются не только для хранения данных, например файлов. Они также используются для размещения сайтов. Поэтому мы можем использовать flaws.cloud в качестве префикса к URL-адресу ведра AWS S3, чтобы получить следующий урл:
1 |
http://flaws.cloud.s3-website-us-west-2.amazonaws.com/ |
На следующем скрине содержимое предыдущего урла.
Воспользуемся S3Scanner для проверки существования бакета и доступных разрешений:
1 |
kali@kali:~$ s3scanner scan --bucket http://flaws.cloud |
Как видите на следующем скрине, бакет AWS S3 существует:
Попробуем просмотреть содержимое хранилища AWS S3, используя следующие команды:
1 |
kali@kali:~$ aws s3 ls s3://flaws.cloud --region us-west-2 --no-sign-request |
Как видно на следующем скриншоте, в хранилище S3 есть несколько файлов;
Теперь давайте попробуем загрузить файлы на нашу машину Kali Linux. С помощью следующих команд создайте папку и загрузите файлы во вновь созданную папку:
1 2 3 |
kali@kali:~$ mkdir s3_bucket_files kali@kali:~$ cd s3_bucket_files kali@kali:~/s3_bucket_files$ aws s3 cp s3://flaws.cloud/secret-dd02c7c.html --region us-west-2 --no-sign-request |
Синтаксис cp указывает на файл для загрузки, -region позволяет указать расположение AWS S3 Bucket, а no-sign-request указывает на то, что не нужно использовать учетные данные пользователя.
Наконец, вы можете использовать команду cat или open для просмотра содержимого загруженного файла, как показано ниже:
1 2 |
kali@kali:~/s3_bucket_files$ cat secret-dd02c7c.html kali@kali:~/s3_bucket_files$ open secret-dd02c7c.html |
Вы можете продолжить выполнение этой задачи на сайте http://flaws.cloud/, чтобы узнать больше о различных уязвимостях безопасности и обнаружить влияние неправильных конфигураций на облачные сервисы, такие как бакеты AWS S3.
Как видите, утечка данных может произойти на любой платформе и в любой организации. Как начинающий этичный хакер и пентестер, вы должны знать, как найти их до того, как это сделает злоумышленник и воспользуется ими. Компании могут хранить конфиденциальные данные на облачных платформах или даже оставлять их совершенно незащищенными в сети поставщика облачных услуг. Это может привести к тому, что данные и учетные записи могут быть извлечены.
На этом все, теперь вы знаете немного больше про перечисление бакетов AWS S3 с помощью различных инструментов и техник. Я также рекомендую прочитать статью «Получение содержимого бакетов AWS с помощью AWS CLI».