Cómo Auditar Acciones Administrativas en su Oracle RDS y EC2
Prefacio
Amazon Relational Database Service (Amazon RDS) es un servicio web que facilita la configuración, operación y escalado de una base de datos relacional en la nube de AWS. Proporciona una capacidad rentable y redimensionable para una base de datos relacional de estándar industrial y maneja tareas comunes de administración de base de datos.
DataSunrise es un Socio de Tecnología Avanzada de AWS certificado en la competencia de Seguridad en Protección y Encriptación de Datos junto con otras cualificaciones validadas por AWS. DataSunrise puede ejecutarse en las instalaciones, en una caja EC2 o como un clúster en varias instancias EC2, en una máquina virtual o en hardware bare-metal. DataSunrise Data and Database Security Suite (DataSunrise) para todo tipo de Amazon RDS actúa como un firewall de aplicaciones de base de datos (DAF) actuando como un intermediario para todas las sesiones, consultas y comandos de cualquier cliente a la instancia de Amazon RDS. Y dado que DataSunrise es el software y no una solución SaaS, usted es responsable de configurar y configurar su instancia de DataSunrise de la manera correcta.
El objetivo principal de este artículo es presentar el enfoque sobre cómo auditar la actividad de cuentas privilegiadas. Veremos cómo configurar DataSunrise para auditar la actividad de DBA en Oracle RDS. Sin embargo, todos los pasos generales se aplican a cualquier instancia de Amazon RDS.
Descripción general de Oracle RDS y los requisitos previos
Como probablemente sepa, Amazon RDS admite el acceso a bases de datos utilizando cualquier aplicación cliente SQL estándar y no permite el acceso directo al host con SSH, etc. Esta arquitectura no le permite instalar agentes de base de datos en Amazon RDS y lo limita en el uso de privilegios poderosos de DBA como SYSDBA. Amazon RDS emplea un modelo de responsabilidad compartida que excluye la intervención humana directa en la plataforma informática. Sin embargo, con Amazon RDS puede realizar sus tareas de formas ligeramente diferentes y unificadas. Por ejemplo, el DBA puede acceder a los registros de la base de datos o hacer copias de seguridad de las instancias de Amazon RDS con instantáneas utilizando AWS Management Console, AWS CLI o RDS API. Por otro lado, no puede acceder a Amazon RDS utilizando conexiones SSH o RDP para actividades relacionadas con la base de datos o el sistema operativo, que probablemente sean dañinas. Así que tenga en cuenta que al tener el rol de IAM requerido, puede modificar y gestionar su instancia de Amazon RDS para cumplir con los requisitos de su sistema sin conectarse a Amazon RDS a través de SSH/RDP.
Un aspecto importante está relacionado con los privilegios/roles de Oracle SYSDBA y similares. El rol SYSDBA está designado solo para el usuario RDSADMIN (AWS usa el usuario del sistema operativo “rdshm”) y se desconoce la contraseña de RDSADMIN. Además, con Oracle RDS no puede conocer la contraseña del usuario SYS. Y todas estas cosas significan que:
- no puede conectarse a su Oracle RDS usando el usuario RDSADMIN o SYS;
- sus usuarios de base de datos no pueden obtener el rol SYSDBA u otro rol poderoso de la base de datos Oracle;
- no puede conectarse remotamente a la instancia de Oracle RDS usando SYSDBA u otro rol poderoso de la base de datos Oracle.
Estos privilegios limitados aseguran y protegen cada instancia de RDS. Oracle RDS crea para usted un usuario DBA limitado (por ejemplo, el usuario “admin” por defecto) para que pueda conectarse a la instancia de Oracle RDS usando este usuario. Posteriormente puede crear otro usuario y este nuevo usuario no obtendrá más privilegios que los que tiene su usuario “admin”. Nuevamente, esto está relacionado con el modelo de responsabilidad compartida de la gestión en AWS. El equipo de Amazon RDS ha establecido esta línea roja que no puede cruzar.
Dejaremos la configuración de Oracle RDS fuera del alcance de este artículo y para continuar con los siguientes pasos, necesitará una instancia de Oracle RDS en funcionamiento y esperamos que pueda iniciar un nuevo Oracle RDS o ya tenga acceso a una instancia existente de Oracle RDS. Si desea saber las mejores prácticas para ejecutar Oracle RDS, consulte la documentación de AWS.
En la siguiente sección, veremos qué está disponible para auditar la actividad de DBA.
Actividad de DBA en Oracle RDS y opciones de auditoría
Las limitaciones de las instancias de RDS plantean muchas preguntas sobre cómo auditar acciones específicas de DBA como ALTER SYSTEM, CREATE USER, DROP DATABASE, etc. ¿Y cómo puede auditar a los usuarios internos de RDS como RDSADMIN? Bueno, revisemos todas las opciones disponibles.
- Puede ver la actividad interna de RDS usando Archivos de Registro de la Base de Datos de Amazon RDS Puede ver, descargar y observar los registros de la base de datos utilizando la consola de Amazon RDS, la Interfaz de Línea de Comando de AWS (AWS CLI) o el API de Amazon RDSAPI de Amazon RDS. Amazon ofrece el servicio de recuperación en un momento específico y afirma que RDS sube los registros de transacciones para las instancias de DB a Amazon S3 cada 5 minutos. Por lo tanto, los archivos de registro de la base de datos y el servicio CloudTrail le ayudan a analizar la actividad del usuario RDSADMIN junto con información adicional sobre eventos de Oracle RDS. Todas estas opciones son buenas hasta que necesite monitoreo en tiempo real y alertas de transacciones.
- Con instancias DAF ejecutándose en máquinas virtuales EC2 separadas, puede auditar todas las sesiones y consultas que se ejecuten a través de su instancia de Amazon RDS. El propósito de las instancias DAF es convertirse en su guardián de la base de datos y, dado que necesita monitorear la actividad de DBA, veremos esta opción en detalle más adelante. Las instancias de DataSunrise en cajas EC2 pueden monitorear y asegurar la actividad de la red hacia Amazon RDS.
Descripción general de DataSunrise en AWS y requisitos previos
Configurar instancias seguras de DataSunrise implica varios pasos importantes. Para preparar su instancia segura de DataSunrise en el entorno de AWS, siga los pasos descritos en nuestro documento de Mejores Prácticas de Seguridad de DataSunrise en AWS. Algunos pasos a mencionar son los siguientes:
- asignar roles adecuados de IAM a sus instancias EC2 con instancias de DataSunrise;
- crear y asignar Grupo(s) de Seguridad VPC a su instancia de Amazon RDS y a las instancias EC2 que tienen el software DataSunrise;
- utilice contraseñas seguras y únicas para cada cuenta.
La arquitectura a continuación consiste en una instancia de base de datos (RDS o en una instancia EC2) detrás de DAF, una base de datos de almacenamiento de auditoría separada (RDS o en una instancia EC2) y una instancia de DataSunrise que actúa como servidor proxy para las conexiones de los usuarios.
Como opción, DataSunrise proporciona scripts de CloudFormation para desplegar en AWS soluciones de seguridad de bases de datos seguras y rentables. Después de crear su instancia de Amazon RDS, estos scripts automatizan todas las tareas necesarias para desplegar instancias EC2, instalar DataSunrise en estas instancias EC2, configurar un equilibrador de carga de Amazon así como la creación de todos los demás recursos de AWS requeridos. Omitiremos la opción de CloudFormation y continuaremos con un escenario de instancia única de EC2. Hemos preparado videos sobre cómo instalar la instancia de DataSunrise, por favor vea uno de los videos y siga los pasos requeridos:
- Instalación de DataSunrise en Linux https://www.youtube.com/watch?v=FWoGY2qc0F8
- Instalación de DataSunrise en Windows https://www.youtube.com/watch?v=wKlFUdUUbSE
Al final del proceso de instalación, su instancia de DataSunrise debería ser accesible desde su navegador web. Necesitará la instancia de DataSunrise en funcionamiento para poder acceder a la Consola Web de DataSunrise con los privilegios requeridos.
El siguiente requisito previo es la Configuración de la Base de Datos que debe crear en la instancia de DataSunrise para iniciar un proxy para Amazon RDS. Consulte la Guía del Usuario de DataSunrise, sección “3.1 Creación de un Perfil de Base de Datos de Destino y un Proxy” y sección “5.1.6 Creación de Usuarios de Base de Datos Requeridos para Obtener los Metadatos de la Base de Datos”. Dado que DataSunrise en modo proxy actúa como un intermediario interceptando todos los paquetes TCP no-AWS hacia la instancia de Amazon RDS, puede usar el mismo puerto estándar de la base de datos Oracle 1521 ya que la instancia de DataSunrise está ejecutándose en otra instancia EC2. Finalmente, asegúrese de que su instancia de Amazon RDS NO esté disponible desde cualquier otra IP/nombre y puerto no perteneciente a AWS que no sea a través de la instancia de DataSunrise. Todos estos pasos asegurarán que todas sus aplicaciones cliente puedan acceder a su instancia de Oracle RDS solo a través de su instancia de DataSunrise.
Configurando DataSunrise para auditar a los DBAs
Como mencionamos anteriormente, al crear su Oracle RDS usted recibe una cuenta DBA limitada y su contraseña, por defecto Oracle RDS ofrece el usuario de base de datos “admin” para acceder a su instancia. Y como recuerda, Amazon RDS desactiva el privilegio de SYSDBA para usted. Y eso reduce el área posible de amenazas potenciales hechas a la instancia de Amazon RDS. Si su Oracle RDS es accesible desde su máquina de escritorio intente conectarse a su Oracle RDS como SYSDBA para probar que eso es cierto, vea un ejemplo a continuación.
Verá que no existen privilegios SYSDBA, SYSOPER u otros SYS relacionados disponibles en Oracle RDS, ya sea usando TCP o SSH.
Por lo tanto, debe tomar cuidado auditando las conexiones de red: conexiones remotas utilizando la herramienta adecuada como DataSunrise DAF. Configuraremos la instancia de DataSunrise para capturar cualquier tipo de acción que su DBA pueda realizar remotamente en la instancia de Amazon RDS.
Resumen de los siguientes pasos
Para auditar acciones de DBA, realizaremos los siguientes pasos:
- Identificar los nombres de usuario/cuentas de su DBA. DataSunrise mantiene los Usuarios de Base de Datos bajo su menú de Configuración. Si tiene más de un DBA, entonces cree un nuevo Grupo de Usuarios de Base de Datos en Configuración → Usuarios de Base de Datos. En nuestro ejemplo usaremos al DBA llamado “admin” que fue generado por nuestra instancia de Oracle RDS.
- Usando Configuración → Grupos de Objetos, cree una nueva entrada y agregue un solo ítem con expresión regular “.*”.
- Crear una nueva Regla de Auditoría para incluir el Usuario de Base de Datos y el Grupo de Consultas para Auditar la actividad de DBA.
- Verifique la actividad de DBA en la instancia de DataSunrise.
1. Identificar y configurar sus usuarios DBA en DataSunrise
Procedamos con todos estos pasos. Primero, en Configuración → Usuarios de Base de Datos, verificamos que el usuario “admin” es conocido por nuestra instancia de DataSunrise. Si DataSunrise no tiene uno, entonces cree el usuario “admin” manualmente. Si tiene varias instancias de Oracle RDS y se usa el mismo nombre de usuario DBA “admin”, puede elegir <Cualquiera> Instancia. Por favor, no olvide hacer clic en el botón Guardar para guardar su configuración en cada página.
En la imagen de arriba hemos creado el usuario ADMIN e incluido el mismo en el grupo del equipo DBA. Si ha creado varios usuarios DBA, por favor agréguelos al grupo de Equipo DBA de Oracle en la instancia de DataSunrise.
2. Configurar un nuevo Grupo de Consultas
El segundo paso, crearemos nuestro nuevo Grupo de Consultas “ConsultaCualquiera” y agregaremos solo una entrada “.*” en el ítem de Consulta. Por favor, vea la configuración en la imagen de abajo.
Cuando cree una nueva Consulta para el Grupo de Consultas (vea el botón “Agregar” en la imagen), por favor marque la casilla “Expresión Regular”.
En esta etapa tenemos al usuario de base de datos “ADMIN”, el grupo de usuarios del Equipo DBA de Oracle registrado en la instancia de DataSunrise y nuestro Grupo de Consultas “ConsultaCualquiera” con una consulta que tiene el patrón de expresión regular “.*” para coincidir con cualquier consulta. Ya estamos a medio camino.
3. Crear y configurar una nueva Regla de Auditoría
A continuación crearemos una nueva Regla de Auditoría con el nombre “Oracle: consultas de admin” utilizando lo que hemos creado en la instancia de DataSunrise. Abra la Consola Web e ingrese a Auditoría → Reglas. Haga clic en Crear para crear las nuevas reglas. Por favor, vea los detalles en las imágenes a continuación.
Usaremos las pestañas Filtrar Declaraciones y Grupo de Consultas en la página para conectar nuestra regla con la configuración correspondiente que hemos hecho anteriormente, vea los detalles en las imágenes siguientes.
Cuando seleccione el grupo de usuarios asignados al DBA “Equipo DBA de Oracle” para el parámetro de sesión Grupo de usuario de BD, hace que DataSunrise capture cualquier sesión desde cualquier IP / host que tenga un nombre de usuario en la lista del Equipo DBA de Oracle. Cuando agrega otro ítem de usuario de base de datos al Grupo de Usuarios “Equipo DBA de Oracle”, esta regla verificará automáticamente al nuevo usuario en esta regla.