Auditar e controlar alterações em tarefas de incidentes no Microsoft Sentinel

As tarefas de incidentes garantem um tratamento abrangente e uniforme de incidentes em toda a equipe do SOC. As listas de tarefas normalmente são definidas de acordo com as determinações feitas por analistas seniores ou gerentes do SOC e colocadas em prática usando regras de automação ou guias estratégicos.

Seus analistas pode visualizar a lista de tarefas que precisam executar para um determinado incidente na página de detalhes do incidente e marcá-las concluídas à medida que avançam. Os analistas também podem criar suas próprias tarefas no local, manualmente, diretamente do incidente.

Este artigo explica como você, sendo gerente do SOC, pode auditar o histórico de tarefas de incidentes do Microsoft Sentinel e acompanhar as alterações feitas durante todo o ciclo de vida, a fim de medir a eficácia das suas atribuições de tarefa e sua contribuição para a eficiência e o funcionamento adequado do SOC.

Estrutura da matriz Tarefas na tabela SecurityIncident

A tabela SecurityIncident é uma tabela de auditoria. Ela armazena não os incidentes em si, mas sim os registros da vida de um incidente: sua criação e quaisquer alterações feitas nele. Esta tabela gera um registro toda vez que um incidente é criado ou sofre uma alteração, mostrando o estado atual do incidente.

A adição de detalhes de tarefas ao esquema desta tabela permite que você realize uma auditoria mais completa das tarefas.

As informações detalhadas adicionadas ao campo Tarefas consistem em pares chave-valor que usam seguinte estrutura:

Chave Descrição do valor
createdBy A identidade que criou a tarefa:
– email: endereço de email de identidade
– nome: nome da identidade
– objectId: GUID da identidade
– userPrincipalName: UPN da identidade
createdTimeUtc Hora em que a tarefa foi criada, em UTC.
lastCompletedTimeUtc Hora em que a tarefa foi marcada como concluída, em UTC.
lastModifiedBy A identidade que modificou a tarefa pela última vez:
– email: endereço de email de identidade
– nome: nome da identidade
– objectId: GUID da identidade
– userPrincipalName: UPN da identidade
lastModifiedTimeUtc Hora em que a tarefa foi modificada pela última vez, em UTC.
status Status atual da tarefa: Nova, Concluída, Excluída.
taskId ID do recurso da tarefa.
title Nome amigável fornecido à tarefa por seu criador.

Exibir tarefas de incidentes na tabela SecurityIncident

Além da pasta de trabalho Tarefas de incidente, você pode auditar a atividade da tarefa consultando a tabela SecurityIncident em Logs. O restante deste artigo mostra como fazer isso, também mostra como ler e entender os resultados da consulta para obter informações sobre a atividade da tarefa.

  1. Na página Logs, insira a consulta a seguir na janela de consulta e execute-a. Essa consulta retornará todos os incidentes que possuem tarefas atribuídas.

    SecurityIncident
    | where array_length( Tasks) > 0
    

    Você pode adicionar qualquer número de instruções à consulta para filtrar e restringir os resultados. Para demonstrar como visualizar e entender os resultados, vamos adicionar instruções para filtragem dos resultados para que vejamos apenas as tarefas de um único incidente e também adicionaremos uma instrução project para vermos apenas os campos que serão úteis para nossos propósitos, sem muita confusão.

    Saiba mais sobre como usar a Linguagem de Consulta Kusto.

    SecurityIncident
    | where array_length( Tasks) > 0
    | where IncidentNumber == "405211"
    | sort by LastModifiedTime desc 
    | project IncidentName, Title, LastModifiedTime, Tasks
    
  2. Vamos examinar o registro mais recente desse incidente e encontrar a lista de tarefas associadas a ele.

    1. Selecione o expansor ao lado da linha superior nos resultados da consulta (que foram classificados em ordem decrescente de atualidade).

      Screenshot of query results showing an incident with its tasks.

    2. O campo Tarefas é uma matriz do estado atual de todas as tarefas neste incidente. Selecione o expansor para exibir cada item na matriz em sua própria linha.

      Screenshot of query results showing an incident with its tasks expanded.

    3. Agora você vê que há duas tarefas neste incidente. Cada um é representado, por sua vez, por uma matriz expansível. Selecione o expansor de uma única tarefa para exibir as informações.

      Screenshot of query results showing an incident with a single task expanded.

    4. Aqui você verá os detalhes da primeira tarefa na matriz ("0" sendo a posição de índice da tarefa na matriz). O campo título mostra o nome da tarefa, conforme exibido no incidente.

Exibir tarefas adicionadas à lista

  1. Vamos adicionar uma tarefa ao incidente e depois voltaremos aqui, executaremos a consulta novamente e veremos as alterações nos resultados.

    1. Na página Incidentes, insira o número da ID do incidente na barra Pesquisar.

    2. Abra a página de detalhes do incidente e selecione Tarefas na barra de ferramentas.

    3. Adicione uma nova tarefa, dê a ela o nome "Esta tarefa é um teste!", em seguida, selecione Salvar. A última tarefa mostrada abaixo é o que você deve obter:

      Screenshot shows incident tasks panel.

  2. Agora, vamos voltar para a página Logs e executar nossa consulta novamente.

    Nos resultados, você verá que há um novo registro na tabela para esse mesmo incidente (observe os carimbos de data/hora). Expanda o registro e você verá que, enquanto o registro que vimos antes tinha duas tarefas em sua matriz Tarefas, o novo tem três. A tarefa mais recente é aquela que acabamos de adicionar, como você pode ver pelo título.

    Screenshot of query results showing an incident with its newly created task.

Exibir alterações de status nas tarefas

Agora, se voltarmos para essa nova tarefa na página de detalhes do incidente e marcá-la como concluída e, em seguida, voltar para Logs e executar novamente a consulta, veremos outro novo registro para o mesmo incidente, desta vez mostrando o novo status da nossa tarefa como Concluída.

Screenshot of query results showing an incident task with its new status.

Exibir exclusão de tarefas

Vamos voltar à lista de tarefas na página de detalhes do incidente e excluir a tarefa que adicionamos anteriormente.

Quando voltarmos aos Logs e executarmos a consulta mais uma vez, veremos outro novo registro, só que desta vez a nossa tarefa (intitulada "Esta tarefa é um teste!") terá o status Excluída.

No entanto, depois que a tarefa tenha aparecido uma vez matriz (com um status Excluída), ela não aparecerá mais na matriz Tarefas em novos registros para esse incidente na tabela SecurityIncident. Os registros existentes, como os que vimos acima, continuarão a preservar as evidências de que essa tarefa já existiu.

Exibir tarefas ativas pertencentes a um incidente fechado

A consulta a seguir permite ver se um incidente foi fechado, mas nem todas as tarefas atribuídas foram concluídas. Esse conhecimento pode ajudá-lo a verificar se todas as pontas soltas da sua investigação tiveram uma conclusão. Todas as partes relevantes foram notificadas, todos os comentários foram inseridos, todas as respostas foram verificadas e assim por diante.

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
| order by lastModifiedTimeUtc desc

Próximas etapas