Hoy vengo con un post sobre Dynamics 365 F&O, pero con el foco principal en la seguridad, concretamente en Microsoft Sentinel. Hace unos días se anunció que se había publicado una solución de Microsoft Sentinel para F&O que actualmente está en preview. ¡Vamos a aprender un poco sobre ella!

Asi es como Microsoft Sentinel funciona en realidad
Asi es como Microsoft Sentinel funciona en realidad

A veces pasamos por alto los aspectos de seguridad de las cosas que no están directamente relacionadas con F&O, especialmente en lo que se refiere a recursos como redes, cuentas de almacenamiento, máquinas de desarrollo, Microsoft Entra ID (¡este es el nuevo nombre de Azure AD!) o el uso de Bastion.

Y lo hacemos no porque no nos preocupe la seguridad, sino porque somos gente de Dynamics 365, y a veces puede que nos falten conocimientos en otras cosas. Si tienes suerte, contarás con un equipo de seguridad interno que se encargará de eso, si no, tendremos que aprender un poco.

Es la primera vez que uso Microsoft Sentinel, y seguro que me estoy perdiendo muchas cosas y funciones. Es hora de aprender.

¿Qué es Microsoft Sentinel?

Dejadme repetirlo: esta característica está preview a fecha de julio de 2023.

Microsoft Learn define Sentinel como:

Microsoft Sentinel is a scalable, cloud-native solution that provides:

  • Security information and event management (SIEM)
  • Security orchestration, automation, and response (SOAR)

Microsoft Sentinel delivers intelligent security analytics and threat intelligence across the enterprise. With Microsoft Sentinel, you get a single solution for attack detection, threat visibility, proactive hunting, and threat response.

https://learn.microsoft.com/en-us/azure/sentinel/overview

Microsoft Sentinel facilita la recopilación de datos de seguridad en toda su organización, ¡no solo en Dynamics 365 F&O! Desde dispositivos, a usuarios, a aplicaciones, a servidores en cualquier nube. Utiliza el poder de la inteligencia artificial para garantizar la rápida identificación de amenazas reales.

Microsoft Sentinel proporciona varias capacidades, entre las que se incluyen:

  • Recopilación de datos a escala de la nube en todos los usuarios, dispositivos, aplicaciones e infraestructura, tanto en las instalaciones como en varios servicios en la nube.
  • Detección de amenazas que antes no se detectaban y minimización de falsos positivos mediante los análisis de Microsoft y su incomparable inteligencia sobre amenazas.
  • Investigue las amenazas con inteligencia artificial y busque actividades sospechosas a escala, aprovechando los años de trabajo en ciberseguridad de Microsoft.
  • Responda rápidamente a los incidentes con la orquestación y automatización integradas de tareas comunes.

Configurando Microsoft Sentinel para F&O

El proceso para configurar Microsoft Sentinel para F&O es bastante sencillo y si sigues el tutorial oficial de Microsoft Learn para desplegar la solución Microsoft Sentinel para Dynamics 365 Finance and Operations, no deberías tener problemas, pero yo seguiré los mismos pasos.

Crear un nuevo workspace de Log Analytics

Vamos a ir al portal de Azure y buscaremos Microsoft Sentinel, clicamos en el botón «Create Microsoft Sentinel»:

Workspace de Microsoft Sentinel en su suscripción a Azure
Workspace de Microsoft Sentinel en su suscripción a Azure

Microsoft Sentinel se ejecuta más o menos sobre un workspace de Log Analytics. Utilizamos el workspace de Log Analytics para obtener los datos de nuestros recursos y, a continuación, Microsoft Sentinel los analiza. El botón crear mostrará los workspace de Log Analytics, si tenemos alguno:

Workspaces de Log Analytics
Workspaces de Log Analytics

Si no tienes ninguno, o quieres crear uno nuevo, tienes que crear uno nuevo:

Crear workspace de Log Analytics
Crear workspace de Log Analytics

Dale un nombre descriptivo, puedes ver en la imagen que lo estoy llamando onefin-sentinel, pero un nombre mejor sería onefin-sentinel-loganalytics.

