Auditar e registar alterações a tarefas de incidentes em Microsoft Sentinel no portal do Azure

As tarefas de incidentes garantem um tratamento abrangente e uniforme dos incidentes em todo o pessoal do SOC. Normalmente, as listas de tarefas são definidas de acordo com as determinações feitas por analistas seniores ou gestores de SOC e colocadas em prática através de regras de automatização ou manuais de procedimentos.

Os seus analistas podem ver a lista de tarefas que precisam de realizar para um determinado incidente na página de detalhes do incidente e marcá-las como concluídas à medida que vão avançando. Os analistas também podem criar as suas próprias tarefas no local, manualmente, diretamente a partir do incidente.

Este artigo explica como pode, enquanto gestor do SOC, auditar o histórico de Microsoft Sentinel tarefas de incidentes e controlar as alterações efetuadas ao longo do ciclo de vida, de modo a avaliar a eficácia das suas atribuições de tarefas e a respetiva contribuição para a eficiência e o bom funcionamento do SOC.

Estrutura da matriz Tarefas na tabela SecurityIncident

A tabela SecurityIncident é uma tabela de auditoria— armazena não os incidentes em si, mas sim registos da vida útil de um incidente: a sua criação e quaisquer alterações efetuadas ao mesmo. Sempre que um incidente é criado ou é efetuada uma alteração a um incidente, é gerado um registo nesta tabela que mostra o estado atual do incidente.

A adição de detalhes de tarefas ao esquema desta tabela permite-lhe auditar tarefas em maior profundidade.

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

Chave Descrição do valor
createdBy A identidade que criou a tarefa:
- e-mail: endereço de e-mail da 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:
- e-mail: endereço de e-mail da 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: Novo, Concluído, Eliminado.
taskId ID do recurso da tarefa.
title Nome amigável dado à tarefa pelo respetivo criador.

Ver tarefas de incidentes na tabela SecurityIncident

Para além do livro Tarefas de incidentes, pode auditar a atividade da tarefa ao consultar a tabela SecurityIncident em Registos. O resto deste artigo mostra-lhe como fazê-lo, bem como ler e compreender os resultados da consulta para obter informações sobre a atividade da tarefa.

  1. Na página Registos , introduza a seguinte consulta na janela de consulta e execute-a. Esta consulta devolverá todos os incidentes que têm tarefas atribuídas.

    SecurityIncident
    | where array_length( Tasks) > 0
    

    Pode adicionar qualquer número de instruções à consulta para filtrar e restringir os resultados. Para demonstrar como ver e compreender os resultados, vamos adicionar instruções para filtrar os resultados para que apenas vejamos as tarefas de um único incidente e também adicionaremos uma project instrução para vermos apenas os campos que serão úteis para os nossos fins, sem muita confusão.

    Para obter mais informações, veja Linguagem de Consulta Kusto descrição geral.

    SecurityIncident
    | where array_length( Tasks) > 0
    | where IncidentNumber == "405211"
    | sort by LastModifiedTime desc 
    | project IncidentName, Title, LastModifiedTime, Tasks
    
  2. Vamos analisar o registo mais recente deste incidente e encontrar a lista de tarefas associadas ao mesmo.

    1. Selecione o expansor junto à linha superior nos resultados da consulta (que foram ordenados por ordem descendente de receção).

      Captura de ecrã dos resultados da consulta a mostrar um incidente com as respetivas tarefas.

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

      Captura de ecrã dos resultados da consulta a mostrar um incidente com as respetivas tarefas expandidas.

    3. Agora, verá que existem duas tarefas neste incidente. Cada uma delas é representada por uma matriz expansível. Selecione o expansor de uma única tarefa para ver as respetivas informações.

      Captura de ecrã dos resultados da consulta a mostrar um incidente com uma única tarefa expandida.

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

Ver tarefas adicionadas à lista

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

    1. Na página Incidentes , introduza o número do ID do incidente na barra de Pesquisa.

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

    3. Adicione uma nova tarefa, atribua-lhe o nome "Esta tarefa é uma tarefa de teste!" e, em seguida, selecione Guardar. A última tarefa apresentada abaixo é a que deve terminar:

      Captura de ecrã a mostrar o painel de tarefas de incidentes.

  2. Agora, vamos regressar à página Registos e executar a nossa consulta novamente.

    Nos resultados, verá que existe um novo registo na tabela para este mesmo incidente (tenha em atenção os carimbos de data/hora). Expanda o registo e verá que, embora o registo que vimos antes tivesse duas tarefas na respetiva matriz Tarefas , o novo tem três. A tarefa mais recente é aquela que acabámos de adicionar, como pode ver pelo respetivo título.

    Captura de ecrã dos resultados da consulta a mostrar um incidente com a tarefa recém-criada.

Ver status alterações às tarefas

Agora, se voltarmos a essa nova tarefa na página de detalhes do incidente e a marcarmos como concluída e, em seguida, voltarmos aos Registos e voltarmos a executar a consulta novamente, veremos mais um novo registo para o mesmo incidente, desta vez mostrando a nova status da nossa tarefa como Concluída.

Captura de ecrã a mostrar os resultados da consulta que mostram uma tarefa de incidente com o respetivo novo status.

Ver eliminação de tarefas

Voltemos à lista de tarefas na página de detalhes do incidente e eliminemos a tarefa que adicionámos anteriormente.

Quando voltarmos aos Registos e executarmos a consulta novamente, veremos outro novo registo, só que desta vez o status para a nossa tarefa — aquele intitulado "Esta tarefa é uma tarefa de teste!" — será Eliminado.

No entanto, uma vez apresentada uma dessas vezes na matriz (com um status Eliminado), deixará de aparecer na matriz Tarefas em novos registos desse incidente na tabela SecurityIncident. Os registos existentes, como os que vimos acima, continuarão a preservar a evidência de que esta tarefa já existiu.

Ver tarefas ativas pertencentes a um incidente fechado

A consulta seguinte permite-lhe ver se um incidente foi fechado, mas nem todas as tarefas atribuídas foram concluídas. Este conhecimento pode ajudá-lo a verificar se as extremidades pendentes restantes na sua investigação foram levadas a uma conclusão: todas as partes relevantes foram notificadas, todos os comentários foram introduzidos, todas as respostas foram verificadas, etc.

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

Veja mais informações sobre os seguintes itens utilizados nos exemplos anteriores, na documentação do Kusto:

Para obter mais informações sobre o KQL, veja Descrição geral do Linguagem de Consulta Kusto (KQL).

Outros recursos:

Próximas etapas