Aws — различия между версиями

Материал из InformationSecurity WIKI
Перейти к: навигация, поиск
м (Ролевая политика)
м (Службы)
Строка 263: Строка 263:
  
 
= Службы =
 
= Службы =
 +
 +
== IAM ==
 +
 +
=== Опасные роли ===
 +
 +
==== iam:AddUserToGroup ====
 +
 +
Добавить юзера в административную группу:
 +
 +
<syntaxhighlight lang="bash" line="1" enclose="div" style="overflow-x:scroll" >
 +
aws iam add-user-to-group –group-name <название_группы> –user-name <логин>
 +
</syntaxhighlight>
 +
 +
==== iam:PutUserPolicy ====
 +
 +
Право добавить своб политику к ранее скомпрометированным обьектам.
 +
<syntaxhighlight lang="bash" line="1" enclose="div" style="overflow-x:scroll" >
 +
aws iam put-user-policy –user-name <логин< –policy-name my_inline_policy –policy-document file://path/to/administrator/policy.json
 +
</syntaxhighlight>
  
 
== S3 ==
 
== S3 ==
Строка 292: Строка 311:
 
ec2-{ip-seperated}.compute-1.amazonaws.com
 
ec2-{ip-seperated}.compute-1.amazonaws.com
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
 +
=== Опасные роли ===
 +
 +
==== ec2:AssociateIamInstanceProfile ====
 +
 +
Позволяет менять IAM политики/роли/пользователей
  
  
Строка 454: Строка 479:
 
https://{random_id}.mediapackage.{region}.amazonaws.com/in/v1/{random_id}/channel
 
https://{random_id}.mediapackage.{region}.amazonaws.com/in/v1/{random_id}/channel
 
</syntaxhighlight>
 
</syntaxhighlight>
 
  
 
= Ролевая модель =
 
= Ролевая модель =

Версия 19:10, 19 марта 2022

AWS - Amazon Web Service. Одна из первых облачных систем, состоящая из многих сервисов, которые при некорректной настройке оставляют дыры в безопасности.

Организационные моменты

При проведении тестирования на проникновение, требуется предупредить AWS (составить заявку).

Подробнее тут: https://aws.amazon.com/ru/security/penetration-testing/

Общие концепции

Службы

Концепция служб в AWS позволяет автоматизировать многие процессы, включая саму разработку архитектуры.


Это экосистема многих сервисов. И AWS стремится увеличить их количество.

Например, связать сервис сбора логов и сервис по реагированию на инциденты, а результаты класть на сервис S3.


Регионы

AWS разделен на регионы. Часть сервисов кросс-региональные, но большинство привязываются к конкретным регионам.

Регионы AWS
Название региона Endpoint(HTTPS)
us-east-2 rds.us-east-2.amazonaws.com

rds-fips.us-east-2.api.aws

rds.us-east-2.api.aws

rds-fips.us-east-2.amazonaws.com

us-east-1 rds.us-east-1.amazonaws.com

rds-fips.us-east-1.api.aws

rds-fips.us-east-1.amazonaws.com

rds.us-east-1.api.aws

us-west-1 rds.us-west-1.amazonaws.com

rds.us-west-1.api.aws

rds-fips.us-west-1.amazonaws.com

rds-fips.us-west-1.api.aws

us-west-2 rds.us-west-2.amazonaws.com

rds-fips.us-west-2.amazonaws.com

rds.us-west-2.api.aws

rds-fips.us-west-2.api.aws

af-south-1 rds.af-south-1.amazonaws.com

rds.af-south-1.api.aws

ap-east-1 rds.ap-east-1.amazonaws.com

rds.ap-east-1.api.aws

ap-southeast-3 rds.ap-southeast-3.amazonaws.com
ap-south-1 rds.ap-south-1.amazonaws.com

rds.ap-south-1.api.aws

ap-northeast-3 rds.ap-northeast-3.amazonaws.com

rds.ap-northeast-3.api.aws

ap-northeast-2 rds.ap-northeast-2.amazonaws.com

rds.ap-northeast-2.api.aws

ap-southeast-1 rds.ap-southeast-1.amazonaws.com

rds.ap-southeast-1.api.aws

ap-southeast-2 rds.ap-southeast-2.amazonaws.com

rds.ap-southeast-2.api.aws

ap-northeast-1 rds.ap-northeast-1.amazonaws.com

rds.ap-northeast-1.api.aws

ca-central-1 rds.ca-central-1.amazonaws.com

rds.ca-central-1.api.aws

rds-fips.ca-central-1.api.aws

rds-fips.ca-central-1.amazonaws.com

eu-central-1 rds.eu-central-1.amazonaws.com

rds.eu-central-1.api.aws

eu-west-1 rds.eu-west-1.amazonaws.com

rds.eu-west-1.api.aws

eu-west-2 rds.eu-west-2.amazonaws.com

rds.eu-west-2.api.aws

eu-south-1 rds.eu-south-1.amazonaws.com

