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

Материал из InformationSecurity WIKI
Перейти к: навигация, поиск
м (Службы)
м
Строка 259: Строка 259:
 
aws iam create-user --user-name aws-admin2
 
aws iam create-user --user-name aws-admin2
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
 +
= Ролевая модель =
 +
 +
Почти все описание доступа идет через роли.
 +
 +
 +
Каждая роль состоит из следующих компонентов:
 +
 +
* Ресурс - цель, кому выдается правило. Может быть:
 +
** Пользователь
 +
** Группа, в которой могут быть аккаунты по какому то признаку
 +
** Другая роль.
 +
 +
* Роль(Action) - какое-либо действие (например, iam:ListGroupPolicies - посмотреть список груповых политик)
 +
 +
* Тип правила(Effect) - разрешение или запрет.
 +
 +
* Политика(Policy) - совокупность Роль(действие) -> разрешение/запрет -> Ресурс(кому).
 +
 +
* Условия(Condition) - отдельные условия, например, ip.
 +
 +
Пример политики:
 +
<syntaxhighlight lang="json" line="1" enclose="div" style="overflow-x:scroll" >
 +
"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": "*"
 +
    }
 +
]
 +
</syntaxhighlight>
 +
 +
== Определение ролей ==
 +
 +
=== Вручную ===
 +
TODO команды по определению своих ролей
 +
 +
=== Автоматизированно ===
 +
 +
== Эксплуатация ==
 +
 +
Когда вы определили, какие роли у вас есть, перейдите выше на соответствующий сервис, к которому идет данная роль и прочтите как ее эксплуатировать.
 +
 +
 +
Тут будут отдельные роли, которые не прикреплены ни к одному сервису.
 +
 +
=== Административный доступ ===
 +
 +
Как выглядит роль с административным доступом:
 +
<syntaxhighlight lang="json" line="1" enclose="div" style="overflow-x:scroll" >
 +
"Statement": [
 +
    {
 +
      "Effect": "Allow",
 +
      "Action": [
 +
        "*"
 +
      ],
 +
      "Resource": "*"
 +
    }
 +
]
 +
</syntaxhighlight>
 +
  
 
= Локальные файлы =
 
= Локальные файлы =
Строка 480: Строка 555:
 
<syntaxhighlight lang="bash" line="1" enclose="div" style="overflow-x:scroll" >
 
<syntaxhighlight lang="bash" line="1" enclose="div" style="overflow-x:scroll" >
 
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>
 
 
= Ролевая модель =
 
 
Почти все описание доступа идет через роли.
 
 
 
Каждая роль состоит из следующих компонентов:
 
 
* Ресурс - цель, кому выдается правило. Может быть:
 
** Пользователь
 
** Группа, в которой могут быть аккаунты по какому то признаку
 
** Другая роль.
 
 
* Роль(Action) - какое-либо действие (например, iam:ListGroupPolicies - посмотреть список груповых политик)
 
 
* Тип правила(Effect) - разрешение или запрет.
 
 
* Политика(Policy) - совокупность Роль(действие) -> разрешение/запрет -> Ресурс(кому).
 
 
* Условия(Condition) - отдельные условия, например, ip.
 
 
Пример политики:
 
<syntaxhighlight lang="json" line="1" enclose="div" style="overflow-x:scroll" >
 
"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": "*"
 
    }
 
]
 
</syntaxhighlight>
 
 
== Определение ролей ==
 
 
=== Вручную ===
 
TODO команды по определению своих ролей
 
 
=== Автоматизированно ===
 
 
== Эксплуатация ==
 
 
Когда вы определили, какие роли у вас есть, перейдите выше на соответствующий сервис, к которому идет данная роль и прочтите как ее эксплуатировать.
 
 
 
Тут будут отдельные роли, которые не прикреплены ни к одному сервису.
 
 
=== Административный доступ ===
 
 
Как выглядит роль с административным доступом:
 
<syntaxhighlight lang="json" line="1" enclose="div" style="overflow-x:scroll" >
 
"Statement": [
 
    {
 
      "Effect": "Allow",
 
      "Action": [
 
        "*"
 
      ],
 
      "Resource": "*"
 
    }
 
]
 
 
</syntaxhighlight>
 
</syntaxhighlight>
  

Версия 19:20, 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

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

 1 us-east-2
 2 us-east-1
 3 us-west-1
 4 us-west-2
 5 af-south-1
 6 ap-east-1
 7 ap-southeast-3
 8 ap-south-1
 9 ap-northeast-3
10 ap-northeast-2
11 ap-southeast-1
12 ap-southeast-2
13 ap-northeast-1
14 ca-central-1
15 eu-central-1
16 eu-west-1
17 eu-west-2
18 eu-south-1
19 eu-west-3
20 eu-north-1
21 me-south-1
22 sa-east-1
23 us-gov-east-1
24 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):

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

~/.aws/config

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

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

~/.aws/cli/cache

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

~/.aws/sso/cache

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

Команды

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

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

Примеры:

1 # Вывести все S3-хранилища.
2 aws s3 ls
3 
4 # Создание нового пользователя - сервис IAM
5 aws iam create-user --user-name aws-admin2

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

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


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

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

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

 1 "Statement": [
 2     {
 3       "Effect": "Allow",
 4       "Action": [
 5         "iam:GetGroup",
 6         "iam:GetLoginProfile",
 7         "iam:GetUser",
 8         "iam:ListAccessKeys",
 9         "iam:ListAccountAliases",
10         "iam:ListGroupPolicies",
11         "iam:ListGroups",
12         "iam:ListGroupsForUser",
13         "iam:ListMFADevices",
14         "iam:ListSigningCertificates",
15         "iam:ListUsers",
16         "iam:GetServerCertificate",
17         "iam:ListServerCertificates",
18       ],
19       "Resource": "*"
20     }
21 ]

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

Вручную

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

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

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

Когда вы определили, какие роли у вас есть, перейдите выше на соответствующий сервис, к которому идет данная роль и прочтите как ее эксплуатировать.


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

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

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

1 "Statement": [
2     {
3       "Effect": "Allow",
4       "Action": [
5         "*"
6       ],
7       "Resource": "*"
8     }
9 ]


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

Службы

IAM

Сервис по обеспечению контроля доступа. Подробнее про ролевую модель можно почитать в соответствующей главе.

Опасные роли

iam:AddUserToGroup

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

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

iam:PutUserPolicy

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

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

S3

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

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

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

CloudFront

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


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

1 https://{random_id}.cloudfront.net

EC2 (Elastic Compute Cloud)

EC2 (Amazon Elastic Compute Cloud) == VPS


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

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

Опасные роли

ec2:AssociateIamInstanceProfile

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


ES (ElasticSearch)

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

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

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


ELB (Elastic Load Balancing)

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


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

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

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

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

RDS (Relational Database Service)

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

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

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

Route 53

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

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

1 {user_provided}

API Gateway

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

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

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

CloudSearch

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


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

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

Transfer Family

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

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

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


IoT (Internet Of Things)

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

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

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

MQ

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


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

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

MSK (Managed Streaming for Apache Kafka)

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


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

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

Cloud9

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

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

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


MediaStore

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


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

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


Kinesis Video Streams

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


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

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


Elemental MediaConvert

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

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

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


Elemental MediaPackage

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


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

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

Утилиты

Ссылки

Статьи

Лаборатории

Damn Vulnerable Cloud Application

SadCloud

Flaws

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

PayloadAllTheThings