Coletar registros do WAF da Akamai

Compatível com:

Visão geral

Esse analisador processa os registros do firewall de aplicativos da Web (WAF) da Akamai, com suporte aos formatos syslog e CEF. Ele extrai campos como endereços IP, URLs, métodos HTTP, códigos de resposta, user agents e informações de regras de segurança, mapeando-os para o UDM para uma representação consistente. O analisador também processa campos específicos da Akamai, como attackData e clientReputation, realizando as transformações de dados necessárias e enriquecendo a saída do UDM.

Antes de começar

  • Verifique se você tem uma instância do Google SecOps.
  • Verifique se você tem acesso privilegiado ao AWS IAM e ao S3.
  • Verifique se você tem acesso privilegiado ao Akamai.

Configurar o bucket do Amazon S3

  1. Crie um bucket do Amazon S3 seguindo este guia do usuário: Criar um bucket.
  2. Salve o Nome e a Região do bucket para referência futura.
  3. Crie um usuário seguindo este guia: Como criar um usuário do IAM.
  4. Selecione o Usuário criado.
  5. Selecione a guia Credenciais de segurança.
  6. Clique em Criar chave de acesso na seção Chaves de acesso.
  7. Selecione Serviço de terceiros como o caso de uso.
  8. Clique em Próxima.
  9. Opcional: adicione uma tag de descrição.
  10. Clique em Criar chave de acesso.
  11. Clique em Fazer o download do arquivo .csv. Salve a Chave de acesso e a Chave de acesso secreta para referência futura.
  12. Clique em Concluído.
  13. Selecione a guia Permissões.
  14. Clique em Adicionar permissões na seção Políticas de permissões.
  15. Selecione Adicionar permissões.
  16. Selecione Anexar políticas diretamente.
  17. Pesquise a política AmazonS3FullAccess.
  18. Selecione a política.
  19. Clique em Próxima.
  20. Clique em Adicionar permissões

Configurar o WAF da Akamai para enviar registros ao Amazon S3

  1. Faça login no Control Center da Akamai.
  2. Acesse a seção Segurança.
  3. Selecione Registros.
  4. Configure uma nova entrega de registros:

    • Origem de registro:selecione sua configuração do WAF.
    • Destino da entrega:escolha Amazon S3.
    • Bucket do S3:especifique o nome do bucket do S3 que você criou.
    • Região:selecione a região da AWS em que seu bucket do S3 está localizado.
    • ID da chave de acesso e chave de acesso secreta:informe as credenciais que você gerou.
    • Formato do registro:escolha o formato de registro relevante (por exemplo, JSON).
    • Frequência de envio:selecione a frequência adequada para o envio de registros (por exemplo, a cada 5 minutos).
  5. Verificar a entrega de registros:

    • Depois de configurar o LDS, monitore o bucket do S3 para verificar se há arquivos de registro recebidos.

Configurar um feed no Google SecOps para processar registros do WAF da Akamai

  1. Acesse Configurações do SIEM > Feeds.
  2. Clique em Adicionar novo.
  3. No campo Nome do feed, insira um nome para o feed (por exemplo, Akamai WAF Logs).
  4. Selecione Amazon S3 como o Tipo de origem.
  5. Selecione Akamai WAF como o Tipo de registro.
  6. Clique em Próxima.
  7. Especifique valores para os seguintes parâmetros de entrada:

    • Região: a região em que o bucket do Amazon S3 está localizado.
    • URI do S3: o URI do bucket. s3:/BUCKET_NAME Substitua:
      • BUCKET_NAME: o nome do bucket
    • 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 da origem: selecione a opção de exclusão de acordo com sua preferência.
    • ID da chave de acesso: a chave de acesso do usuário com acesso ao bucket do S3.
    • Chave de acesso secreta: a chave secreta do usuário com acesso ao bucket do S3.
    • Namespace de recursos: o namespace de recursos.
    • Rótulos de ingestão: o rótulo a ser aplicado aos eventos desse feed.
  8. Clique em Próxima.

  9. Revise a configuração do novo feed na tela Finalizar e clique em Enviar.

Tabela de mapeamento do UDM