rds.eu-south-1.api.aws

eu-west-3 rds.eu-west-3.amazonaws.com

rds.eu-west-3.api.aws

eu-north-1 rds.eu-north-1.amazonaws.com

rds.eu-north-1.api.aws

me-south-1 rds.me-south-1.amazonaws.com

rds.me-south-1.api.aws

sa-east-1 rds.sa-east-1.amazonaws.com

rds.sa-east-1.api.aws

us-gov-east-1 rds.us-gov-east-1.amazonaws.com
us-gov-west-1 rds.us-gov-west-1.amazonaws.com

Или только регионы (могут пригодиться при переборе):

us-east-2
us-east-1
us-west-1
us-west-2
af-south-1
ap-east-1
ap-southeast-3
ap-south-1
ap-northeast-3
ap-northeast-2
ap-southeast-1
ap-southeast-2
ap-northeast-1
ca-central-1
eu-central-1
eu-west-1
eu-west-2
eu-south-1
eu-west-3
eu-north-1
me-south-1
sa-east-1
us-gov-east-1
us-gov-west-1

Доступы

Ролевые политики

Консольная утилита(awscli)

Чаще всего для взаимодействия с сервисами AWS вам потребуется консольная утилита awscli.

Утилита работает с настроенными профилями.

Файлы

~/.aws/credentials

Файл с учетными данными профилей. Перефразирую: получив данные из этого файла вы, вероятнее всего, получите контроль над аккаунтами в нем.

У каждого профиля будет указан:

  • Access Key ID
  • Access Key
  • Access Token - не всегда указывается

Полный список параметров можно посмотреть тут: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html#cli-configure-files-settings

Пример содержимого файла (сохранен профиль default):

[default]
aws_access_key_id=AKIAIOSFODNN7EXAMPLE
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
aws_session_token = AQoEXAMPLEH4aoAH0gNCAPyJxz4BlCFFxWNE1OPTgk5TthT+FvwqnKwRcOIfrRh3c/LTo6UDdyJwOOvEVPvLXCrrrUtdnniCEXAMPLE/IvU1dYUg2RVAJBanLiHb4IgRmpRV3zrkuWJOgQs8IZZaIv2BXIa2R4Olgk

~/.aws/config

Файл с региональными настройками профиля(регион по-умолчанию).

[default]
region=us-west-2
output=json

~/.aws/cli/cache

Закешированные учетные данные

~/.aws/sso/cache

Закешированные данные Single-Sign-On

Команды

Общее построение команды выглядит как:

aws <название_сервиса> <действие> <дополнительные_аргументы>

Примеры:

# Вывести все S3-хранилища.
aws s3 ls

# Создание нового пользователя - сервис IAM
aws iam create-user --user-name aws-admin2

Локальные файлы

Службы

IAM

Опасные роли

iam:AddUserToGroup

Добавить юзера в административную группу:

aws iam add-user-to-group –group-name <название_группы> –user-name <логин>

iam:PutUserPolicy

Право добавить своб политику к ранее скомпрометированным обьектам.

aws iam put-user-policy –user-name <логин< –policy-name my_inline_policy –policy-document file://path/to/administrator/policy.json

S3

Файловое хранилище.

Формат ссылки:

https://{user_provided}.s3.amazonaws.com

CloudFront

Сервис сети доставки контента (CDN).


Формат ссылки:

https://{random_id}.cloudfront.net

EC2 (Elastic Compute Cloud)

EC2 (Amazon Elastic Compute Cloud) == VPS


Формат ссылки:

ec2-{ip-seperated}.compute-1.amazonaws.com

Опасные роли

ec2:AssociateIamInstanceProfile

Позволяет менять IAM политики/роли/пользователей


ES (ElasticSearch)

ElasticSearch от AWS. Используется для просмотра логов/журналов, поиска на вебсайте и тд.

Формат ссылки:

https://{user_provided}-{random_id}.{region}.es.amazonaws.com


ELB (Elastic Load Balancing)

Балансировщик нагрузки.


Формат ссылки (elb_v1):

http://{user_provided}-{random_id}.{region}.elb.amazonaws.com:80/443

Формат ссылки (elb_v2):

https://{user_provided}-{random_id}.{region}.elb.amazonaws.com

RDS (Relational Database Service)

Облачная реляционная база данных (на выбор).

Формат ссылки:

mysql://{user_provided}.{random_id}.{region}.rds.amazonaws.com:3306
postgres://{user_provided}.{random_id}.{region}.rds.amazonaws.com:5432

Route 53

Настраиваемая служба DNS.

Формат ссылки:

{user_provided}

API Gateway

API-сервис, который будет доступен почти со всех серверов.

Формат ссылки:

https://{restapi_id}.execute-api.{region}.amazonaws.com/{stage_name}/
https://{random_id}.execute-api.{region}.amazonaws.com/{user_provided}

CloudSearch

Альтернатива сервису ElasticSearch. Система для упрощения поиска для администрирования и, например, на вебсайте.


