Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O Defender for Storage suporta diferentes maneiras de lidar com arquivos maliciosos. Selecione a opção de correção que se adapta ao seu cenário:
- Recursos de remediação integrados
- Fluxos de trabalho automatizados para mover ou remover arquivos mal-intencionados
- Fluxos de trabalho automatizados para mover ou ingerir arquivos limpos para outro destino
Ao utilizar a análise de malware, pode construir a sua remediação automatizada utilizando estas opções de resultados de análise:
- Alertas de segurança do Defender para a Cloud
- Eventos do Event Grid
- Tags de índice de Blob
Tip
Para explorar a análise de malware no Defender for Storage, participe no laboratório prático. O módulo de treinamento Ninja dá instruções passo-a-passo para:
- Configurar a verificação de malware
- Teste a funcionalidade de ponta a ponta
- Configurar respostas de remediação
Este laboratório faz parte da série de treinamento do Microsoft Defender para a Cloud e oferece experiência prática com recursos de segurança.
Opções de correção para deteção de malware
Remediação automatizada de malware integrada para blobs maliciosos
O Defender for Storage Malware Protection tem um recurso integrado que simplifica e automatiza o processo de correção de blobs mal-intencionados, para que você reduza o risco de distribuição de malware. Quando o Defender for Storage deteta um blob malicioso durante a verificação de malware on-upload ou on-demand, ele inicia automaticamente uma exclusão suave para colocar o blob em quarentena com segurança e mantê-lo recuperável para análise posterior.
Se ainda não ativou a eliminação suave para blobs na conta de armazenamento, o Defender for Storage ativa-a quando ativa a funcionalidade de eliminação suave de blobs maliciosos. A funcionalidade de eliminação suave de blobs maliciosos reduz as etapas de configuração e melhora a resposta de segurança imediatamente.
Casos de uso
Corrija automaticamente a distribuição de malware:
- Apagar suavemente o blob para impedir o acesso
- Retenção do blob para investigação e recuperação
- Eliminando a necessidade de automação externa ou etapas manuais
Permita que os administradores de segurança ou analistas SOC mantenham o armazenamento limpo com o mínimo de esforço manual
Permita que as organizações corrijam ameaças rapidamente sem fluxos de trabalho complexos
Notas sobre as funcionalidades
A exclusão suave de blobs maliciosos funciona apenas para blobs mal-intencionados. Está desativado por padrão.
Você pode ativar a exclusão suave de blobs mal-intencionados no nível da assinatura ou da conta de armazenamento.
Quando você exclui suavemente um blob, ele permanece no mesmo contêiner de blob. Você pode restaurar o blob dentro do período de retenção. Para obter mais informações, consulte Eliminação suave de blobs.
Se ativar a Gestão de Versões para Blobs na sua conta de armazenamento, consulte Gerir e restaurar a eliminação provisória para blobs para saber como restaurar um blob eliminado provisoriamente.
Os blobs que são detetados como maliciosos e eliminados de forma suave serão sempre marcados com etiquetas de índice. Se tiver optado por não guardar os resultados da análise nas etiquetas de índice, essas etiquetas serão removidas após o restauro do blob eliminado temporariamente.
O período de retenção é de sete dias se você ativar o recurso de exclusão suave de blobs mal-intencionados, mas poderá alterá-lo (intervalo: de 1 a 365 dias). Você pode alterar o período de retenção padrão nas configurações da sua conta de armazenamento.
Se você desativar a configuração de propriedade de exclusão suave na conta de armazenamento depois de ativá-la, os blobs mal-intencionados não serão excluídos. Nesse caso, o Defender for Storage não ativa novamente a exclusão suave e cria um alerta.
A exclusão pode falhar devido a erros de configuração ou permissões ausentes. O alerta mostra o motivo da falha.
Armazenar o blob suprimido temporariamente durante o período de retenção custa o mesmo que armazenar os dados ativos. Para obter mais informações, consulte Eliminação suave de blobs.
Se você restaurar um blob, o Azure o contará como uma transação de gravação. Para obter mais informações, consulte Mapear cada operação REST para um preço.
Configurando a correção personalizada para blobs maliciosos
Pode automatizar a remediação bloqueando o acesso a ficheiros não digitalizados ou maliciosos, eliminando ou movendo blobs maliciosos, ou encaminhando ficheiros limpos com base nos resultados da análise:
Bloquear o acesso a arquivos não verificados ou mal-intencionados usando ABAC (controle de acesso baseado em atributos)
Ao utilizar a autorização de controlo de acesso baseada em atributos (ABAC) do Microsoft Entra, pode bloquear o acesso a ficheiros maliciosos e não digitalizados. Você pode definir o acesso condicional a blobs com base nos resultados da verificação e permitir que aplicativos e usuários acessem apenas arquivos digitalizados que estão limpos.
Para configurar a autorização ABAC para acesso a blobs com base nos resultados da varredura, siga as instruções na guia de configuração ABAC para controlo de acesso a blob baseado em varrimento (vídeo).
Excluir ou mover um blob mal-intencionado
Use o código ou a automação do fluxo de trabalho para excluir ou mover arquivos mal-intencionados para a quarentena.
Prepare seu ambiente para excluir ou mover
Excluir o arquivo mal-intencionado - Antes de configurar a exclusão automática, ative a exclusão suave na conta de armazenamento. Ele permite que você "undelete" arquivos se houver falsos positivos ou nos casos em que os profissionais de segurança querem investigar os arquivos maliciosos.
Mover o ficheiro malicioso para quarentena - Mova ficheiros para um contentor de armazenamento dedicado ou para uma conta de armazenamento que sejam considerados como "quarentena". Talvez você queira que apenas determinados usuários, como um administrador de segurança ou um analista SOC, tenham permissão para acessar esse contêiner dedicado ou conta de armazenamento.
- Usar o Microsoft Entra ID para controlar o acesso ao armazenamento de blob é uma prática recomendada. Para controlar o acesso ao contêiner de armazenamento de quarentena dedicado, você pode usar atribuições de função no nível de contêiner usando o RBAC (controle de acesso baseado em função) do Microsoft Entra. Os usuários com permissões no nível da conta de armazenamento ainda poderão acessar o contêiner de "quarentena". Você pode editar suas permissões para ser no nível do contêiner ou escolher uma abordagem diferente e mover o arquivo mal-intencionado para uma conta de armazenamento dedicada.
- Se você precisar usar outros métodos, como tokens SAS (assinaturas de acesso compartilhado) na conta de armazenamento protegida, mova arquivos mal-intencionados para outra conta de armazenamento (quarentena). Em seguida, conceda permissão ao Microsoft Entra para acessar a conta de armazenamento em quarentena.
Configurar automação
Opção 1: Aplicativo lógico baseado em alertas de segurança do Microsoft Defender para a Cloud
As respostas baseadas em Logic App são uma abordagem simples e sem código para configurar respostas automáticas de remediação. No entanto, o tempo de resposta é mais lento do que o de uma Function App orientada por eventos baseada em eventos da Grade de Eventos.
Implemente o modelo DeleteBlobLogicApp Azure Resource Manager (ARM) utilizando o portal Azure.
Selecione o Aplicativo Lógico que você implantou.
Para permitir que o Aplicativo Lógico exclua blobs da sua conta de armazenamento, adicione uma atribuição de função:
Vá para Identidade no menu lateral e selecione Atribuições de função do Azure.
Adicione uma atribuição de função ao nível da subscrição com a função Storage Blob Data Contributor .
Crie automação de fluxo de trabalho para alertas do Microsoft Defender para a Cloud:
- Aceda ao Microsoft Defender para a Cloud no portal do Azure.
- Vá para Automação de fluxo de trabalho no menu lateral.
- Adicione um novo fluxo de trabalho: no campo O nome do alerta contém, preencha Arquivo mal-intencionado carregado na conta de armazenamento e escolha o seu Logic app na secção das Ações.
- Selecione Criar.
Opção 2: Aplicativo de função baseado em eventos da grade de eventos
Um aplicativo de função fornece alto desempenho com um tempo de resposta de baixa latência.
Passo 1: Criar um tópico personalizado para a Grelha de Eventos
Antes de estabelecer ligação a uma Function App, configure um tópico personalizado do Event Grid para receber os resultados da verificação.
- No portal Azure, procure por Tópicos de Grelha de Eventos e selecione Criar.
- Define a Região para a mesma região da tua conta de armazenamento. A entrega entre regiões não é suportada para eventos de análise de malware.
- Selecione Event Grid Schema como tipo de esquema.
- Em Redes, permita o acesso a partir de endereços IP públicos. Tópicos exclusivos para endpoints privados não podem receber eventos do Defender for Storage.
- Depois de criar o tópico, copie o Ponto final do tópico e a chave de acesso — precisa deles para configurar o Defender for Storage.
Para configurar o Defender for Storage para enviar resultados de análise ao tópico personalizado da Grade de Eventos que criou, veja Configurar Grade de Eventos para análise de malware.
Passo 2: Criar e configurar a Function App
Crie um aplicativo de função no mesmo grupo de recursos que sua conta de armazenamento protegida.
Adicione uma atribuição de função para a identidade da Function App.
- Vá para Identidade no menu lateral, verifique se o status de identidade atribuída ao sistema está Ativado e selecione Atribuições de função do Azure.
- Adicione uma atribuição de função ao nível da subscrição ou da conta de armazenamento com a função Storage Blob Data Contributor.
No tópico Event Grid, selecione + Event Subscription, defina o tipo de endpoint para Azure Function e selecione a sua Function App como endpoint.
Passo 3: Escolha um modelo de Function App
Selecione o modelo que corresponda ao seu objetivo de remediação:
| Goal | Template |
|---|---|
| Mova objetos binários maliciosos para a quarentena | MoveMaliciousBlobEventTrigger |
| Eliminação automática de blobs maliciosos | Use o modelo de deslocação como base; substitua a lógica de copiar+eliminar por uma chamada direta a Delete Blob depois de verificar scanResultType == "Malicious". Ative a eliminação suave primeiro para permitir a recuperação caso haja falsos positivos. |
| Envie um alerta ou notificação | Adicione uma chamada HTTP ao seu endpoint de alerta (por exemplo, webhook do Teams, PagerDuty ou ServiceNow) quando scanResultType == "Malicious". Consulte a ligação de saída HTTP do Funções do Azure para mais detalhes. |
Alternativamente, use as operações de cópia do blob do Armazenamento do Azure para copiar o blob para outro local e depois elimine o blob da fonte.
Para cada resultado da verificação, um evento é enviado de acordo com o esquema a seguir.
Estrutura da mensagem do evento
A mensagem de evento é um objeto JSON que contém pares chave-valor que fornecem informações detalhadas sobre um resultado de verificação de malware. Aqui está um detalhamento de cada chave na mensagem do evento:
id: Um identificador exclusivo para o evento.
subject: uma cadeia de caracteres que descreve o caminho do recurso do blob (arquivo) digitalizado na conta de armazenamento.
data: Um objeto JSON que contém informações adicionais sobre o evento:
correlationId: um identificador exclusivo que você pode usar para correlacionar vários eventos relacionados à mesma verificação.
blobUri: O URI do blob (arquivo) digitalizado na conta de armazenamento.
eTag: O ETag do blob digitalizado (arquivo).
scanFinishedTimeUtc: A data e hora UTC quando a verificação foi concluída.
scanResultType: O resultado da verificação, como Malicious ou Nenhuma ameaça encontrada.
scanResultDetails: Um objeto JSON contendo detalhes sobre o resultado da verificação:
malwareNamesFound: Uma matriz de nomes de malware encontrados no arquivo digitalizado.
sha256: O hash SHA-256 do arquivo digitalizado.
eventType: uma cadeia de caracteres que indica o tipo de evento, neste caso, Microsoft.Security.MalwareScanningResult.
dataVersion: O número da versão do esquema de dados.
metadataVersion: O número da versão do esquema de metadados.
eventTime: O timestamp UTC no momento em que o evento foi gerado.
topic: O caminho do recurso do tópico Grade de Eventos ao qual o evento pertence.
Eis um exemplo de uma mensagem de evento:
{
"id": "aaaa0000-bb11-2222-33cc-444444dddddd",
"subject": "storageAccounts/<storage_account_name>/containers/app-logs-storage/blobs/EICAR - simulating malware.txt",
"data": {
"correlationId": "aaaa0000-bb11-2222-33cc-444444dddddd",
"blobUri": "https://<storage_account_name>.blob.core.windows.net/app-logs-storage/EICAR - simulating malware.txt",
"eTag": "0x000000000000000",
"scanFinishedTimeUtc": "2023-05-04T11:31:54.0481279Z",
"scanResultType": "Malicious",
"scanResultDetails": {
"malwareNamesFound": [
"DOS/EICAR_Test_File"
],
"sha256": "AA11BB22CC33DD44EE55FF66AA77BB88CC99DD00"
}
},
"eventType": "Microsoft.Security.MalwareScanningResult",
"dataVersion": "1.0",
"metadataVersion": "1",
"eventTime": "2023-05-04T11:31:54.048375Z",
"topic": "/subscriptions/<subscription_id>/resourceGroups/<resource_group_name>/providers/Microsoft.EventGrid/topics/<event_grid_topic_name>"
}
Ao compreender a estrutura da mensagem de evento, você pode extrair informações relevantes sobre o resultado da verificação de malware e processá-lo de acordo.
Amostras de cargas úteis para testes
Utilize estas cargas de dados de exemplo para testar a lógica de processamento de eventos antes de se ligar aos resultados da análise em tempo real.
Nenhuma ameaça encontrada:
{
"id": "bbbb1111-cc22-3333-44dd-555555eeeeee",
"subject": "storageAccounts/<storage_account_name>/containers/uploads/blobs/clean-document.pdf",
"data": {
"correlationId": "bbbb1111-cc22-3333-44dd-555555eeeeee",
"blobUri": "https://<storage_account_name>.blob.core.windows.net/uploads/clean-document.pdf",
"eTag": "0x111111111111111",
"scanFinishedTimeUtc": "2023-05-04T11:32:00.0000000Z",
"scanResultType": "No threats found",
"scanResultDetails": {
"malwareNamesFound": [],
"sha256": "BB22CC33DD44EE55FF66AA77BB88CC99DD00EE11"
}
},
"eventType": "Microsoft.Security.MalwareScanningResult",
"dataVersion": "1.0",
"metadataVersion": "1",
"eventTime": "2023-05-04T11:32:00.0000000Z",
"topic": "/subscriptions/<subscription_id>/resourceGroups/<resource_group_name>/providers/Microsoft.EventGrid/topics/<event_grid_topic_name>"
}
Não analisado (blob demasiado grande):
{
"id": "cccc2222-dd33-4444-55ee-666666ffffff",
"subject": "storageAccounts/<storage_account_name>/containers/uploads/blobs/large-archive.zip",
"data": {
"correlationId": "cccc2222-dd33-4444-55ee-666666ffffff",
"blobUri": "https://<storage_account_name>.blob.core.windows.net/uploads/large-archive.zip",
"eTag": "0x222222222222222",
"scanFinishedTimeUtc": "2023-05-04T11:32:10.0000000Z",
"scanResultType": "Not Scanned",
"scanResultDetails": {
"notScannedReason": "SAM259206: Not scanned - blob exceeded the maximum allowed size of 50 GB."
}
},
"eventType": "Microsoft.Security.MalwareScanningResult",
"dataVersion": "1.0",
"metadataVersion": "1",
"eventTime": "2023-05-04T11:32:10.0000000Z",
"topic": "/subscriptions/<subscription_id>/resourceGroups/<resource_group_name>/providers/Microsoft.EventGrid/topics/<event_grid_topic_name>"
}
Leitura de códigos de erro SAM a partir de mensagens do Event Grid
Quando o Event Grid não consegue escanear um blob, utiliza o tipo de resultado Não Escaneado e inclui um código de erro SAM notScannedReason no campo.
Se scanResultType for definido para Not Scanned, o código de erro SAM aparece como parte do valor data.scanResultDetails.notScannedReason. O código de erro é o prefixo antes dos dois-pontos (:).
Por exemplo:
"scanResultType": "Not Scanned",
"scanResultDetails": {
"notScannedReason": "SAM259206: Not scanned - blob exceeded the maximum allowed size of 50 GB."
}
Torne seus aplicativos e fluxos de dados cientes dos resultados da verificação de malware
A verificação de malware é executada quase em tempo real, e geralmente há uma janela de tempo curta entre o upload de um arquivo e a verificação dele. Como o armazenamento não é computação, arquivos mal-intencionados não podem ser executados em seu armazenamento. O risco é que os usuários ou aplicativos usem arquivos maliciosos e os espalhem por toda a organização.
Você pode tornar seus aplicativos e fluxos de dados cientes dos resultados da verificação de malware. Esses métodos garantem que os arquivos não sejam usados ou processados até:
- Digitalização concluída
- Os resultados da verificação estão disponíveis
- Você toma as ações apropriadas com base nos resultados
Os aplicativos ingerem dados com base no resultado da verificação
Use estes padrões para permitir que aplicações a jusante processem blobs apenas depois de o Defender for Storage analisar malware reportar um resultado limpo.
Opção 1: Aplicações que verificam "Etiqueta de índice" antes de processar
Atualize todos os aplicativos que usam a conta de armazenamento. Cada aplicativo verifica o resultado da verificação para cada arquivo e, se o resultado da verificação da tag de índice de blob não for nenhuma ameaça encontrada, o aplicativo lê o blob.
Opção 2: Conectar seu aplicativo a um Webhook em eventos da Grade de Eventos
Conecte a sua aplicação a um Webhook em eventos do Event Grid e use esses eventos para desencadear processos relevantes para arquivos com resultados de verificação sem ameaças encontradas. Saiba mais sobre como usar a entrega de eventos Webhook e validar seu endpoint.
Usar uma conta de armazenamento intermediário como uma Zona Desmilitarizada (DMZ)
Configure uma conta de armazenamento intermediário para conteúdo não confiável (DMZ) e tráfego de upload direto para a DMZ. Na conta de armazenamento não confiável, ative a verificação de malware e ligue a Event Grid e a Function App para mover apenas os blobs verificados com o resultado nenhuma ameaça encontrada para a conta de armazenamento de destino.
Entrega de eventos de resolução de problemas
Se os eventos do resultado da varredura não estiverem a chegar ao seu endpoint, utilize as verificações seguintes para identificar e resolver o problema.
Os eventos não são entregues na Function App ou no webhook
| Symptom | Causa possível | Resolução |
|---|---|---|
| Nenhum evento recebido após o carregamento de um ficheiro | Tópico da Grelha de Eventos não configurado na conta de armazenamento | Verifique se o tópico personalizado Event Grid está definido nas definições do Microsoft Defender para a Cloud da conta de armazenamento. Consulte Configurar o Event Grid para verificação de malware. |
| Nenhum evento recebido após o carregamento de um ficheiro | Subscrição de evento não foi criada | Verifique se existe uma subscrição de eventos no tópico personalizado, com a sua Function App ou o webhook como endpoint. |
| Os eventos são entregues, mas a Function App não é acionada | Validação pendente do ponto final de subscrição de eventos | O Event Grid envia um evento de validação quando cria uma subscrição. Se o seu endpoint não responder com o código de validação, a entrega é suspensa. Ver entrega de eventos em Webhook. |
| Os eventos deixam de ser realizados | O endpoint retorna erros HTTP 4xx ou 5xx | O Event Grid tenta a entrega novamente com recuo exponencial durante até 24 horas. Verifique os registos da sua aplicação de funções no Application Insights ou no separador Monitor para obter detalhes sobre o erro. |
Erros de permissões
- O Event Grid não pode publicar para o tópico personalizado: Verifique se o principal do serviço Microsoft Defender for Storage tem o papel de Remetente de Dados EventGrid no seu tópico Event Grid, ou se o tópico permite publicação anónima. O Defender for Storage utiliza a sua própria identidade de serviço para publicar eventos.
- A Function App não pode eliminar ou mover blobs: Confirme que a identidade gerida atribuída ao sistema da Function App tem o papel de Storage Blob Data Contributor na conta de armazenamento de origem (e na conta de destino, se estiver em quarentena). Verifique se existem atribuições de negação que possam bloquear a identidade.
Problemas de rede e firewall
- Tópico do Event Grid com um ponto final privado: O Defender for Storage não consegue enviar para tópicos do Event Grid que só aceitam ligações através de pontos finais privados. O tópico personalizado deve permitir o acesso a partir de endereços IP públicos.
- Function App numa rede virtual: Se a Function App correr numa rede virtual com restrições de saída, certifique-se de que a Function App consegue aceder à conta de armazenamento e a quaisquer outros serviços que precise de chamar (como um endpoint de notificação).
Validação de subscrição
Quando cria ou atualiza uma subscrição de evento que utiliza um endpoint webhook, o Event Grid envia um evento de validação de subscrição. O seu endpoint deve responder com o validationCode do corpo do pedido. Razões comuns pelas quais a validação falha:
- O endpoint ainda não está implementado ou não está a ouvir quando a subscrição é criada.
- O endpoint devolve um código de estado HTTP não 200.
- O endpoint não devolve
validationCodeno corpo da resposta.
Para reativar a validação, apague e recrie a subscrição do evento, ou use a opção Revalidar no portal Azure.
Verificar a entrega de eventos no portal do Azure
- Vai ao tópico personalizado da tua Grade de Eventos.
- Selecione métricas e reveja as contagens de Eventos Publicados, Eventos Emparelhados e Falhas na Entrega.
- Selecione Subscrições do Evento e verifique o estado de saúde da subscrição.
- Para entregas falhadas, selecione Dead Letter (se configurado) para inspecionar eventos não entregues.