Campo de registro (em ordem crescente) Mapeamento do UDM Lógica
attackData.clientIP principal.ip, principal.asset.ip Endereço IP do cliente que inicia a solicitação. Extraídos do campo attackData.clientIP nos registros akamai_siem.
attackData.configId metadata.product_log_id ID da configuração de segurança. Extraídos do campo attackData.configId nos registros akamai_siem. Também adicionado como detection_field no objeto security_result.
attackData.policyId N/A Usado na lógica do analisador para preencher security_result.summary com o valor "PolicyId:[value]".
attackData.ruleActions security_result.action, security_result.action_details Ações realizadas com base na regra acionada. Extraídos do campo attackData.ruleActions nos registros akamai_siem. "deny" é mapeado para BLOQUEAR, outros valores ("alert", "monitor", "allow", "tarpit") são mapeados para PERMITIR. O valor original também é armazenado em action_details.
attackData.ruleData security_result.detection_fields Dados associados à regra acionada. Extraídos do campo attackData.ruleData nos registros akamai_siem. Adicionado a security_result.detection_fields com a chave "RuleData".
attackData.ruleMessages security_result.threat_name Mensagens associadas à regra acionada. Extraídos do campo attackData.ruleMessages nos registros akamai_siem.
attackData.ruleSelectors security_result.detection_fields Seletores associados à regra acionada. Extraídos do campo attackData.ruleSelectors nos registros akamai_siem. Adicionado a security_result.detection_fields com a chave "RuleSelector".
attackData.ruleTags security_result.category_details Tags associadas à regra acionada. Extraídos do campo attackData.ruleTags nos registros akamai_siem.
attackData.ruleVersions security_result.detection_fields Versões das regras acionadas. Extraídos do campo attackData.ruleVersions nos registros akamai_siem. Adicionado a security_result.detection_fields com a chave "Rule Version".
clientReputation principal.labels Informações de reputação do cliente. Extraídos do campo clientReputation nos registros akamai_siem. Adicionado como um rótulo ao elemento principal com a chave "reputação".
cliIP, cli_ip, principal_ip principal.ip, principal.asset.ip Endereço IP do cliente. Extraídos de cliIP, cli_ip ou principal_ip, dependendo do formato do registro.
cp additional.fields Código CP. Extraídos do campo cp. Adicionado a additional.fields com a chave "cp".
eventId metadata.product_log_id ID do evento. Extraídos do campo eventId.
eventTime, log_date metadata.event_timestamp Carimbo de data/hora do evento. Extraídos de eventTime ou analisados de log_date, dependendo do formato do registro.
eventType.eventDefinition.eventDefinitionId target.resource.product_object_id ID da definição do evento. Extraídos de eventType.eventDefinition.eventDefinitionId.
eventType.eventDefinition.eventDescription metadata.description Descrição do evento. Extraídos de eventType.eventDefinition.eventDescription.
eventType.eventDefinition.eventName metadata.product_event_type Nome do evento. Extraídos de eventType.eventDefinition.eventName.
eventType.eventTypeId additional.fields ID do tipo de evento. Extraídos de eventType.eventTypeId. Adicionado a additional.fields com a chave "eventTypeId".
eventType.eventTypeName additional.fields Nome do tipo de evento. Extraídos de eventType.eventTypeName. Adicionado a additional.fields com a chave "eventTypeName".
format N/A Usado pelo analisador para determinar o formato do registro.
geo.asn principal.location.name Número de sistema autônomo (ASN, na sigla em inglês). Extraídos de geo.asn ou AkamaiSiemASN, dependendo do formato do registro. O valor tem o prefixo "ASN ".
geo.city principal.location.city Cidade. Extraídos de geo.city ou AkamaiSiemCity, dependendo do formato do registro.
geo.country principal.location.country_or_region País. Extraídos de geo.country ou AkamaiSiemContinent, dependendo do formato do registro.
httpMessage.bytes network.sent_bytes Bytes enviados na mensagem HTTP. Extraídos de httpMessage.bytes.
httpMessage.host target.hostname, target.asset.hostname Nome do host. Extraídos de httpMessage.host ou reqHost, dependendo do formato do registro.
httpMessage.method network.http.method Método HTTP. Extraídos de httpMessage.method, network_http_method ou reqMethod, dependendo do formato do registro. Convertido em letras maiúsculas.
httpMessage.path target.url Caminho da solicitação. Extraídos de httpMessage.path, target_url ou reqPath, dependendo do formato do registro. Se httpMessage.query estiver presente, ele será anexado ao caminho com um separador "?".
httpMessage.port target.port Porta. Extraídos de httpMessage.port ou reqPort, dependendo do formato do registro.
httpMessage.protocol N/A Usado pelo analisador para determinar o protocolo.
httpMessage.query N/A Usado na lógica do analisador para anexar a httpMessage.path, se presente.
httpMessage.requestId network.session_id ID da solicitação. Extraídos de httpMessage.requestId ou reqId, dependendo do formato do registro.
httpMessage.requestHeaders, AkamaiSiemRequestHeaders additional.fields Cabeçalhos de solicitação. Extraídos de httpMessage.requestHeaders ou AkamaiSiemRequestHeaders, dependendo do formato do registro. Adicionado a additional.fields com a chave "AkamaiSiemRequestHeaders".
httpMessage.responseHeaders, AkamaiSiemResponseHeaders additional.fields Cabeçalhos de resposta. Extraídos de httpMessage.responseHeaders ou AkamaiSiemResponseHeaders, dependendo do formato do registro. Adicionado a additional.fields com a chave "AkamaiSiemResponseHeaders".
httpMessage.status, AkamaiSiemResponseStatus, network_http_response_code, statusCode network.http.response_code Código de resposta HTTP. Extraídos de httpMessage.status ou AkamaiSiemResponseStatus ou network_http_response_code ou statusCode, dependendo do formato do registro.
httpMessage.tls, AkamaiSiemTLSVersion, tlsVersion network.tls.version Versão do TLS. Extraídos de httpMessage.tls, AkamaiSiemTLSVersion ou tlsVersion, dependendo do formato do registro.
httpMessage.useragent, network_http_user_agent, UA, useragent network.http.user_agent User agent. Extraídos de httpMessage.useragent ou network_http_user_agent ou UA ou useragent, dependendo do formato do registro.
log_description metadata.description Descrição do registro. Extraídos de log_description.
log_rule security_result.rule_name Regra de registro. Extraídos de log_rule.
message N/A A mensagem de registro bruta. Usado pelo analisador para várias extrações.
network_http_referral_url network.http.referral_url URL de referência HTTP. Extraídos de network_http_referral_url.
proto N/A Usado na lógica do analisador para preencher security_result.summary se attackData.policyId não estiver presente.
reqHost target.hostname, target.asset.hostname Solicitar host. Extraídos de reqHost.
reqId metadata.product_log_id, network.session_id ID da solicitação. Extraídos de reqId.
reqMethod network.http.method Método da solicitação. Extraídos de reqMethod.
reqPath target.url Caminho da solicitação. Extraídos de reqPath.
reqPort target.port Solicitar porta. Extraídos de reqPort.
rspContentType target.file.mime_type Tipo de conteúdo da resposta. Extraídos de rspContentType.
securityRules security_result.rule_name, security_result.about.resource.attribute.labels Regras de segurança. Extraídos de securityRules. A primeira parte é mapeada para rule_name, e o restante é adicionado como rótulos com as chaves "non_deny_rules" e "deny_rule_format".
statusCode network.http.response_code Código de status. Extraídos de statusCode.
state principal.location.state, target.user.personal_address.state Estado. Extraídos de state.
tlsVersion network.tls.version Versão do TLS. Extraídos de tlsVersion.
type metadata.product_event_type Tipo de evento. Extraídos de type.
UA network.http.user_agent User agent. Extraídos de UA.
version metadata.product_version, principal.asset.software.version Versão. Extraídos de version.
N/A metadata.event_timestamp O carimbo de data/hora do evento é derivado do campo _ts nos registros akamai_lds, do campo httpMessage.start nos registros akamai_siem ou do campo log_date em outros formatos.
N/A metadata.vendor_name Fixado em "Akamai".
N/A metadata.product_name Fixado em "Kona".
N/A metadata.log_type Fixado em "AKAMAI_WAF".
N/A network.application_protocol Defina como "HTTP" para logs akamai_siem e akamai_lds ou "DNS" para outros formatos.
N/A security_result.severity Defina como MÉDIO para a ação "alertar", CRITICAL para a ação "negar" e ALTO para outras ações.
N/A event.idm.read_only_udm.metadata.event_type Defina como "NETWORK_HTTP" para a maioria dos formatos de registro, "GENERIC_EVENT" para eventos com campos eventId ou eventData ou "STATUS_UPDATE" para eventos com cli_ip ou p_ip, mas sem reqHost.

