Antes de adentrarnos, es esencial mencionar que utilizamos KQL para examinar los registros de Azure Monitor. Por ello, es imperativo contar con acceso a los registros pertinentes en su ambiente de Azure. En esta ocasión, nos enfocaremos en analizar los registros de inicio de sesión de Azure Active Directory (Azure AD) con el objetivo de detectar vulnerabilidades en el MFA.
let SigninLogs = AzureActivityLogs
| where TimeGenerated > ago(1d)
| where ResourceType == "Microsoft.AAD/SignIns"
| where OperationName == "SignIn"
| where Status == "Success"
| project UserId, AppId, ClientAppId, IpAddress, UserPrincipalName, AuthenticationRequirement;
let MFACompromised = SigninLogs
| where AuthenticationRequirement == "MFARequired"
| where IpAddress !in ("*.corporate.network", "127.0.0.1");
MFACompromised
| summarize count() by UserId
| order by count_ desc
Este procedimiento empezará seleccionando todos los eventos de acceso del día anterior donde la operación fue exitosa y se solicitó la Autenticación de Doble Factor (MFA). Posteriormente, excluirá cualquier evento de acceso que haya tenido lugar en la red empresarial o en el equipo local. Cualquier evento restante será considerado como una vulnerabilidad en el MFA.
Podemos desglosar el proceso en los siguientes pasos:
1. Recopile todos los eventos de acceso del día previo.
2. Excluya los eventos que no demandaron MFA.
3. Desestime los eventos que se llevaron a cabo desde la red de la empresa o un dispositivo local.
4. Calcule el número de accesos vulnerados por usuario debido a fallos en MFA.
5. Presente los resultados ordenados de mayor a menor según el número de accesos comprometidos por el MFA.
Te podría interesar leer: Descubre sobre MFA y como funciona
Para llevar a cabo este procedimiento, es necesario activar el conector de datos de los Registros de Actividad de Azure en Azure Sentinel. Una vez hecho esto, podrá implementar el script ya sea desde la interfaz de usuario de Azure Sentinel o utilizando la CLI de Azure.
Ahora, desglosemos las distintas secciones del script:
Sigue estos pasos:
1. Inicie sesión en Azure Portal y diríjase a la sección de Azure Monitor (registros).
2. Verifique que cuenta con los permisos requeridos para visualizar y analizar los registros de inicio de sesión de Azure AD.
3. Pulse sobre "Registros" para acceder al editor de Kusto Query Language.
4. Nuestro punto de inicio será consultar los registros de inicio de sesión de Azure AD. La tabla de interés se denomina "SigninLogs". En el área de consultas del editor, introduzca la consulta base indicada:
Código:
SigninLogs
| where TimeGenerated >= ago(7d) // You can adjust the time range as needed.
A continuación, nuestro objetivo es descartar aquellos inicios de sesión exitosos que no utilizaron MFA. Para lograrlo, eliminaremos aquellos registros que tengan la propiedad "IsInteractive" configurada como "falso" y "ResultType" marcada como "0" (que indica éxito).
Código:
SigninLogs
| where TimeGenerated >= ago(7d)
| where IsInteractive == true
| where ResultType != 0
Luego debemos determinar aquellos eventos que señalan vulnerabilidades en el MFA. Estos eventos suelen estar acompañados de un código de error que muestra un intento no exitoso de MFA. Algunos de los códigos de error más habituales relacionados con el MFA son 50076, 50053, 50057, entre otros. Incorpore estos códigos a la búsqueda para identificar intentos vulnerados.
Código:
SigninLogs
| where TimeGenerated >= ago(7d)
| where IsInteractive == true
| where ResultType != 0
| where tostring(AuthenticationDetails.errorCode) in~ ("50076", "50053", "50057")
De manera opcional, es posible añadir más detalles al resultado de su consulta para facilitar un análisis más exhaustivo. Por ejemplo, es viable incorporar el Nombre Principal de Usuario (UPN, por sus siglas en inglés) y la dirección IP.
Código:
SigninLogs
| where TimeGenerated >= ago(7d)
| where IsInteractive == true
| where ResultType != 0
| where tostring(AuthenticationDetails.errorCode) in~ ("50076", "50053", "50057")
| project TimeGenerated, UserPrincipalName, IPAddress, LocationDetails
5. Presione el botón "Ejecutar" para llevar a cabo la consulta.
6. Los datos que se desplieguen reflejarán los eventos de vulnerabilidad en el MFA que tuvieron lugar en el período de tiempo determinado.
Ten en cuenta que esta consulta es simplemente un punto de partida. Según las particularidades de tu situación y entorno, puede ser necesario modificar la consulta o incorporar criterios adicionales de filtrado para adaptarse a tus necesidades. Es esencial establecer políticas adecuadas de conservación de registros y auditorías para asegurar la disponibilidad de la información requerida para tu evaluación.