Auditar e controlar alterações em tarefas de incidentes no Microsoft Sentinel no portal do Azure
As tarefas de incidentes garantem um tratamento abrangente e uniforme de incidentes em todo o pessoal do SOC. As listas de tarefas são normalmente definidas de acordo com determinações feitas por analistas seniores ou gerentes de SOC e colocadas em prática usando regras de automação ou playbooks.
Seus analistas podem ver a lista de tarefas que precisam executar para um incidente específico na página de detalhes do incidente e marcá-las como concluídas à medida que avançam. Os analistas também podem criar suas próprias tarefas no local, manualmente, diretamente de dentro do incidente.
Este artigo explica como você, como gerente de SOC, pode auditar o histórico de tarefas de incidentes do Microsoft Sentinel e acompanhar as alterações feitas nelas ao longo de seu ciclo de vida, a fim de avaliar a eficácia de suas atribuições de tarefas 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 registros da vida de um incidente: sua criação e quaisquer alterações feitas nele. Sempre que um incidente é criado ou uma alteração é feita em um incidente, um registro é gerado nesta tabela mostrando o estado atual do incidente.
A adição de detalhes de tarefas ao esquema desta tabela permite auditar tarefas com maior profundidade.
As informações detalhadas adicionadas ao campo Tarefas consistem em pares chave-valor com a seguinte estrutura:
Chave | Descrição do valor |
---|---|
criadopor | 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, Excluído. |
taskId | ID do recurso da tarefa. |
title | Nome amigável dado à tarefa pelo 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, bem como ler e entender os resultados da consulta para obter informações sobre a atividade da tarefa.
Na página Logs, insira a seguinte consulta na janela de consulta e execute-a. Esta consulta retornará todos os incidentes que tenham quaisquer 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 filtrar os resultados para que vejamos apenas as tarefas de um único incidente, e também adicionaremos uma
project
instrução para que vejamos apenas os campos que serão úteis para nossos propósitos, sem muita confusão.Saiba mais sobre como usar o Kusto Query Language.
SecurityIncident | where array_length( Tasks) > 0 | where IncidentNumber == "405211" | sort by LastModifiedTime desc | project IncidentName, Title, LastModifiedTime, Tasks
Vamos olhar para o registro mais recente para este incidente e encontrar a lista de tarefas associadas a ele.
Selecione o expansor ao lado da linha superior nos resultados da consulta (que foram classificados em ordem decrescente de recenticidade).
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.
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 visualizar suas informações.
Aqui você vê os detalhes da primeira tarefa na matriz ("0" sendo a posição do índice da tarefa na matriz). O campo de título mostra o nome da tarefa conforme exibido no incidente.
Ver tarefas adicionadas à lista
Vamos adicionar uma tarefa ao incidente e, em seguida, voltaremos aqui, executaremos a consulta novamente e veremos as alterações nos resultados.
Na página Incidentes, insira o número de ID do incidente na barra de pesquisa.
Abra a página de detalhes do incidente e selecione Tarefas na barra de ferramentas.
Adicione uma nova tarefa, dê-lhe o nome "Esta tarefa é uma tarefa de teste!" e selecione Guardar. A última tarefa mostrada abaixo é o que você deve acabar com:
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 Tasks , o novo tem três. A tarefa mais recente é a que acabamos de adicionar, como você pode ver pelo título.
Ver alterações de estado a tarefas
Agora, se voltarmos para essa nova tarefa na página de detalhes do incidente e marcá-la como concluída e, em seguida, voltarmos para Logs e executarmos novamente a consulta, veremos outro novo registro para o mesmo incidente, desta vez mostrando o novo status da nossa tarefa como Concluída.
Ver eliminaçã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 o status da nossa tarefa — aquele intitulado "Esta tarefa é uma tarefa de teste!" —será excluído.
No entanto, uma vez que a tarefa tenha aparecido uma dessas vezes na matriz (com um status Excluído ), 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 quaisquer pontas soltas remanescentes em sua investigação foram concluídas — 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
| sort by lastModifiedTimeUtc desc
Veja mais informações sobre os seguintes itens usados nos exemplos anteriores, na documentação do Kusto:
- em que operador
- Operador do projeto
- operador de classificação
- Operador de resumo
- arg_max() função de agregação
Para obter mais informações sobre o KQL, consulte Visão geral da Kusto Query Language (KQL).
Outros recursos:
Próximos passos
- Saiba mais sobre tarefas incidentes.
- Saiba como investigar incidentes.
- Saiba como adicionar tarefas a grupos de incidentes automaticamente usando regras de automação ou playbooks e quando usar quais.
- Saiba mais sobre regras de automação e como criá-las.
- Saiba mais sobre playbooks e como criá-los.