AWS - Relational Database (RDS) Enum

Підтримайте HackTricks

Основна інформація

Relational Database Service (RDS), що пропонується AWS, призначена для спрощення розгортання, експлуатації та масштабування реляційної бази даних у хмарі. Ця послуга пропонує переваги економічної ефективності та масштабованості, автоматизуючи трудомісткі завдання, такі як налаштування апаратного забезпечення, конфігурація бази даних, патчинг та резервне копіювання.

AWS RDS підтримує різні широко використовувані реляційні бази даних, включаючи MySQL, PostgreSQL, MariaDB, Oracle Database, Microsoft SQL Server та Amazon Aurora, з сумісністю як для MySQL, так і для PostgreSQL.

Ключові особливості RDS включають:

  • Управління екземплярами бази даних спрощено.

  • Створення реплік для читання для покращення продуктивності читання.

  • Конфігурація розгортань у кількох зонах доступності (AZ) для забезпечення високої доступності та механізмів відновлення після збоїв.

  • Інтеграція з іншими сервісами AWS, такими як:

  • AWS Identity and Access Management (IAM) для надійного контролю доступу.

  • AWS CloudWatch для всебічного моніторингу та метрик.

  • AWS Key Management Service (KMS) для забезпечення шифрування даних у стані спокою.

Облікові дані

При створенні кластера бази даних можна налаштувати основне ім'я користувача (admin за замовчуванням). Щоб згенерувати пароль для цього користувача, ви можете:

  • Вказати пароль самостійно

  • Доручити RDS автоматично згенерувати його

  • Доручити RDS керувати ним у AWS Secret Manager, зашифрованому за допомогою ключа KMS

Аутентифікація

Існує 3 типи варіантів аутентифікації, але використання основного пароля завжди дозволено:

Публічний доступ та VPC

За замовчуванням публічний доступ до баз даних не надається, однак його можна надати. Тому, за замовчуванням, лише машини з тієї ж VPC зможуть отримати доступ до бази даних, якщо вибрана група безпеки (зберігається в EC2 SG) дозволяє це.

Замість того, щоб відкривати екземпляр бази даних, можна створити RDS Proxy, який покращує масштабованість та доступність кластера бази даних.

Крім того, порт бази даних також можна змінити.

Шифрування

Шифрування увімкнено за замовчуванням за допомогою керованого ключа AWS (можна вибрати CMK).

Увімкнувши шифрування, ви увімкнете шифрування даних у стані спокою для вашого сховища, знімків, реплік для читання та резервних копій. Ключі для управління цим шифруванням можна видати за допомогою KMS. Неможливо додати цей рівень шифрування після створення бази даних. Це потрібно зробити під час її створення.

Однак існує обхідний шлях, що дозволяє зашифрувати незашифровану базу даних наступним чином. Ви можете створити знімок вашої незашифрованої бази даних, створити зашифровану копію цього знімка, використати цей зашифрований знімок для створення нової бази даних, і тоді ваша база даних буде зашифрована.

Прозоре шифрування даних (TDE)

Поряд з можливостями шифрування, властивими RDS на рівні додатків, RDS також підтримує додаткові механізми шифрування на рівні платформи для захисту даних у стані спокою. Це включає Прозоре шифрування даних (TDE) для Oracle та SQL Server. Однак важливо зазначити, що хоча TDE підвищує безпеку шляхом шифрування даних у стані спокою, це також може вплинути на продуктивність бази даних. Цей вплив на продуктивність особливо помітний при використанні з криптографічними функціями MySQL або криптографічними функціями Microsoft Transact-SQL.

Для використання TDE необхідні певні попередні кроки:

  1. Асоціація з групою опцій:

  • База даних повинна бути асоційована з групою опцій. Групи опцій служать контейнерами для налаштувань та функцій, полегшуючи управління базою даних, включаючи покращення безпеки.

  • Однак важливо зазначити, що групи опцій доступні лише для певних двигунів баз даних та версій.

  1. Включення TDE у групу опцій:

  • Після асоціації з групою опцій, опція Oracle Transparent Data Encryption повинна бути включена до цієї групи.

  • Важливо розуміти, що після додавання опції TDE до групи опцій, вона стає постійною і не може бути видалена.

  1. Режими шифрування TDE:

  • TDE пропонує два різні режими шифрування:

  • Шифрування простору таблиць TDE: Цей режим шифрує цілі таблиці, забезпечуючи ширший обсяг захисту даних.

  • Шифрування стовпців TDE: Цей режим зосереджується на шифруванні конкретних, окремих елементів у базі даних, дозволяючи більш детальний контроль над тим, які дані зашифровані.

Розуміння цих передумов та операційних тонкощів TDE є важливим для ефективного впровадження та управління шифруванням у RDS, забезпечуючи як безпеку даних, так і відповідність необхідним стандартам.

Перерахування

# Clusters info
## Get Endpoints, username, port, iam auth enabled, attached roles, SG
aws rds describe-db-clusters
aws rds describe-db-cluster-endpoints #Cluster URLs
aws rds describe-db-cluster-backtracks --db-cluster-identifier <cluster-name>

## Cluster snapshots
aws rds describe-db-cluster-snapshots

# Get DB instances info
aws rds describe-db-instances #username, url, port, vpc, SG, is public?
aws rds describe-db-security-groups

## Find automated backups
aws rds describe-db-instance-automated-backups

## Find snapshots
aws rds describe-db-snapshots
aws rds describe-db-snapshots --include-public --snapshot-type public
## Restore snapshot as new instance
aws rds restore-db-instance-from-db-snapshot --db-instance-identifier <ID> --db-snapshot-identifier <ID> --availability-zone us-west-2a

# Any public snapshot in the account
aws rds describe-db-snapshots --snapshot-type public

# Proxies
aws rds describe-db-proxy-endpoints
aws rds describe-db-proxy-target-groups
aws rds describe-db-proxy-targets

## reset credentials of MasterUsername
aws rds modify-db-instance --db-instance-identifier <ID> --master-user-password <NewPassword> --apply-immediately

Неавтентифікований доступ

AWS - RDS Unauthenticated Enum

Підвищення привілеїв

AWS - RDS Privesc

Постексплуатація

AWS - RDS Post Exploitation

Збереження доступу

AWS - RDS Persistence

SQL Injection

Існують способи доступу до даних DynamoDB за допомогою SQL синтаксису, тому типові SQL ін'єкції також можливі.

Підтримайте HackTricks

Last updated