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
- 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.