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 de login do Azure AD
- 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
- Central de conteúdo > Pacotes de conteúdo
Configure feeds em Configurações do SIEM > Feeds
Para configurar vários feeds para diferentes tipos de registros nessa família de produtos, consulte Configurar feeds por produto.
Para configurar um único feed, siga estas etapas:
- Acesse Configurações do SIEM > Feeds.
- Clique em Adicionar novo feed.
- Na próxima página, clique em Configurar um único feed.
- No campo Nome do feed, insira um nome para o feed, por exemplo, Logs do serviço de aplicativo do Azure.
- Selecione Microsoft Azure Blob Storage como o Tipo de origem.
- Selecione Serviço de aplicativo do Azure como o Tipo de registro.
- Clique em Próxima.
Especifique valores para os seguintes parâmetros de entrada:
- 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:
- URI é um: selecione o TIPO DE URI de acordo com a configuração do fluxo de registros (Arquivo único | Diretório | Diretório que inclui subdiretórios).
Opções de exclusão de origem: selecione a opção de exclusão de acordo com suas preferências de ingestão.
Chave compartilhada: a chave de acesso ao Azure Blob Storage.
Namespace do recurso: o namespace do recurso.
Rótulos de ingestão: o rótulo a ser aplicado aos eventos deste feed.
- URI do Azure: o URL do endpoint do blob.
Clique em Próxima.
Revise a nova configuração do feed na tela Finalizar e clique em Enviar.
Configurar feeds na Central de conteúdo
Especifique valores para os seguintes campos:
- 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,insights-logs-<logname>
)
- Substitua:
- URI é um: selecione o TIPO DE URI de acordo com a configuração do fluxo de registros (Arquivo único | Diretório | Diretório que inclui subdiretórios).
- Opções de exclusão de origem: selecione a opção de exclusão de acordo com suas preferências de ingestão.
- 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.
- Tipo de origem: método usado para coletar registros no Google SecOps.
- Namespace do recurso: namespace associado ao feed.
- Rótulos de ingestão: rótulos aplicados a todos os eventos deste feed.
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.