Auditar e controlar alterações em tarefas incidentes no Microsoft Sentinel
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:
Key | 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. |
título | 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
| order by lastModifiedTimeUtc desc
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.