Añadir Microsoft Sentinel al workspace

Una vez creado lo veréis en la pantalla anterior, si no lo aparece pulsad el botón actualizar. Por último, lo seleccionamos y pulsamos el botón «Add» en la esquina inferior izquierda.

Añadir Microsoft Sentinel a un workspace de Log Analytics
Añadir Microsoft Sentinel a un workspace de Log Analytics

Instalar la solución de F/O

Una vez hecho esto, nos llevará a la pantalla principal de Microsoft Sentinel. Ahora necesitamos instalar la solución de F&O. En la barra lateral izquierda, buscamos «Content hub», y luego en la barra de búsqueda buscaremos Dynamics 365, tendríamos que ver la que queremos como «Dynamics 365 Finance and Operations». Clicamos en el botón «Install» en la esquina inferior derecha:

Install the Dynamics 365 Finance and Operations solution in Microsoft Sentinel
Instalar la solución Dynamics 365 Finance and Operations en Microsoft Sentinel

Instalar el conector de datos de F&O

Cuando la solución haya terminado de instalarse, tenemos que añadir el conector de datos a F&O. En el menú de la izquierda, vamos a la sección «Data connectors». Ahí ya deberías ver el conector «Dynamics 365 F&O (using Azure Functions)». Si no está, utiliza la barra de búsqueda o prueba a limpiar los filtros:

Conector de datos de Microsoft Sentinel para Dynamics 365 F&O
Conector de datos de Microsoft Sentinel para Dynamics 365 F&O

Hacemos clic en el botón «Open Connector page» en la esquina inferior derecha. Veremos lo siguiente:

Data connector para F&O
Data connector para F&O

La recopilación de datos se realiza utilizando una función de Azure. No te preocupes, se desplegará utilizando una plantilla ARM. Sólo tenemos que hacer clic en el botón azul «Deploy to Azure», se abrirá una nueva pestaña:

Despliegue de la Azure Function usando un template ARM
Despliegue de la Azure Function usando un template ARM

Necesitamos completar la información en los campos de la plantilla:

  • Function App Name: el nombre de la app de Azure Function, recuerda que debe ser significativo y describir lo que es. Como d365fo-sentinel-app.
  • Workspace Name: el nombre del espacio de trabajo de Log Analytics que creamos en los primeros pasos.
  • Finance Operations Api Host: la URL de tu instancia de Dynamics 365 F&O.

Hacemos clic al botón «Review + create», y cuando todo se haya validado al botón «Create».

Esto tardará un poco más que los pasos anteriores, pero no mucho, yo diría que menos de 5 minutos.

Obtener la Managed Identity de la función

Vamos a la sección Azure AD en el portal Azure. Sí, el nombre ha cambiado, pero no todo el branding está listo todavía. Y ahí vamos a la sección «Enterprise Applications». Tenemos que quitar el filtro en la imagen de abajo:

Quitar el filtro Enterprise Applications
Quitar el filtro Enterprise Applications

Y luego añadimos un nuevo filtro para mostrar sólo las aplicaciones de identidad gestionada:

Filtro en managed identities
Filtro en managed identities

En la barra de búsqueda, buscamos el nombre de la Azure Function:

Azure Function en AD
Azure Function en AD

Y por último, copiamos su ID de aplicación. Ahora vamos a ir a la interfaz F&O.

Crear un nuevo rol de seguridad

Vamos a ir a System administration -> Security -> Security configuration, y crearemos un nuevo rol.

Nuevo rol
Nuevo rol

Hacemos clic en Privileges en el grid de referencias, y hacemos clic en el botón «Add references»:

Añadir privilegio al rol
Añadir privilegio al rol

In the list, filter on the name and look for «Database log». Add the «Database log Entity View» privilege.

Finally, publish the security objects. Go to the «Unpublished objects» tab, select the new role we just created, and click the «Publish selection» button. You can use the «Publish all» option if you wish and have no other pending changes:

En la lista, filtramos por el nombre y buscamos «Database log». Añadimos el privilegio «Database log Entity View».

Por último, publicaremos los objetos de seguridad. Vamos a la pestaña «Unpublished objects», seleccionamos el nuevo rol que acabamos de crear y clicamos en el botón «Publish selection». Puedes utilizar la opción «Publish all» si lo deseas y no tienes otros cambios pendientes:

Publicar objetos
Publicar objetos

Nota: si no estás haciendo esto para el entorno de producción, es mejor crear el rol y añadir el privilegio en Visual Studio. Si se realiza una actualización de la base de datos en el entorno que está utilizando, el rol creado desde la interfaz de Dynamics 365 F&O desaparecerá.

Crear un usuario nuevo

O utiliza uno ya existente si lo deseas. A este usuario se le asignará el rol que hemos creado y utilizado en el formulario de aplicaciones de Azure Active Directory.

Si utilizas un usuario existente, asegúrate de que no sea un superusuario o administrador del sistema.

Añade una nueva aplicación de Azure AD

Ahora, utilizando el ID de aplicación que hemos copiado antes de la identidad gestionada de la Azure Function, creamos un nuevo registro en el formulario de aplicaciones de Azure Active Directory y utilizamos el nuevo usuario que acabamos de crear como ID de usuario.

Nueva app de Azure AD
Nueva app de Azure AD

Lo hemos configurado todo. Microsoft Sentinel está listo para ingerir y analizar datos de nuestra instancia de Dynamics 365 F&O. Pero, ¿qué datos se monitorizan? Ahora, esto va a ser interesante…

Ahora la parte que no me gusta…

And of course, we can forget about transaction tables. At least, it’s not possible to add new tables to the database log until you configure the cleanup log batch job.

Add whichever table you want to monitor. I’ve chosen the Bank Accounts as in the Learn tutorial. When the Azure Function app triggers, which does every 10 minutes, we will see the changes in the Logs section:

Puede que ya te hayas dado cuenta y sepas por dónde voy. Cuando creamos el nuevo rol, añadimos el privilegio de leer la entidad del log de la base de datos, ¿recuerdas?

No es una sorpresa pues, ¡¡¡el monitoreo en Microsoft Sentinel para F&O está usando el log de la base de datos!!! ¿Y qué tiene de malo el log de la base de datos? Posibles problemas de rendimiento.

Así que, en mi opinión, esto restringe un poco lo que podemos hacer con Microsoft Sentinel a:

  • Tablas de parámetros
  • Tablas de datos maestros
  • Otras tablas durante un corto periodo de tiempo

Y por supuesto, podemos olvidarnos de las tablas de transacciones. Afortunadamente, no es posible añadir nuevas tablas al log de la base de datos hasta que se configure el trabajo por lotes de limpieza del log.

Añade la tabla que quieras monitorizar. Yo he elegido las Cuentas Bancarias como en el tutorial de Learn. Cuando la aplicación Azure Function se ejecuta, que lo hace cada 10 minutos, veremos los cambios en la sección de Logs:

Logs de F&O
Logs de F&O

Y en el editor de consultas buscamos los logs de FinanceOperationsActivity_CL como en la imagen superior, veremos los logs de los cambios realizados. Y dentro del nodo «FormattedData» podemos ver todos los campos de la tabla que estamos loggeando, con su valor antiguo y nuevo:

Cambios en cuentas bancarias
Cambios en cuentas bancarias

¿Qué ofrece Microsoft Sentinel para F&O?

La solución que instalamos en los primeros pasos incluye un pequeño conjunto de plantillas para reglas que pueden activarse y utilizarse sin necesidad de ninguna otra configuración:

