Coletar registros do SWG da Dope Security
Este documento explica como ingerir registros do SWG da Dope Security no Google Security Operations usando o Amazon S3.
O dope.swg da Dope Security é um gateway da Web seguro baseado em endpoints que oferece filtragem da Web em tempo real, proteção contra malware e controle de aplicativos na nuvem. Cada dope.endpoint envia registros de transações da Web para o dope.cloud a cada 15 minutos, que são exportados automaticamente para seu bucket do AWS S3 no formato JSONL GZIP compactado para integração com SIEM.
Antes de começar
Verifique se você tem os pré-requisitos a seguir:
- Uma instância do Google SecOps
- Acesso privilegiado a Dope Security dope.console
- Acesso privilegiado à AWS (S3, IAM)
- Seu locatário da Dope Security precisa estar na mesma região da AWS que o bucket do S3. Verifique a região na página Configurações > SIEM.
Configurar a integração do SIEM da Dope Security
Para configurar a integração do SIEM da Dope Security, faça o seguinte:
- Faça login no dope.console em https://console.dope.security
- Acesse Configurações > SIEM > Configurações de integração do SIEM.
- Na lista Tipo de SIEM, selecione AWS S3.
Observe a região da AWS mostrada no lado direito da página (por exemplo, US-EAST-2).
Deixe esta página aberta porque você vai voltar para concluir a configuração depois de configurar o AWS S3.
Configurar o bucket do AWS S3 e o IAM para o Google SecOps
- Crie um bucket do Amazon S3. Para mais informações, consulte Como criar um bucket.
- Ao criar o bucket, verifique se a região corresponde à região mostrada na página de integração do SIEM da Dope Security (por exemplo, US East (Ohio) us-east-2).
Salve o Nome do bucket para referência futura (por exemplo,
chronicle-dope-swg-logs).Crie um User. Para mais informações, consulte Como criar um usuário do IAM.
Selecione o usuário que você criou.
Selecione a guia Credenciais de segurança.
Clique em Criar chave de acesso na seção Chaves de acesso.
Selecione Serviço de terceiros como Caso de uso.
Clique em Próxima.
Opcional: adicione uma tag de descrição.
Clique em Criar chave de acesso.
Clique em Baixar arquivo .csv para salvar a chave de acesso e a chave de acesso secreta para referência futura.
Clique em Concluído.
Selecione a guia Permissões.
Clique em Adicionar permissões na seção Políticas de permissões.
Selecione Adicionar permissões.
Selecione Anexar políticas diretamente.
Pesquise a política AmazonS3FullAccess.
Selecione a política.
Clique em Próxima.
Clique em Adicionar permissões
Configurar a conexão do Amazon S3 da Dope Security
- Volte para dope.console em Configurações > SIEM > Configurações de integração do SIEM.
- No campo Nome do bucket do S3, insira o nome do bucket do S3 (por exemplo,
chronicle-dope-swg-logs). - No painel à direita, você vai encontrar uma seção Política do bucket com uma política JSON pré-gerada.
- Clique em Copiar ao lado do JSON da política para copiar para a área de transferência.
- Em uma nova guia do navegador, acesse o console do AWS S3.
- Selecione o bucket do S3 (por exemplo,
chronicle-dope-swg-logs). - Acesse a guia Permissões.
- Role a tela para baixo até a seção Política do bucket.
- Clique em Editar.
- Cole o JSON da política que você copiou do dope.console na área de texto Política.
- Clique em Salvar alterações.
- Volte para a guia do navegador dope.console.
- Clique em Sincronizar na parte de baixo da página "Configurações de integração do SIEM".
- Aguarde a conclusão da sincronização.
- Verifique se uma marca de seleção verde aparece ao lado do campo Nome do bucket do S3.
Verifique se o carimbo de data/hora da Última sincronização aparece no canto superior direito da página.
Configurar um feed no Google SecOps para ingerir registros do SWG da Dope Security
- Acesse Configurações do SIEM > Feeds.
- Clique em Adicionar novo feed.
- Na próxima página, clique em Configurar um único feed.
- Insira um nome exclusivo para o Nome do feed (por exemplo,
Dope Security SWG Logs). - Selecione Amazon S3 V2 como o Tipo de origem.
- Selecione DOPE_SWG como o Tipo de registro.
- Clique em Próxima e em Enviar.
Especifique valores para os seguintes campos:
- URI do S3:
s3://chronicle-dope-swg-logs/(substitua pelo nome do seu bucket) - Opção de exclusão da fonte: selecione a opção de exclusão de acordo com sua preferência.
- Idade máxima do arquivo: inclui arquivos modificados nos últimos dias. O padrão é 180 dias.
- ID da chave de acesso: chave de acesso do usuário com acesso ao bucket do S3 (da etapa 12 da configuração da AWS)
- Chave de acesso secreta: chave secreta do usuário com acesso ao bucket do S3 (da etapa 12 da configuração da AWS)
- Namespace do recurso: o namespace do recurso
- Rótulos de ingestão: o rótulo a ser aplicado aos eventos deste feed
- URI do S3:
Clique em Próxima e em Enviar.
Referência do formato de dados de registros
A Dope Security exporta registros no formato JSONL (JSON Lines) com compactação GZIP. Cada entrada de registro contém os seguintes campos principais:
| Campo | Descrição |
|---|---|
| Carimbo de data/hora | Carimbo de data/hora ISO 8601 de quando a transação da Web foi solicitada. |
| Duração | Duração da conexão em milissegundos |
| Destino correspondente | Domínio com que a categoria de drogas foi comparada. |
| IP de destino | Endereço IP de destino do URL solicitado. |
| ID do locatário | ID exclusivo do locatário dope.cloud do cliente. |
| ID do agente | ID exclusivo do agente para o dope.endpoint |
| User | Usuário conectado em dope.endpoint |
| Usuário do OIDC | Endereço de e-mail do usuário autenticado (quando a autenticação OIDC está ativada) |
| Categorias | Números de categoria de droga correspondentes (0 a 88) para o URL solicitado |
| Veredito | Verificação da política: permitir (0), bloquear (1), aviso (2) ou ignorar (3) |
| Dados enviados | Quantidade de dados enviados na conexão (bytes) |
| Dados recebidos | Quantidade de dados recebidos na conexão (bytes) |
| Tipo de política | Tipo de política aplicada: Web, controle de aplicativos na nuvem (CAC), categoria personalizada, bypass ou malware |
| Detalhes do bloco | Para veredictos de bloqueio: categoria de droga, categoria personalizada, aplicativo na nuvem ou tipo de malware |
| Nome do arquivo | Nome de qualquer arquivo baixado |
| Hash do arquivo | Hash de arquivo para arquivos baixados |
| Nome do processo | Nome do processo que faz a solicitação de URL. |
| URL | URL completo solicitado |
| Nome da política | Nome da política aplicada |
| Protocolo | Protocolo usado (por exemplo, HTTP/2, HTTP/1.1) |
| Nome do host | Nome do host do dispositivo |
| Método de solicitação HTTP | Método de solicitação HTTP (por exemplo, GET, POST, PUT) |
| Árvore de chamadas de processo | Relações pai-filho de operações de geração de processos com argumentos de comando |
Para os mapeamentos completos de categoria e veredito, consulte a documentação Mapeamentos de categoria e veredito da Dope Security (em inglês).
Tabela de mapeamento do UDM
| Campo de registro | Mapeamento do UDM | Lógica |
|---|---|---|
| policy.categories, request.processTree | additional.fields | Mesclado como lista de "policy.categories" e "request.processTree" em JSON |
| timestamp | metadata.event_timestamp | Analisado como carimbo de data/hora ISO8601 em JSON e CSV |
| metadata.event_type | Definido como NETWORK_HTTP se has_principal, has_target e has_http estiverem em JSON. Caso contrário, NETWORK_CONNECTION se has_principal e has_target estiverem presentes. Caso contrário, USER_UNCATEGORIZED se has_user estiver presente. Caso contrário, STATUS_UPDATE se has_principal estiver presente. Caso contrário, GENERIC_EVENT. Definido como NETWORK_HTTP em CSV. | |
| schemaVersion | metadata.product_version | Valor copiado diretamente de "schemaVersion" em JSON |
| request.httpVersion | network.http.user_agent | Valor copiado diretamente de "request.httpVersion" em JSON |
| bandwidth.dataReceivedInBytes, bytes_received | network.received_bytes | Convertido para uinteger de bandwidth.dataReceivedInBytes em JSON ou bytes_received em CSV se não estiver vazio e não for 0 |
| bandwidth.dataSentInBytes, bytes_sent | network.sent_bytes | Convertido para uinteger de bandwidth.dataSentInBytes em JSON ou bytes_sent em CSV se não estiver vazio e não for 0 |
| request.duration | network.session_duration.seconds | Convertido para inteiro de request.duration em JSON |
| endpoint.agentID, endpoint_id | principal.asset.asset_id | Prefixo com DS: de endpoint.agentID em JSON ou endpoint_id em CSV |
| endpoint.tenantID | principal.asset.attribute.cloud.project.id | Valor copiado diretamente de endpoint.tenantID em JSON |
| endpoint.deviceName | principal.asset.hostname | Valor copiado diretamente de endpoint.deviceName em JSON |
| endpoint.deviceName, endpoint_hostname | principal.hostname | Valor de endpoint.deviceName em JSON ou endpoint_hostname em CSV |
| request.processName | principal.process.command_line | Valor copiado diretamente de "request.processName" em JSON |
| process_name | principal.process.file.names | Valor copiado diretamente de "process_name" no CSV |
| sso_user, user | principal.user.account_type | Definido como DOMAIN_ACCOUNT_TYPE se sso_user não estiver vazio. Caso contrário, LOCAL_ACCOUNT_TYPE no CSV |
| endpoint.oidcUser | principal.user.email_addresses | Unidos se endpoint.oidcUser corresponder ao regex de e-mail em JSON |
| endpoint.oidcUser | principal.user.user_display_name | O valor é copiado diretamente se endpoint.oidcUser não corresponder à expressão regular de e-mail em JSON. |
| endpoint.user, sso_user, user | principal.user.userid | Valor de endpoint.user em JSON; de sso_user se não estiver vazio, caso contrário, de user em CSV |
| security_result | security_result | Mesclado de "security_result" em JSON |
| policy.verdict, verdict | security_result.action | Definido como BLOCK se 1, ALLOW se 0, CHALLENGE se 2 de policy.verdict em JSON ou verdict em CSV |
| categories | security_result.action_details | Valor copiado diretamente das categorias no CSV |
| policy.policyName | security_result.rule_name | Valor copiado diretamente de policy.policyName em JSON |
| policy.policyType | security_result.rule_type | Valor copiado diretamente de policy.policyType em JSON |
| file_name | target.file.names | Valor copiado diretamente de "file_name" no CSV |
| file_hash | target.file.sha256 | Valor copiado diretamente de "file_hash" no CSV |
| destination.matchedDestination, domain | target.hostname | Valor de destination.matchedDestination se não for IP em JSON; de domínio em CSV |
| destination.matchedDestination, destination.destinationIP, ip | target.ip | Valor de destination.matchedDestination ou destination.destinationIP se o IP estiver em JSON; de ip em CSV |
| destination.url, url | target.url | Valor de "destination.url" em JSON; de "url" em CSV |
| metadata.product_name | Definido como "DOPE_SWG" em JSON e "SWG" em CSV | |
| metadata.vendor_name | Definido como "DOPE_SWG" em JSON e "Dope Security" em CSV. |
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.