Alterações

2024-05-21

  • Melhoria
  • "rules.data" foi associado a "security_result.detection_fields".
  • "rules.action", "rules.selector" e "rules.version" foram mapeados para "security_result.action_details".
  • "rules.id" foi associado a "security_result.rule_id",
  • "rules.tag" foi associado a "security_result.category_details".
  • "rules.message" foi associado a "security_result.threat_name".

2024-03-01

  • Melhoria
  • "attackData.configId" foi associado a "metadata.product_log_id" e "security_result.detection_fields".

2023-10-27

  • Melhoria
  • "rule.id" foi associado a "security_result.rule_id".
  • Quando "httpMessage.host" não está presente, o valor definido em "metadata.event_type" foi alterado de "NETWORK_HTTP" para "GENERIC_EVENT".
  • Foi adicionado suporte para analisar "attackData" quando "attackData.rules" é uma matriz.

2023-04-24

  • Melhoria
  • Registros analisados ingeridos no formato CEF.

2023-04-04

  • Melhoria
  • O mapeamento de "reqHost" para "target.hostname" foi feito.
  • Mapeou "reqPort" para "target.port".
  • O "reqPath" foi mapeado para "target.url".
  • Mapeou "reqId" para "network.session_id".
  • O "statusCode" foi mapeado para "network.http.response_code".
  • O "reqMethod" foi mapeado para "network.http.method".
  • O "UA" foi mapeado para "network.http.user_agent".
  • "bytes" foi mapeado para "network.sent_bytes".
  • O "reqMethod" foi mapeado para "network.http.method".
  • Registros de falha analisados no formato syslog.
  • Foram adicionadas verificações de condição para "attackData.rules" para análise adequada.
  • O valor de "metadata.event_type" foi modificado de "STATUS_UPDATE" para "NETWORK_HTTP" sempre que possível.

2022-08-12

  • Melhoria
  • "security_policy_id" foi associado a security_result.rule_name.
  • "non_deny_rules" foi mapeado para security_result.about.resource.attribute.labels.
  • "deny_rule_format" foi associado a security_result.about.resource.attribute.labels.

2022-11-07

  • Melhoria
  • Atualização das SecurityRules para verificar ["-"] também nos dados.

2022-06-14

  • Melhoria
  • Mapeou "security_rules" para "security_result.rule_name".
  • Cidade mapeada para principal.local.cidade.
  • País mapeado para principal.location.country_or_region.
  • O cli_ip foi associado a principal.ip.
  • Estado mapeado para target.user.personal_address.state.
  • Versão mapeada para metadata.product_version.
  • O user agent foi mapeado para network.http.user_agent.

2022-06-14

  • Enhancement-
  • O proto foi mapeado para security_result.summary.
  • securityRules foi mapeado para security_result.rule_name.
  • Cidade mapeada para principal.local.cidade.
  • País mapeado para principal.location.country_or_region.
  • O cliIP foi mapeado para principal.ip.
  • O cp foi mapeado para event.idm.read_only_udm.additional.fields.
  • Mapeou reqId para metadata.product_log_id.
  • O rspContentType foi mapeado para target.file.mime_type.
  • Estado mapeado para target.user.personal_address.state.
  • Versão mapeada para principal.asset.software.version.

2022-03-23

  • Correção de bugs: correção da falha ao analisar dados com todos os padrões de correspondência.
  • Mapeamentos adicionados para novos campos.
  • eventId mapeado para metadata.product_log_id.
  • eventDefinitionId mapeado para target.resource.product_object_id.
  • eventDescription mapeado para metadata.description.
  • eventName mapeado para metadata.product_event_type.
  • eventTypeName mapeado para additional.fields.
  • eventTypeId mapeado para additional.fields.
  • eventData mapeado para additional.fields.