AWS - Relational Database (RDS) Enum
Last updated
Last updated
Aprende y practica Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE)
El Servicio de Base de Datos Relacional (RDS) ofrecido por AWS está diseñado para simplificar el despliegue, operación y escalado de una base de datos relacional en la nube. Este servicio ofrece las ventajas de eficiencia de costos y escalabilidad mientras automatiza tareas laboriosas como la provisión de hardware, configuración de bases de datos, parches y copias de seguridad.
AWS RDS soporta varios motores de bases de datos relacionales ampliamente utilizados, incluyendo MySQL, PostgreSQL, MariaDB, Oracle Database, Microsoft SQL Server y Amazon Aurora, con compatibilidad para MySQL y PostgreSQL.
Las características clave de RDS incluyen:
La gestión de instancias de base de datos es simplificada.
Creación de réplicas de lectura para mejorar el rendimiento de lectura.
Configuración de despliegues en múltiples Zonas de Disponibilidad (AZ) para asegurar alta disponibilidad y mecanismos de conmutación por error.
Integración con otros servicios de AWS, como:
AWS Identity and Access Management (IAM) para un control de acceso robusto.
AWS CloudWatch para monitoreo y métricas completas.
AWS Key Management Service (KMS) para asegurar la encriptación en reposo.
Al crear el clúster de DB, el nombre de usuario maestro puede ser configurado (admin
por defecto). Para generar la contraseña de este usuario puedes:
Indicar una contraseña tú mismo
Decirle a RDS que la genere automáticamente
Decirle a RDS que la gestione en AWS Secret Manager encriptada con una clave KMS
Hay 3 tipos de opciones de autenticación, pero usar la contraseña maestra siempre está permitido:
Por defecto no se concede acceso público a las bases de datos, sin embargo, podría concederse. Por lo tanto, por defecto solo las máquinas de la misma VPC podrán acceder si el grupo de seguridad seleccionado (almacenado en EC2 SG) lo permite.
En lugar de exponer una instancia de DB, es posible crear un RDS Proxy que mejora la escalabilidad y disponibilidad del clúster de DB.
Además, el puerto de la base de datos puede ser modificado también.
La encriptación está habilitada por defecto usando una clave gestionada por AWS (se podría elegir una CMK en su lugar).
Al habilitar tu encriptación, estás habilitando la encriptación en reposo para tu almacenamiento, instantáneas, réplicas de lectura y tus copias de seguridad. Las claves para gestionar esta encriptación pueden ser emitidas usando KMS. No es posible añadir este nivel de encriptación después de que tu base de datos ha sido creada. Tiene que hacerse durante su creación.
Sin embargo, hay un método alternativo que te permite encriptar una base de datos no encriptada de la siguiente manera. Puedes crear una instantánea de tu base de datos no encriptada, crear una copia encriptada de esa instantánea, usar esa instantánea encriptada para crear una nueva base de datos y, finalmente, tu base de datos estaría encriptada.
Junto con las capacidades de encriptación inherentes a RDS a nivel de aplicación, RDS también soporta mecanismos de encriptación adicionales a nivel de plataforma para salvaguardar los datos en reposo. Esto incluye Encriptación de Datos Transparente (TDE) para Oracle y SQL Server. Sin embargo, es crucial notar que aunque TDE mejora la seguridad al encriptar datos en reposo, también puede afectar el rendimiento de la base de datos. Este impacto en el rendimiento es especialmente notable cuando se utiliza en conjunto con funciones criptográficas de MySQL o funciones criptográficas de Microsoft Transact-SQL.
Para utilizar TDE, se requieren ciertos pasos preliminares:
Asociación de Grupo de Opciones:
La base de datos debe estar asociada con un grupo de opciones. Los grupos de opciones sirven como contenedores para configuraciones y características, facilitando la gestión de bases de datos, incluyendo mejoras de seguridad.
Sin embargo, es importante notar que los grupos de opciones solo están disponibles para motores de bases de datos y versiones específicas.
Inclusión de TDE en el Grupo de Opciones:
Una vez asociada con un grupo de opciones, la opción de Encriptación de Datos Transparente de Oracle necesita ser incluida en ese grupo.
Es esencial reconocer que una vez que la opción TDE se añade a un grupo de opciones, se convierte en un elemento permanente y no puede ser removido.
Modos de Encriptación TDE:
TDE ofrece dos modos de encriptación distintos:
Encriptación de Tablespace TDE: Este modo encripta tablas enteras, proporcionando un alcance más amplio de protección de datos.
Encriptación de Columna TDE: Este modo se centra en encriptar elementos específicos e individuales dentro de la base de datos, permitiendo un control más granular sobre qué datos se encriptan.
Entender estos requisitos previos y las complejidades operativas de TDE es crucial para implementar y gestionar eficazmente la encriptación dentro de RDS, asegurando tanto la seguridad de los datos como el cumplimiento de los estándares necesarios.
Hay formas de acceder a los datos de DynamoDB con sintaxis SQL, por lo tanto, inyecciones SQL típicas también son posibles.
Aprende y practica Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE)