AWS - Relational Database (RDS) Enum
Last updated
Last updated
Aprenda e pratique Hacking AWS:HackTricks Treinamento AWS Red Team Expert (ARTE) Aprenda e pratique Hacking GCP: HackTricks Treinamento GCP Red Team Expert (GRTE)
O Serviço de Banco de Dados Relacional (RDS) oferecido pela AWS é projetado para simplificar a implantação, operação e escalabilidade de um banco de dados relacional na nuvem. Este serviço oferece as vantagens de eficiência de custo e escalabilidade, enquanto automatiza tarefas que consomem muito tempo, como provisionamento de hardware, configuração de banco de dados, aplicação de patches e backups.
O AWS RDS suporta vários mecanismos de banco de dados relacionais amplamente utilizados, incluindo MySQL, PostgreSQL, MariaDB, Oracle Database, Microsoft SQL Server e Amazon Aurora, com compatibilidade para MySQL e PostgreSQL.
As principais características do RDS incluem:
Gerenciamento de instâncias de banco de dados é simplificado.
Criação de réplicas de leitura para melhorar o desempenho de leitura.
Configuração de implantações em múltiplas Zonas de Disponibilidade (AZ) para garantir alta disponibilidade e mecanismos de failover.
Integração com outros serviços da AWS, como:
AWS Identity and Access Management (IAM) para controle de acesso robusto.
AWS CloudWatch para monitoramento e métricas abrangentes.
AWS Key Management Service (KMS) para garantir criptografia em repouso.
Ao criar o cluster de DB, o nome de usuário mestre pode ser configurado (admin
por padrão). Para gerar a senha deste usuário, você pode:
Indicar uma senha você mesmo
Dizer ao RDS para gerar automaticamente
Dizer ao RDS para gerenciá-la no AWS Secret Manager criptografada com uma chave KMS
Existem 3 tipos de opções de autenticação, mas usar a senha mestre é sempre permitido:
Por padrão, nenhum acesso público é concedido aos bancos de dados, no entanto, pode ser concedido. Portanto, por padrão, apenas máquinas da mesma VPC poderão acessá-lo se o grupo de segurança selecionado (armazenado no SG do EC2) permitir.
Em vez de expor uma instância de DB, é possível criar um RDS Proxy que melhora a escalabilidade e disponibilidade do cluster de DB.
Além disso, a porta do banco de dados pode ser modificada também.
A criptografia é habilitada por padrão usando uma chave gerenciada pela AWS (uma CMK pode ser escolhida em vez disso).
Ao habilitar sua criptografia, você está habilitando criptografia em repouso para seu armazenamento, snapshots, réplicas de leitura e seus backups. As chaves para gerenciar essa criptografia podem ser emitidas usando KMS. Não é possível adicionar esse nível de criptografia após a criação do seu banco de dados. Isso deve ser feito durante sua criação.
No entanto, existe uma solução alternativa que permite criptografar um banco de dados não criptografado da seguinte forma. Você pode criar um snapshot do seu banco de dados não criptografado, criar uma cópia criptografada desse snapshot, usar esse snapshot criptografado para criar um novo banco de dados e, finalmente, seu banco de dados estaria criptografado.
Além das capacidades de criptografia inerentes ao RDS no nível da aplicação, o RDS também suporta mecanismos adicionais de criptografia em nível de plataforma para proteger dados em repouso. Isso inclui Criptografia de Dados Transparente (TDE) para Oracle e SQL Server. No entanto, é crucial notar que, embora o TDE melhore a segurança ao criptografar dados em repouso, ele também pode afetar o desempenho do banco de dados. Esse impacto no desempenho é especialmente notável quando usado em conjunto com funções criptográficas do MySQL ou funções criptográficas do Microsoft Transact-SQL.
Para utilizar o TDE, certos passos preliminares são necessários:
Associação de Grupo de Opções:
O banco de dados deve estar associado a um grupo de opções. Os grupos de opções servem como contêineres para configurações e recursos, facilitando o gerenciamento do banco de dados, incluindo melhorias de segurança.
No entanto, é importante notar que os grupos de opções estão disponíveis apenas para mecanismos de banco de dados e versões específicas.
Inclusão do TDE no Grupo de Opções:
Uma vez associado a um grupo de opções, a opção de Criptografia de Dados Transparente da Oracle precisa ser incluída nesse grupo.
É essencial reconhecer que, uma vez que a opção TDE é adicionada a um grupo de opções, ela se torna uma característica permanente e não pode ser removida.
Modos de Criptografia TDE:
O TDE oferece dois modos distintos de criptografia:
Criptografia de Tablespace TDE: Este modo criptografa tabelas inteiras, proporcionando um escopo mais amplo de proteção de dados.
Criptografia de Coluna TDE: Este modo foca na criptografia de elementos específicos e individuais dentro do banco de dados, permitindo um controle mais granular sobre quais dados são criptografados.
Compreender esses pré-requisitos e as complexidades operacionais do TDE é crucial para implementar e gerenciar efetivamente a criptografia dentro do RDS, garantindo tanto a segurança dos dados quanto a conformidade com os padrões necessários.
Existem maneiras de acessar dados do DynamoDB com sintaxe SQL, portanto, injeções SQL típicas também são possíveis.
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)