Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Las tareas de incidentes garantizan un tratamiento completo y uniforme de los incidentes en todo el personal de SOC. Las listas de tareas se definen normalmente según las determinaciones realizadas por analistas sénior o administradores de SOC, y se ponen en práctica mediante reglas de automatización o cuadernos de estrategias.
Los analistas pueden ver la lista de tareas que deben realizar para un incidente determinado en la página de detalles del incidente y marcarlas como completadas a medida que avanzan. Los analistas también pueden crear sus propias tareas en el lugar, de forma manual, directamente desde dentro del incidente.
En este artículo se explica cómo usted, como administrador de SOC, puede auditar el historial de Microsoft Sentinel tareas de incidentes y realizar un seguimiento de los cambios realizados en ellos a lo largo de su ciclo de vida, con el fin de medir la eficacia de las asignaciones de tareas y su contribución a la eficacia y el correcto funcionamiento de su SOC.
Estructura de la matriz Tasks en la tabla SecurityIncident
La tabla SecurityIncident es una tabla de auditoría, que no almacena los propios incidentes, sino registros de la vida de un incidente: su creación y los cambios realizados en él. Cada vez que se crea un incidente o se realiza un cambio en un incidente, se genera un registro en esta tabla que muestra el estado actual del incidente.
La adición de campos de detalle de tareas al esquema de la tabla SecurityIncident te permite auditar tareas con mayor profundidad.
La información detallada agregada al campo Tareas consta de pares clave-valor que toman la siguiente estructura:
| Clave | Descripción del valor |
|---|---|
| createdBy | La identidad que creó la tarea: - correo electrónico: dirección de correo electrónico de identidad - name: nombre de la identidad - objectId: GUID de la identidad - userPrincipalName: UPN de la identidad |
| createdTimeUtc | Hora en que se creó la tarea, en UTC. |
| lastCompletedTimeUtc | Hora en que la tarea se marcó como completada, en UTC. |
| lastModifiedBy | La identidad que modificó por última vez la tarea: - correo electrónico: dirección de correo electrónico de identidad - name: nombre de la identidad - objectId: GUID de la identidad - userPrincipalName: UPN de la identidad |
| lastModifiedTimeUtc | Hora de la última modificación de la tarea, en UTC. |
| status | Estado actual de la tarea: Nuevo, Completado, Eliminado. |
| taskId | ID de recurso de la tarea. |
| title | Nombre descriptivo dado a la tarea por su creador. |
Visualización de tareas de incidentes en la tabla SecurityIncident
Además del libro de tareas de incidentes, puede auditar la actividad de las tareas consultando la tabla SecurityIncident desde Registros. Esta sección te muestra cómo consultar la tabla y leer y entender los resultados para obtener información sobre la actividad de la tarea.
En la página Registros , escriba la siguiente consulta en la ventana de consulta y ejecútelo. Esta consulta devolverá todos los incidentes que tengan alguna tarea asignada.
SecurityIncident | where array_length( Tasks) > 0Puede añadir cualquier cantidad de sentencias a la consulta para filtrar y acotar los resultados. Para demostrar cómo ver y comprender los resultados, vamos a agregar instrucciones para filtrar los resultados de modo que solo veamos las tareas de un solo incidente, y también agregaremos una
projectinstrucción para que veamos solo los campos que serán útiles para nuestros fines, sin mucho desorden.Para obtener más información, consulte Lenguaje de consulta Kusto información general.
SecurityIncident | where array_length( Tasks) > 0 | where IncidentNumber == "405211" | sort by LastModifiedTime desc | project IncidentName, Title, LastModifiedTime, TasksEchemos un vistazo al registro más reciente de este incidente y busquemos la lista de tareas asociadas a él.
Seleccione el expansador situado junto a la fila superior en los resultados de la consulta (que se han ordenado en orden descendente de recencia).
El campo Tareas es una matriz del estado actual de todas las tareas de este incidente. Seleccione el expansador para ver cada elemento de la matriz en su propia fila.
Ahora verá que hay dos tareas en este incidente. Cada una de ellas se representa a su vez mediante una matriz ampliable. Seleccione el ampliador de una sola tarea para ver su información.
Aquí verá los detalles de la primera tarea de la matriz ("0" es la posición de índice de la tarea en la matriz). El campo de título muestra el nombre de la tarea tal como se muestra en el incidente.
Ver tareas agregadas a la lista
Realiza los siguientes pasos para añadir una tarea a un incidente y observa cómo cambia el registro de SecurityIncident .
Vamos a agregar una tarea al incidente y, a continuación, volveremos aquí, ejecutaremos la consulta de nuevo y veremos los cambios en los resultados.
En la página Incidentes , escriba el número de identificador de incidente en la barra de búsqueda.
Abra la página de detalles del incidente y seleccione Tareas en la barra de herramientas.
Agregue una nueva tarea, asígnele el nombre "¡Esta tarea es una tarea de prueba!" y, a continuación, seleccione Guardar. La última tarea que se muestra a continuación es con la que debe terminar:
Ahora volvamos a la página de Logs y ejecutemos de nuevo la consulta SecurityIncident .
En los resultados verá que hay un nuevo registro en la tabla para este mismo incidente (anote las marcas de tiempo). Expanda el registro y verá que, aunque el registro que vimos anteriormente tenía dos tareas en su matriz Tasks , el nuevo tiene tres. La tarea más reciente es la que acabamos de agregar, como puede ver por su título.
Visualización de los cambios de estado en las tareas
Ahora, si regresamos a la tarea titulada "Esta tarea es una tarea de prueba!" en la página de detalles del incidente y la marcamos como completada y, a continuación, volveremos a Registros y volveremos a ejecutar la consulta de nuevo, veremos otro registro nuevo para el mismo incidente, esta vez mostrando el nuevo estado de la tarea como Completado.
Visualización de la eliminación de tareas
Volvamos a la lista de tareas de la página de detalles del incidente y eliminemos la tarea titulada "Esta tarea es una tarea de prueba!".
Cuando volvamos a Logs y volvamos a ejecutar la consulta incident-task, veremos otro nuevo registro, solo que esta vez el estado de nuestra tarea—el titulado "¡Esta tarea es una tarea de prueba!" —será eliminado.
Sin embargo, una vez que la tarea aparece una vez en la matriz (con un estado Eliminado ), ya no aparecerá en la matriz Tasks en los nuevos registros de ese incidente en la tabla SecurityIncident . Los registros anteriores existentes del incidente continuarán preservando la evidencia de que esta tarea existió en su día.
Visualización de tareas activas que pertenecen a un incidente cerrado
La consulta siguiente permite ver si se ha cerrado un incidente, pero no se han completado todas las tareas asignadas. Este conocimiento puede ayudarle a comprobar que los extremos sueltos restantes de la investigación se llevaron a una conclusión: se notificó a todas las partes pertinentes, se especificaron todos los comentarios, se comprobaron todas las respuestas, etc. La consulta utiliza la arg_max función de agregación para devolver solo el registro más reciente de cada incidente y de cada tarea, de modo que los resultados reflejan el estado más reciente.
Ejecuta la siguiente consulta para recuperar el registro más reciente de cada incidente, filtra los incidentes cerrados y devuelve cualquier tarea que aún no se haya completado o eliminado:
SecurityIncident
| summarize arg_max(TimeGenerated, *) by IncidentNumber
| where Status == 'Closed'
| mv-expand Tasks
| evaluate bag_unpack(Tasks)
| summarize arg_max(lastModifiedTimeUtc, *) by taskId
| where status !in ('Completed', 'Deleted')
| project TaskTitle = ['title'], TaskStatus = ['status'], createdTimeUtc, lastModifiedTimeUtc = column_ifexists("lastModifiedTimeUtc", datetime(null)), TaskCreator = ['createdBy'].name, lastModifiedBy, IncidentNumber, IncidentOwner = Owner.userPrincipalName
| sort by lastModifiedTimeUtc desc
Para más información sobre los operadores y funciones de Kusto usados en las consultas de ejemplo de este artículo, véase:
- where (operador)
- project (operador)
- Operador de ordenación
- resumir el operador
- Función de agregación arg_max()
Para obtener más información sobre KQL, consulte introducción a Lenguaje de consulta Kusto (KQL).
Otros recursos:
Pasos siguientes
- Obtenga más información sobre las tareas de incidentes.
- Obtenga información sobre cómo investigar incidentes.
- Obtenga información sobre cómo agregar tareas a grupos de incidentes automáticamente mediante reglas de automatización o cuadernos de estrategias, y cuándo usar reglas de automatización o cuadernos de estrategias para agregar tareas.
- Obtenga más información sobre las reglas de automatización y cómo crear y administrar reglas de automatización.
- Obtenga más información sobre cuadernos de estrategias y cómo crear un cuaderno de estrategias para responder a amenazas.