Recolha registos do serviço de apps do Azure
Este documento explica como exportar registos do serviço de apps do Azure para o Google Security Operations através de uma conta de armazenamento do Azure. O analisador transforma os registos do Azure App Service formatados em JSON não processado num modelo de dados unificado (UDM) estruturado. Extrai campos relevantes dos registos não processados, realiza a limpeza e a normalização de dados e mapeia as informações extraídas para os campos da UDM correspondentes, gerando, em última análise, um objeto JSON em conformidade com a UDM para cada entrada de registo.
Antes de começar
Certifique-se de que cumpre os seguintes pré-requisitos:
- Instância do Google SecOps
- Um inquilino do Azure ativo
- Acesso privilegiado ao Azure
Configure a conta de armazenamento do Azure
- Na consola do Azure, pesquise Contas de armazenamento.
- Clique em + Criar.
- Especifique valores para os seguintes parâmetros de entrada:
- Subscrição: selecione a subscrição.
- Grupo de recursos: selecione o grupo de recursos.
- Região: selecione a região.
- Desempenho: selecione o desempenho (padrão recomendado).
- Redundância: selecione a redundância (GRS ou LRS recomendado).
- Nome da conta de armazenamento: introduza um nome para a nova conta de armazenamento.
- Clique em Rever + criar.
- Reveja a vista geral da conta e clique em Criar.
- Na página Vista geral da conta de armazenamento, selecione o submenu Chaves de acesso em Segurança + rede.
- Clique em Mostrar junto a key1 ou key2.
- Clique em Copiar para a área de transferência para copiar a chave.
- Guarde a chave num local seguro para utilização posterior.
- Na página Vista geral da conta de armazenamento, selecione o submenu Pontos finais em Definições.
- Clique em Copiar para a área de transferência para copiar o URL do ponto final do serviço Blob; por exemplo,
https://<storageaccountname>.blob.core.windows.net. - Guarde o URL do ponto final numa localização segura para utilização posterior.
Como configurar a exportação de registos para registos do serviço de apps do Azure
- Inicie sessão no Portal do Azure com a sua conta privilegiada.
- Aceda a Serviços de apps e selecione o serviço de apps necessário em utilização.
- Selecione Monitorização > Registos do serviço de apps.
- Ative a opção Registo de aplicações (blob).
- Selecione Armazenamento em Registo do serviço Web.
- Selecione a Subscrição e a Conta de armazenamento.
- Defina o Período de retenção e a Quota de acordo com os seus requisitos.
- Ative a opção Mensagens de erro detalhadas.
- Ative a opção Failed request tracing.
- Clique em Guardar.
Configure feeds
Existem dois pontos de entrada diferentes para configurar feeds na plataforma Google SecOps:
- Definições do SIEM > Feeds > Adicionar novo feed
- Content Hub > Pacotes de conteúdo > Começar
Como configurar o feed do Azure App Service
- Clique no pacote Plataforma Azure.
- Localize o tipo de registo Azure App Service e clique em Adicionar novo feed.
Especifique valores para os seguintes campos:
- Source Type: Microsoft Azure Blob Storage V2.
- URI do Azure: o URL do ponto final do blob.
ENDPOINT_URL/BLOB_NAME- Substitua o seguinte:
ENDPOINT_URL: o URL do ponto final do blob (https://<storageaccountname>.blob.core.windows.net)BLOB_NAME: o nome do blob (por exemplo,<logname>-logs)
- Substitua o seguinte:
Opções de eliminação de origens: selecione a opção de eliminação de acordo com as suas preferências de carregamento.
Idade máxima do ficheiro: inclui ficheiros modificados no último número de dias. A predefinição é 180 dias.
Chave partilhada: a chave de acesso ao armazenamento de blobs do Azure.
Opções avançadas
- Nome do feed: um valor pré-preenchido que identifica o feed.
- Espaço de nomes do recurso: espaço de nomes associado ao feed.
- Etiquetas de carregamento: etiquetas aplicadas a todos os eventos deste feed.
Clique em Criar feed.
Para mais informações sobre a configuração de vários feeds para diferentes tipos de registos nesta família de produtos, consulte o artigo Configure feeds por produto.
Tabela de mapeamento da UDM
| Campo de registo | Mapeamento de 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 | Nome mudado 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 |
| Anfitrião | read_only_udm.principal.asset.hostname | Mapeamento direto |
| Anfitrião | 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 | O nome foi alterado 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 | Nome mudado de SPort |
| ScBytes | read_only_udm.network.received_bytes | Nome mudado de ScBytes |
| ScStatus | read_only_udm.network.http.response_code | Nome mudado de ScStatus |
| TimeTaken | read_only_udm.additional.fields.value.string_value | Mapeamento direto |
| Tipo | read_only_udm.additional.fields.value.string_value | Mapeamento direto |
| Utilizador | 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 |
| nível | read_only_udm.security_result.severity | Com letras maiúsculas e o nome foi alterado de nível |
| localização | 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 data/hora RFC 3339 |
| resourceId | read_only_udm.target.resource.attribute.labels.value | Mapeamento direto |
| resourceId | read_only_udm.target.resource.product_object_id | Nome alterado de resourceId |
| read_only_udm.metadata.event_type | Determinado com base na presença de principal, alvo e protocolo. Definido como NETWORK_HTTP se o principal, o destino e o Protocol=HTTP estiverem presentes. Definido como NETWORK_CONNECTION se o principal e o alvo 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 da Google SecOps.