Coletar registros do Serviço de App do Azure
Este documento explica como exportar registros do Serviço de Aplicativo do Azure para o Google Security Operations usando uma conta de armazenamento do Azure. O analisador transforma registros brutos do Serviço de Aplicativo do Azure formatados em JSON em um modelo de dados unificado (UDM) estruturado. Ele extrai campos relevantes dos registros brutos, realiza limpeza e normalização de dados e mapeia as informações extraídas para os campos correspondentes da UDM, gerando um objeto JSON compatível com a UDM para cada entrada de registro.
Antes de começar
Verifique se você atende aos seguintes pré-requisitos:
- Instância do Google SecOps
- Um locatário ativo do Azure
- Acesso privilegiado ao Azure
Configurar a conta de armazenamento do Azure
- No console do Azure, pesquise Contas de armazenamento.
- Clique em + Criar.
- Especifique valores para os seguintes parâmetros de entrada:
- Assinatura: selecione a assinatura.
- Grupo de recursos: selecione o grupo de recursos.
- Região: selecione a região.
- Performance: selecione a performance (padrão recomendado).
- Redundância: selecione a redundância (GRS ou LRS recomendado).
- Nome da conta de armazenamento: insira um nome para a nova conta de armazenamento.
- Clique em Revisar + criar.
- Revise a visão geral da conta e clique em Criar.
- Na página Visão geral da conta de armazenamento, selecione o submenu Chaves de acesso em Segurança e rede.
- Clique em Mostrar ao lado de key1 ou key2.
- Clique em Copiar para a área de transferência para copiar a chave.
- Salve a chave em um local seguro para uso posterior.
- Na página Visão geral da conta de armazenamento, selecione o submenu Endpoints em Configurações.
- Clique em Copiar para a área de transferência para copiar o URL do endpoint do serviço de blob. Por exemplo,
https://<storageaccountname>.blob.core.windows.net
. - Salve o URL do endpoint em um local seguro para uso posterior.
Como configurar a exportação de registros para registros do Serviço de App do Azure
- Faça login no portal do Azure usando sua conta privilegiada.
- Acesse Serviços de app e selecione o serviço de app necessário em uso.
- Selecione Monitoring > App Service Logs.
- Ative a opção ON para Geração de registros de aplicativos (blob).
- Selecione Armazenamento em Registro de serviços da Web.
- Selecione a Assinatura e a Conta de armazenamento.
- Defina o período de retenção e a cota de acordo com seus requisitos.
- Ative a opção ON para Mensagens de erro detalhadas.
- Ative a opção Rastreamento de solicitações com falha.
- Clique em Salvar.
Configurar feeds
Há dois pontos de entrada diferentes para configurar feeds na plataforma do Google SecOps:
- Configurações do SIEM > Feeds > Adicionar novo
- Central de conteúdo > Pacotes de conteúdo > Começar
Como configurar o feed do Serviço de App do Azure
- Clique no pacote Plataforma do Azure.
- Localize o tipo de registro Serviço de aplicativo do Azure e clique em Adicionar novo feed.
Especifique valores para os seguintes campos:
- Tipo de origem: armazenamento de blobs V2 do Microsoft Azure.
- URI do Azure: o URL do endpoint do blob.
ENDPOINT_URL/BLOB_NAME
- Substitua:
ENDPOINT_URL
: o URL do endpoint do blob (https://<storageaccountname>.blob.core.windows.net
)BLOB_NAME
: o nome do blob (por exemplo,<logname>-logs
)
- Substitua:
Opções de exclusão de origem: selecione a opção de exclusão de acordo com suas preferências de ingestão.
Idade máxima do arquivo: inclui arquivos modificados no último número de dias. O padrão é de 180 dias.
Chave compartilhada: a chave de acesso ao Azure Blob Storage.
Opções avançadas
- Nome do feed: um valor pré-preenchido que identifica o feed.
- Namespace do recurso: namespace associado ao feed.
- Rótulos de ingestão: rótulos aplicados a todos os eventos deste feed.
Clique em Criar feed.
Para mais informações sobre como configurar vários feeds para diferentes tipos de registros nessa família de produtos, consulte Configurar feeds por produto.
Tabela de mapeamento do UDM
Campo de registro | Mapeamento do UDM | Lógica |
---|---|---|
AppRoleInstance | read_only_udm.principal.resource.product_object_id | Mapeamento direto |
AppRoleName | read_only_udm.principal.resource.name | Mapeamento direto |
AppVersion | read_only_udm.principal.resource.attribute.labels.value | Mapeamento direto |
Categoria | read_only_udm.metadata.product_event_type | Mapeamento direto |
CIp | read_only_udm.target.asset.ip | Mapeamento direto |
CIp | read_only_udm.target.ip | Mapeamento direto |
ClientCity | read_only_udm.principal.location.city | Mapeamento direto |
ClientCountryOrRegion | read_only_udm.principal.location.country_or_region | Mapeamento direto |
ClientIP | read_only_udm.principal.asset.ip | Mapeamento direto |
ClientIP | read_only_udm.principal.ip | Mapeamento direto |
ClientStateOrProvince | read_only_udm.principal.location.state | Mapeamento direto |
ClientType | read_only_udm.additional.fields.value.string_value | Mapeamento direto |
ComputerName | read_only_udm.principal.asset.hostname | Mapeamento direto |
ComputerName | read_only_udm.principal.hostname | Mapeamento direto |
Cookie | read_only_udm.principal.resource.attribute.labels.value | Mapeamento direto |
CsBytes | read_only_udm.network.sent_bytes | Renomeado de CsBytes |
CsHost | read_only_udm.additional.fields.value.string_value | Mapeamento direto |
CsMethod | read_only_udm.network.http.method | Mapeamento direto |
CsUriQuery | read_only_udm.principal.resource.attribute.labels.value | Mapeamento direto |
CsUriStem | read_only_udm.additional.fields.value.string_value | Mapeamento direto |
CsUriStem | read_only_udm.target.url | Mapeamento direto |
CsUsername | read_only_udm.principal.user.user_display_name | Mapeamento direto |
EventIpAddress | read_only_udm.principal.asset.ip | Mapeamento direto |
EventIpAddress | read_only_udm.principal.ip | Mapeamento direto |
EventPrimaryStampName | read_only_udm.additional.fields.value.string_value | Mapeamento direto |
EventStampName | read_only_udm.additional.fields.value.string_value | Mapeamento direto |
EventStampType | read_only_udm.additional.fields.value.string_value | Mapeamento direto |
Host | read_only_udm.principal.asset.hostname | Mapeamento direto |
Host | read_only_udm.principal.hostname | Mapeamento direto |
IKey | read_only_udm.target.resource.attribute.labels.value | Mapeamento direto |
Instância | read_only_udm.additional.fields.value.string_value | Mapeamento direto |
Nome | read_only_udm.additional.fields.value.string_value | Mapeamento direto |
Protocolo | read_only_udm.additional.fields.value.string_value | Mapeamento direto |
Protocolo | read_only_udm.network.application_protocol | Mapeado para HTTP se o protocolo for HTTP/1.1 |
Referenciador | read_only_udm.network.http.referral_url | Mapeamento direto |
ResourceGUID | read_only_udm.target.resource.product_object_id | Renomeado de ResourceGUID |
SDKVersion | read_only_udm.additional.fields.value.string_value | Mapeamento direto |
SDKVersion | read_only_udm.principal.resource.attribute.labels.value | Mapeamento direto |
SPort | read_only_udm.principal.port | Renomeado de SPort |
ScBytes | read_only_udm.network.received_bytes | Renomeado de ScBytes |
ScStatus | read_only_udm.network.http.response_code | Renomeado de ScStatus |
TimeTaken | read_only_udm.additional.fields.value.string_value | Mapeamento direto |
Tipo | read_only_udm.additional.fields.value.string_value | Mapeamento direto |
Usuário | read_only_udm.principal.user.userid | Mapeamento direto |
UserAddress | read_only_udm.principal.asset.ip | Extraído de UserAddress se for um endereço IP válido |
UserAddress | read_only_udm.principal.ip | Extraído de UserAddress se for um endereço IP válido |
UserAgent | read_only_udm.network.http.user_agent | Mapeamento direto |
UserDisplayName | read_only_udm.principal.user.user_display_name | Mapeamento direto |
categoria | read_only_udm.metadata.product_event_type | Mapeamento direto |
level | read_only_udm.security_result.severity | Em maiúsculas e renomeado de "level" |
local | read_only_udm.principal.location.name | Mapeamento direto |
operationName | read_only_udm.additional.fields.value.string_value | Mapeamento direto |
record.properties.Protocol | read_only_udm.additional.fields.value.string_value | Mapeamento direto |
record.properties.Result | read_only_udm.security_result.summary | Mapeamento direto |
record.time | read_only_udm.metadata.event_timestamp | Analisado como carimbo de data/hora RFC 3339 |
resourceId | read_only_udm.target.resource.attribute.labels.value | Mapeamento direto |
resourceId | read_only_udm.target.resource.product_object_id | Renomeado de resourceId |
read_only_udm.metadata.event_type | Determinado com base na presença de principal, destino e protocolo. Definido como NETWORK_HTTP se a conta principal, o destino e o Protocolo=HTTP estiverem presentes. Definido como NETWORK_CONNECTION se a conta principal e o destino estiverem presentes. Definido como STATUS_UPDATE se apenas o principal estiver presente. Caso contrário, defina como GENERIC_EVENT . |
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.