Формат ссылки:

https://doc-{user_provided}-{random_id}.{region}.cloudsearch.amazonaws.com

Transfer Family

Группа сервисов для передачи файлов (S3/EFS) по (SFTP, FTPS, FTP).

Формат ссылки:

sftp://s-{random_id}.server.transfer.{region}.amazonaws.com
ftps://s-{random_id}.server.transfer.{region}.amazonaws.com
ftp://s-{random_id}.server.transfer.{region}.amazonaws.com


IoT (Internet Of Things)

Сервис для управления IoT-устройствами.

Формат ссылки:

mqtt://{random_id}.iot.{region}.amazonaws.com:8883
https://{random_id}.iot.{region}.amazonaws.com:8443
https://{random_id}.iot.{region}.amazonaws.com:443

MQ

Сервис брокера сообщений для Apache ActiveMQ & RabbitMQ.


Формат ссылки:

https://b-{random_id}-{1,2}.mq.{region}.amazonaws.com:8162
ssl://b-{random_id}-{1,2}.mq.{region}.amazonaws.com:61617

MSK (Managed Streaming for Apache Kafka)

Сервис потоковой передачи данных в Apache Kafka.


Формат ссылки:

b-{1,2,3,4}.{user_provided}.{random_id}.c{1,2}.kafka.{region}.amazonaws.com
{user_provided}.{random_id}.c{1,2}.kafka.useast-1.amazonaws.com

Cloud9

Облачная интегрированная среда разработки(IDE) используя только браузер.

Формат ссылки:

https://{random_id}.vfs.cloud9.{region}.amazonaws.com


MediaStore

Cервис хранилища AWS, оптимизированный для мультимедийных материалов.


Формат ссылки:

https://{random_id}.data.mediastore.{region}.amazonaws.com


Kinesis Video Streams

Обеспечивает простую и безопасную потоковую передачу видео с подключенных устройств в AWS для воспроизведения, аналитики, машинного обучения (ML) и других видов обработки.


Формат ссылки:

https://{random_id}.kinesisvideo.{region}.amazonaws.com


Elemental MediaConvert

Сервис перекодирования видеофайлов с возможностями на уровне вещательных компаний. Он позволяет просто создавать контент в формате «видео по требованию» (VOD) для трансляций, в том числе мультиэкранных, в любом масштабе.

Формат ссылки:

https://{random_id}.mediaconvert.{region}.amazonaws.com


Elemental MediaPackage

Cервис для подготовки и защиты видеоконтента, распространяемого через Интернет. AWS Elemental MediaPackage использует один источник видео и создает на его основе специализированные видеопотоки для воспроизведения на подключенных телевизорах, мобильных телефонах, компьютерах, планшетах и игровых консолях.


Формат ссылки:

https://{random_id}.mediapackage.{region}.amazonaws.com/in/v1/{random_id}/channel

Ролевая модель

Почти все описание доступа идет через роли.


Каждая роль состоит из следующих компонентов:

  • Ресурс - цель, кому выдается правило. Может быть:
    • Пользователь
    • Группа, в которой могут быть аккаунты по какому то признаку
    • Другая роль.
  • Роль(Action) - какое-либо действие (например, iam:ListGroupPolicies - посмотреть список груповых политик)
  • Тип правила(Effect) - разрешение или запрет.
  • Политика(Policy) - совокупность Роль(действие) -> разрешение/запрет -> Ресурс(кому).
  • Условия(Condition) - отдельные условия, например, ip.

Пример политики:

"Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "iam:GetGroup",
        "iam:GetLoginProfile",
        "iam:GetUser",
        "iam:ListAccessKeys",
        "iam:ListAccountAliases",
        "iam:ListGroupPolicies",
        "iam:ListGroups",
        "iam:ListGroupsForUser",
        "iam:ListMFADevices",
        "iam:ListSigningCertificates",
        "iam:ListUsers",
        "iam:GetServerCertificate",
        "iam:ListServerCertificates",
      ],
      "Resource": "*"
    }
]

Определение ролей

Вручную

TODO команды по определению своих ролей

Автоматизированно

Эксплуатация

Эксплуатация будет разделена на выданные роли.

Административный доступ

Как выглядит роль с административным доступом:

"Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "*"
      ],
      "Resource": "*"
    }
]

IAM

iam:AddUserToGroup

Добавить юзера в административную группу:

aws iam add-user-to-group –group-name <название_группы> –user-name <логин>

iam:PutUserPolicy

Право добавить своб политику к ранее скомпрометированным обьектам.

aws iam put-user-policy –user-name <логин< –policy-name my_inline_policy –policy-document file://path/to/administrator/policy.json


EC2

ec2:AssociateIamInstanceProfile

Позволяет менять IAM политики/роли/пользователей

Утилиты

Ссылки

Статьи

Лаборатории

Damn Vulnerable Cloud Application

SadCloud

Flaws

Краткие заметки

PayloadAllTheThings