Análisis del Comportamiento del Usuario con Aprendizaje Automático
Introducción
En 2023, el Informe DBIR descubrió que el 86% de las brechas web ocurrieron debido a información de ingreso robada. A medida que prevenir ataques sigue siendo un aspecto vital de las medidas de seguridad en general, DataSunrise ofrece mecanismos mejorados para monitorear el comportamiento sospechoso de los usuarios en la base de datos.
Las bases de datos a menudo manifiestan credenciales de usuario comprometidas o sistemas infectados a través de intentos de elevar privilegios o acceder a diferentes bases de datos o esquemas, como ‘pg_catalog’. Una situación común ocurre cuando un usuario intenta acceder a la base de datos desde una dirección IP desconocida. Esto a menudo indica una actividad sospechosa, posiblemente debido a credenciales de usuario comprometidas.
DataSunrise La tarea de Comportamiento Sospechoso del Usuario utiliza herramientas de aprendizaje automático (ML) para monitorear el comportamiento del usuario y abordar casos sospechosos de manera efectiva. Su enfoque de aprendizaje automático facilita una configuración flexible de la herramienta sin la necesidad de configurar manualmente conjuntos de direcciones IP permitidas o bases de datos y esquemas permitidos para usuarios específicos. Esto elimina la necesidad de establecer direcciones IP o bases de datos manualmente.
Auditoría de la Actividad de la Base de Datos
Antes de discutir el monitoreo del comportamiento, debemos hacer una nota sobre cómo recopilamos los datos de entrenamiento de ML. DataSunrise tiene una herramienta llamada Auditoría que registra la actividad. Puedes encontrar los registros en Auditoría → Rastros Transaccionales.
La Auditoría de DataSunrise registra datos para rastrear cómo se comportan típicamente los usuarios de bases de datos y también puede ayudar a monitorear cualquier actividad sospechosa.
Los datos recopilados son basados en texto y a menudo son demasiado grandes para analizar sin herramientas específicas para el análisis de datos. DataSunrise tiene todo lo que necesitas para procesar grandes cantidades de datos y sacar conclusiones de los conocimientos que proporciona.
Para crear una tarea de Comportamiento Sospechoso del Usuario, necesitas los datos de entrenamiento correctos de los Rastros Transaccionales. También necesitas ejecutar la tarea de análisis de comportamiento dentro del rango de tiempo correcto.
Durante la primera ejecución, la tarea entrena al modelo estadístico. Las ejecuciones posteriores implican analizar los Rastros Transaccionales desde el final del rango de entrenamiento hasta el final de los Rastros Transaccionales.
Herramientas de ML para el Monitoreo del Comportamiento del Usuario: Caso de Estudio
El escenario es el siguiente: La empresa utiliza una aplicación basada en web con una base de datos para gestionar datos de clientes. La empresa revisará regularmente cualquier actividad inusual en las tablas de la base de datos, ya sea manualmente o cada hora.
Hay tres pasos principales para implementar la Tarea de Análisis del Comportamiento del Usuario:
Paso 1: Crear una Regla de Auditoría para monitorear consultas a través del Puerto Proxy hacia la base de datos de recursos. Encuentra un intervalo de tiempo de entrenamiento apropiado basado en los Rastros Transaccionales activos de las Reglas. Este es un paso preliminar necesario para proporcionar el conjunto de datos de entrenamiento.
En una configuración típica de DataSunrise, hay múltiples Reglas de Auditoría y extensos registros de Rastros Transaccionales. Así, el usuario puede verificar que los Rastros Transaccionales para el período elegido solo muestren actividad de usuario aprobada.
Paso 2: Crear una Tarea de Comportamiento del Usuario con un intervalo de tiempo de entrenamiento apropiado. Configura la Tarea para ejecutarse por primera vez para entrenar al modelo estadístico.
Paso 3: Ejecutar algunas actividades inusuales utilizando herramientas de terceros como ‘psql’ o ‘DBeaver’. Luego, ejecuta manualmente la tarea nuevamente para el análisis. Esto ayuda a asegurar que la regla funcione correctamente.
El Host de Comportamiento Normal (en el lado izquierdo de la imagen) contiene una aplicación web. Este host típicamente sirve como la instancia del servidor conectada a la base de datos a través del Host de Firewall (en el centro). Instalamos DataSunrise en el Host de Firewall, y sus Rastros Transaccionales registran las conexiones a la base de datos a través del Puerto Proxy DataSunrise 5432.
Paso 1: Regla de Auditoría para Acciones Regulares
Para crear una regla de auditoría, primero, ve a la interfaz web de DataSunrise. Luego, haz clic en Auditoría, luego en Reglas. Finalmente, haz clic en +Agregar Regla si no está ya ahí.
Deberías habilitar AuditObject en Configuraciones del Sistema – Parámetros Adicionales. La Regla de Auditoría debe rastrear solo acciones de usuario aprobadas para el entrenamiento. Los usuarios siempre pueden verificarlo en los Rastros Transaccionales más tarde.
Habilita la regla que acabas de crear. Las solicitudes a la base de datos deberían aparecer en los eventos de la regla. Durante este paso, analizamos los Rastros Transaccionales y seleccionamos el intervalo de tiempo de eventos de actividad normal que usaremos para el entrenamiento del Comportamiento Sospechoso del Usuario.
Paso 2: Tarea de Comportamiento Sospechoso del Usuario
Ahora que hemos asegurado que los datos de entrenamiento están presentes y hemos seleccionado el intervalo de tiempo de entrenamiento, es momento de crear una tarea de Detección de Comportamiento Sospechoso del Usuario. Para hacer esto, navega a Configuración – Tareas Periódicas – +Nueva Tarea.
En la lista de Tipos de Tarea, selecciona Detección de Comportamiento Sospechoso del Usuario. El único ajuste requerido aquí es definir el rango de eventos del conjunto de datos de entrenamiento. Además, hay una opción de Frecuencia de Inicio para la tarea, pero en nuestro caso, donde ejecutamos la tarea manualmente según sea necesario, podemos dejar la frecuencia en el valor predeterminado (Cada Hora).
A continuación se muestra la configuración para el intervalo de tiempo de la nueva Tarea de Comportamiento Sospechoso del Usuario.
Definimos el intervalo de tiempo durante el cual solo ocurren actividades permitidas en todos los Proxies de la Instancia de la Base de Datos. Estas actividades son las permitidas y seleccionamos los tiempos del primer y último evento durante el análisis en el Paso 1.
Para iniciar el entrenamiento del modelo estadístico de la Tarea, guarda los ajustes. Esta acción te redirigirá a la sección de Tareas Periódicas. Navega de nuevo a la Tarea de Comportamiento Sospechoso del Usuario haciendo clic en su nombre en la lista. Luego, presiona ‘Ejecutar‘ para ejecutar la tarea y comprobar su estado.
No debería haber errores. Durante la primera ejecución de la tarea, no detecta actividad sospechosa ya que se centra únicamente en entrenar el modelo estadístico. Dentro del cuadro de diálogo de la tarea durante la ejecución de la tarea, el usuario puede observar el progreso del entrenamiento en el mensaje de estado.
Esto concluye el Paso 2. Ahora tenemos la red entrenada dentro de la tarea de Comportamiento Sospechoso del Usuario y podemos proceder a registrar la detección de comportamiento sospechoso.
Paso 3: Actividad Sospechosa y Análisis
La actividad sospechosa en nuestro caso implica consultas desde una dirección IP inesperada (Host de Actividad de Malware) accediendo a todos los campos de ‘pg_catalog.pg_enum’.
Para conectarse a la base de datos arbitraria desde la dirección IP sospechosa del Host de Actividad de Malware, se utilizó el comando ‘psql’ desde ese host:
/usr/pgsql-13/bin/psql -h 192.168.10.104 -p 5432 -U ubuser01 -d ubdb02 ubdb02=# select * from pg_catalog.pg_enum
Como resultado, aparece una advertencia de sesión única en los resultados de la tarea de Comportamiento Sospechoso del Usuario:
Tenga en cuenta que si el usuario del Host de Actividad de Malware se conecta al proxy utilizando software como DBeaver u otro software de gestión de bases de datos basado en UI, esta acción también activará alertas. DBeaver verifica automáticamente la estructura de la base de datos. Ejecuta consultas sobre tablas y esquemas que no están presentes en los datos de entrenamiento. El sistema puede marcar la actividad inesperada como resultado.
En este escenario, se realizaron consultas a la base de datos dos veces a través del proxy de DataSunrise desde el Host de Aplicación Web de Comportamiento Normal. Posteriormente, se estableció una conexión a la base de datos utilizando DBeaver desde una dirección IP confiable. Sin embargo, DBeaver procedió a consultar tablas y esquemas inusuales (pg_catalog). Por lo tanto, hemos marcado estas sesiones como sospechosas.
La Tarea de Comportamiento Sospechoso del Usuario puede generar alertas para todos los proxies de la Instancia de la regla de Auditoría de la base de datos, o para Reglas e Instancias si hay muchas. Es importante tener en cuenta que en los Resultados (figura anterior), el número de puerto de la base de datos representa el puerto del servidor de base de datos establecido en la configuración de la Instancia para la conexión protegida de la base de datos. Este no es el Puerto Proxy de esa Instancia.
Para comprobar si todos los Proxies de la Instancia están generando alertas de comportamiento sospechoso, los usuarios deberían realizar solicitudes sospechosas en todos los Puertos Proxy, asegurarse de que se auditen, y volver a ejecutar la Tarea de Comportamiento Sospechoso del Usuario. Luego, haga clic en el icono de actualización en el listado de resultados de la tarea. A medida que aparezcan nuevas consultas, haga clic en el ID de sesión para encontrar el número de puerto del proxy.
Todas las consultas y las filas afectadas están disponibles en los detalles de la sesión cuando se hace clic en la tabla de Resultados de la tarea. Por favor, consulte la figura a continuación para más detalles.
Resultados del Caso
Podemos identificar sesiones sospechosas examinando parámetros de consulta inusuales como direcciones IP o nombres de bases de datos. Estos parámetros se desvían de la actividad típica observada durante el entrenamiento en la Tarea de Comportamiento Sospechoso del Usuario.
Las principales conclusiones del caso de prueba son las siguientes:
- El modelo estadístico se enfoca en analizar direcciones IP, tablas, esquemas, etc., dentro de las consultas. No considera el contenido de las consultas en sí. Por ejemplo, el modelo estadístico entrenado en consultas SELECT simples no marcará consultas SELECT complejas o “SELECT all” a la misma tabla como sospechosas. Esto se debe a que se originan desde direcciones IP apropiadas y están dirigidas a bases de datos inusuales.
- Las instancias de reglas de auditoría determinan los Proxies potenciales para marcar las sesiones entrantes como sospechosas. Es crucial que el conjunto de datos de entrenamiento cubra todas las sesiones regulares razonables para todos los Proxies. Las sesiones de un Proxy desconocido serán marcadas como sospechosas.
- No se requiere ninguna configuración específica para entrenar la tarea de Comportamiento Sospechoso del Usuario en una regla de auditoría particular. Todos los registros de transacciones en el conjunto de entrenamiento de auditoría se utilizan para enseñar a la red. Estos registros también ayudan a identificar nuevos eventos y enviarlos a la Tarea de Comportamiento Sospechoso del Usuario para una mayor investigación.
Resolución de Problemas
Aquí, hay algunos puntos a tener en cuenta:
- Utiliza JVMChecker para verificar si Java está funcionando correctamente (ubicado en /opt/datasunrise/bin).
- Utiliza los registros de Comportamiento del Usuario para analizar si la ejecución de la tarea produjo algún mensaje de error. La tarea de Comportamiento Sospechoso del Usuario tiene un archivo de registro para mensajes de error. Puedes encontrarlo en Configuración del Sistema bajo Registro y Logs, luego Tipo de Logs, y finalmente Detección de Comportamiento Sospechoso del Usuario.
- Recuerda habilitar la propiedad avanzada ‘Objetos de Auditoría’ cuando se ejecute por primera vez la Tarea de Comportamiento del Usuario.
- Entiende tus datos. El proceso de entrenamiento requiere una cantidad relativamente alta de datos en los registros de auditoría. Es importante analizar la parte de texto de las solicitudes SQL. Esto significa que no habrá alarma por tablas o columnas inusuales en una solicitud SELECT si se hizo a la base de datos correcta, desde la IP correcta, y por el usuario y aplicación correctos.
- Cuando ejecutes la Tarea de Comportamiento del Usuario por primera vez, asegúrate de que la Pista de Auditoría contenga solo actividad permitida. Si es necesario, el usuario puede recrear fácilmente la Tarea de Comportamiento del Usuario y entrenar su modelo estadístico nuevamente.
Conclusión
La tarea de Comportamiento Sospechoso del Usuario basada en ML ayuda a monitorear el acceso a los datos estableciendo reglas para diferentes usuarios automáticamente. Esto ahorra tiempo y esfuerzo, especialmente con grandes conjuntos de datos. El SiguienteAprende Más Sobre la Estructura de tu Base de Datos y las Relaciones entre Tablas
Más información