NombreDescripción
F&O – Non-interactive account mapped to self or sensitive privileged userIdentifica los cambios en las aplicaciones cliente de Azure AD registradas para Finance & Operations, concretamente cuando se asigna un nuevo cliente a una lista predefinida de cuentas de usuario privilegiadas sensibles, o cuando un usuario asocia una aplicación cliente a su propia cuenta. Para modificar la lista de cuentas privilegiadas sensibles, cambie la variable «priviliged_user_accounts» en la consulta de la regla.
F&O – Mass update or deletion of user account recordsIdentifica grandes operaciones de eliminación o actualización en registros de usuarios de Finanzas y Operaciones en función de umbrales predefinidos.  
Umbral de actualización por defecto: 50
Umbral de eliminación por defecto: 10
F&O – Bank account change following network alias reassignmentIdentifica las actualizaciones del número de cuenta bancaria de un usuario cuyo alias ha sido modificado recientemente a un nuevo valor.
F&O – Reverted bank account number modifications  Identifica cambios en los números de cuentas bancarias en Finanzas y Operaciones, por los que se modifica un número de cuenta bancaria pero se revierte poco después.
F&O – Unusual sign-in activity using single factor authenticationIdentifica los eventos de inicio de sesión correctos en Finanzas y Operaciones y Servicios del Ciclo de Vida mediante autenticación de factor único/contraseña. Se excluyen los eventos de inicio de sesión de inquilinos que no utilizan MFA, que proceden de una ubicación de red de confianza de Azure AD o de geolocalizaciones vistas anteriormente en los últimos 14 días.

Esta detección utiliza registros obtenidos de Azure Active Directory. Por lo tanto, debe habilitar el conector de datos de Azure Active Directory.

Estas plantillas de alerta se encuentran en el menú Analytics, en la pestaña Rule templates:

Templates de alertas
Templates de alertas

Estas alertas pueden crear incidentes, que por ejemplo podemos utilizar posteriormente en una Logic App (no hay conector de Microsoft Sentinel para Power Automate), o pueden enviar notificaciones desde Azure a los administradores.

¿Qué ocurre entre bastidores?

I’ll provide a short explanation as a high-level overview of how all the elements we’ve deployed and configured work.

As we’ve seen, all of this depends on the database log functionality in Dynamics 365 Finance and Operations. Then there’s an Azure Function that runs on a schedule and will query the OData endpoint for the database log entity. That’s why we need to configure the managed identity of the Azure Function in the AD applications form.

And it’s the Azure Function the one that’s responsible to send the data to the Log Analytics Workspace, which is later analized by Microsoft Sentinel.

Voy a dar una breve explicación a modo de resumen a alto nivel de cómo funcionan todos los elementos que hemos desplegado y configurado.

Como hemos visto, todo esto depende de la funcionalidad de log de la base de datos en Dynamics 365 Finance and Operations. Luego hay una función de Azure que se ejecuta periódicamente y consultará el endpoint OData para la entidad de log de base de datos. Por eso necesitamos configurar la identidad gestionada de la Función Azure en el formulario de aplicaciones de AAD.

Y es la Azure Function la que se encarga de enviar los datos al Workspace de Log Analytics, que posteriormente son analizados por Microsoft Sentinel.

Algunas reflexiones finales

Veo el valor de Microsoft Sentinel para añadir seguridad en tu Azure AD Microsoft Entra ID. Para F&O, con la funcionalidad que he descrito aquí, y lo que he podido probar… para mí, es como, en escenarios simples, matar moscas a cañonazos. Si sólo queremos hacer un seguimiento de los cambios de valor de campo, podemos utilizar la funcionalidad de alertas estándar.

Sin embargo, para escenarios complejos, Microsoft Sentinel ofrece reglas más avanzadas, como la comprobación de actualizaciones masivas o el cambio de valores de campo después de que un usuario haya actualizado su alias de red y, por lo tanto, tenga un inicio de sesión diferente. Esto es algo que realmente añade valor a nuestra estrategia de seguridad.

Como he dicho, es la primera vez que utilizo Microsoft Sentinel, así que probablemente me esté perdiendo algo, ¡prometo seguir investigando!

¡Suscríbete!

Recibe un correo cuando se publique un nuevo post
Author

Microsoft Dynamics 365 Finance & Operations technical architect and developer. Business Applications MVP since 2020.

Write A Comment

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

ariste.info