Coletar registros do Cisco Secure ACS

Compatível com:

Este documento descreve como coletar logs do servidor de controle de acesso seguro da Cisco (ACS, na sigla em inglês) usando um encaminhador de operações de segurança do Google.

Para mais informações, consulte Ingestão de dados para as operações de segurança do Google.

Um rótulo de transferência identifica o analisador que normaliza os dados de registro brutos para o formato estruturado da UDM. As informações neste documento se aplicam ao analisador com o rótulo de transferência CISCO_ACS.

Configurar o Cisco Secure ACS

  1. Faça login no console do Cisco Secure ACS usando as credenciais de administrador.
  2. No console do Cisco Secure ACS, selecione Gerenciamento do sistema > Configuração > Configuração de registro > Destinos de registro remoto.
  3. Clique em Criar.
  4. Na janela Criar, especifique os valores para os seguintes campos:

    Campo Descrição
    Nome Nome do remetente do Google Security Operations.
    Descrição Descrição do encaminhador do Google Security Operations.
    Endereço IP Endereço IP do encaminhador do Google Security Operations.
    Usar opções avançadas do syslog Selecione essa opção para ativar as opções avançadas do syslog.
    Tipo de destino Selecione syslog TCP ou syslog UDP.
    Porta Use uma porta alta, como 10514.
    Código da instalação LOCAL6 (código = 22; padrão).
    Comprimento máximo O valor recomendado é 1024.
  5. Clique em Enviar. A janela Destinos de registro remoto aparece com a nova configuração de destino de registro remoto.

  6. No console do Cisco Secure ACS, selecione Gerenciamento do sistema > Configuração > Configuração de registro > Categorias de registro > Por instância.

  7. Selecione ACS e clique em Configurar.

  8. Na janela Por instância, selecione uma categoria de geração de registros e clique em Editar.

    Na guia Geral, para algumas categorias de registro, a gravidade precisa ser definida como padrão ou conforme fornecido pelo fornecedor.

    Para o Cisco Secure ACS, a gravidade padrão é Aviso para todas as categorias de registro, exceto para aquelas em que a gravidade não pode ser alterada, como aviso de auditoria AAA, aviso de contabilidade, aviso de auditoria administrativa e operacional e aviso de estatísticas do sistema.

  9. Clique na guia Destino de syslog remoto e mova o destino remoto recém-criado de Destinos disponíveis para Destinos selecionados.

  10. Clique em Enviar.

  11. Para configurar destinos remotos para outras categorias de geração de registros, repita as etapas de 8 a 10.

Configurar o forwarder e o syslog do Google Security Operations para processar os registros do Cisco Secure ACS

  1. Acesse Configurações do SIEM > Encaminhadores.
  2. Clique em Adicionar novo encaminhador.
  3. No campo Nome do encaminhador, insira um nome exclusivo.
  4. Clique em Enviar. O encaminhador é adicionado, e a janela Add collector configuration aparece.
  5. No campo Nome do coletor, digite um nome.
  6. Selecione Cisco ACS como o Tipo de registro.
  7. Selecione Syslog como o Tipo de coletor.
  8. Configure os seguintes parâmetros de entrada obrigatórios:
    • Protocolo: especifique o protocolo.
    • Endereço: especifique o endereço IP ou o nome do host de destino em que o coletor reside e os endereços para os dados do syslog.
    • Porta: especifique a porta de destino em que o coletor reside e detecta dados do syslog.
  9. Clique em Enviar.

Para mais informações sobre os encaminhadores do Google Security Operations, consulte a documentação sobre encaminhadores do Google Security Operations. Para informações sobre os requisitos de cada tipo de encaminhador, consulte Configuração do encaminhador por tipo. Se você tiver problemas ao criar encaminhadores, entre em contato com o suporte da Google Security Operations.

Referência do mapeamento de campo

Esse analisador processa os registros do Cisco ACS, incluindo autenticação, contabilidade, diagnósticos e estatísticas do sistema. Ele usa padrões grok para extrair campos de vários formatos de registro (SYSLOG + KV, LEEF), normaliza carimbos de data/hora e fusos horários e mapeia campos-chave para o UDM, processando diferentes tipos de registro com lógica específica para sucessos/falhas de autenticação, contabilidade TACACS+ e eventos RADIUS. Ele também enriquece o UDM com outros campos, como informações do dispositivo e detalhes de autenticação.

Tabela de mapeamento do UDM

Campo de registro Mapeamento do UDM Lógica
Acct-Authentic additional.fields[].value.string_value O valor é retirado do campo Acct-Authentic.
Acct-Delay-Time additional.fields[].value.string_value O valor é retirado do campo Acct-Delay-Time.
Acct-Input-Octets additional.fields[].value.string_value O valor é retirado do campo Acct-Input-Octets.
Acct-Input-Packets additional.fields[].value.string_value O valor é retirado do campo Acct-Input-Packets.
Acct-Output-Octets additional.fields[].value.string_value O valor é retirado do campo Acct-Output-Octets.
Acct-Output-Packets additional.fields[].value.string_value O valor é retirado do campo Acct-Output-Packets.
Acct-Session-Id additional.fields[].value.string_value O valor é retirado do campo Acct-Session-Id.
Acct-Session-Time additional.fields[].value.string_value O valor é retirado do campo Acct-Session-Time.
Acct-Status-Type additional.fields[].value.string_value O valor é retirado do campo Acct-Status-Type.
Acct-Terminate-Cause additional.fields[].value.string_value O valor é retirado do campo Acct-Terminate-Cause.
ACSVersion additional.fields[].value.string_value O valor é retirado do campo ACSVersion.
AD-Domain principal.group.group_display_name O valor é retirado do campo AD-Domain.
AD-IP-Address principal.ip O valor é retirado do campo AD-IP-Address.
Called-Station-ID additional.fields[].value.string_value O valor é retirado do campo Called-Station-ID.
Calling-Station-ID additional.fields[].value.string_value O valor é retirado do campo Calling-Station-ID.
Class additional.fields[].value.string_value O valor é retirado do campo Class.
CmdSet (não mapeado) Não mapeado para o objeto IDM.
ConfigVersionId additional.fields[].value.number_value O valor é retirado do campo ConfigVersionId e convertido em um ponto flutuante.
DestinationIPAddress target.ip, intermediary.ip O valor é retirado do campo DestinationIPAddress. intermediary.ip é derivado de Device IP Address.
DestinationPort target.port O valor é retirado do campo DestinationPort e convertido em um número inteiro.
Device IP Address intermediary.ip O valor é retirado do campo Device IP Address.
Device Port intermediary.port O valor é retirado do campo Device Port e convertido em um número inteiro.
DetailedInfo security_result.summary, security_result.description, security_result.action Se DetailedInfo for "Autenticação concluída", security_result.summary for "O login foi concluído" e security_result.action for PERMITIR. Se DetailedInfo contiver "Nome de usuário ou senha inválidos especificados", security_result.summary for "Falha no login" e security_result.action for BLOQUEADO. security_result.description é derivado de log_header.
Framed-IP-Address principal.ip O valor é retirado do campo Framed-IP-Address.
Framed-Protocol additional.fields[].value.string_value O valor é retirado do campo Framed-Protocol.
NAS-IP-Address target.ip O valor é retirado do campo NAS-IP-Address.
NAS-Port additional.fields[].value.string_value O valor é retirado do campo NAS-Port.
NAS-Port-Id target.port O valor é retirado do campo NAS-Port-Id e convertido em um número inteiro.
NAS-Port-Type additional.fields[].value.string_value O valor é retirado do campo NAS-Port-Type.
NetworkDeviceName target.hostname O valor é retirado do campo NetworkDeviceName.
Protocol additional.fields[].value.string_value O valor é retirado do campo Protocol.
RadiusPacketType (não mapeado) Não mapeado para o objeto IDM.
Remote-Address principal.ip, target.ip O valor é retirado do campo Remote-Address e analisado como um endereço IP. Ele é associado a principal.ip para eventos de autenticação e target.ip para eventos de contabilidade e diagnóstico.
RequestLatency additional.fields[].value.string_value O valor é retirado do campo RequestLatency.
Response principal.user.userid Se Response contiver "User-Name", o nome de usuário será extraído e mapeado para principal.user.userid.
SelectedAccessService additional.fields[].value.string_value O valor é retirado do campo SelectedAccessService.
SelectedAuthenticationIdentityStores security_result.detection_fields[].value O valor é retirado do campo SelectedAuthenticationIdentityStores.
SelectedAuthorizationProfiles security_result.detection_fields[].value O valor é retirado do campo SelectedAuthorizationProfiles.
Service-Type additional.fields[].value.string_value O valor é retirado do campo Service-Type.
Tunnel-Client-Endpoint additional.fields[].value.string_value O valor é retirado do campo Tunnel-Client-Endpoint e analisado como um endereço IP.
User target.user.userid O valor é retirado do campo User.
UserName target.user.userid, principal.mac Se UserName for um endereço MAC, ele será analisado e mapeado para principal.mac. Caso contrário, ele será mapeado para target.user.userid.
ac-user-agent network.http.user_agent O valor é retirado do campo ac-user-agent.
cat metadata.description O valor é retirado do campo cat.
device-mac principal.mac O valor é retirado do campo device-mac, dois-pontos são adicionados e o valor é convertido para letras minúsculas. Se device-mac for "00", ele será substituído por "00:00:00:00:00:00".
device-platform principal.asset.platform_software.platform Se device-platform for "win", o valor "WINDOWS" será atribuído a principal.asset.platform_software.platform.
device-platform-version principal.asset.platform_software.platform_version O valor é retirado do campo device-platform-version.
device-public-mac principal.mac O valor é retirado do campo device-public-mac, os hifens são substituídos por dois-pontos e o valor é convertido para letras minúsculas.
device-type principal.asset.hardware.model O valor é retirado do campo device-type.
device-uid principal.asset.asset_id O valor é retirado do campo device-uid e precedido por "ASSET ID: ".
device-uid-global principal.asset.product_object_id O valor é retirado do campo device-uid-global.
hostname principal.hostname O valor é retirado do campo hostname.
ip:source-ip principal.ip O valor é retirado do campo ip:source-ip.
kv.ADDomain (não mapeado) Não mapeado para o objeto IDM.
kv.Airespace-Wlan-Id (não mapeado) Não mapeado para o objeto IDM.
kv.AuthenticationIdentityStore (não mapeado) Não mapeado para o objeto IDM.
kv.AVPair (não mapeado) Não mapeado para o objeto IDM.
kv.CVPN3000/ASA/PIX7.x-DAP-Tunnel-Group-Name (não mapeado) Não mapeado para o objeto IDM.
kv.CVPN3000/ASA/PIX7.x-Group-Based-Address-Pools (não mapeado) Não mapeado para o objeto IDM.
kv.ExternalGroups (não mapeado) Não mapeado para o objeto IDM.
kv.FailureReason (não mapeado) Não mapeado para o objeto IDM.
kv.IdentityAccessRestricted (não mapeado) Não mapeado para o objeto IDM.
kv.IdentityGroup (não mapeado) Não mapeado para o objeto IDM.
kv.NAS-Identifier (não mapeado) Não mapeado para o objeto IDM.
kv.SelectedShellProfile (não mapeado) Não mapeado para o objeto IDM.
kv.ServiceSelectionMatchedRule (não mapeado) Não mapeado para o objeto IDM.
kv.State (não mapeado) Não mapeado para o objeto IDM.
kv.Step (não mapeado) Não mapeado para o objeto IDM.
kv.Tunnel-Medium-Type (não mapeado) Não mapeado para o objeto IDM.
kv.Tunnel-Private-Group-ID (não mapeado) Não mapeado para o objeto IDM.
kv.Tunnel-Type (não mapeado) Não mapeado para o objeto IDM.
kv.UseCase (não mapeado) Não mapeado para o objeto IDM.
kv.UserIdentityGroup (não mapeado) Não mapeado para o objeto IDM.
kv.VendorSpecific (não mapeado) Não mapeado para o objeto IDM.
kv.attribute-131 (não mapeado) Não mapeado para o objeto IDM.
kv.attribute-89 (não mapeado) Não mapeado para o objeto IDM.
kv.cisco-av-pair (não mapeado) Não mapeado para o objeto IDM.
kv.cisco-av-pair:CiscoSecure-Group-Id (não mapeado) Não mapeado para o objeto IDM.
leef_version (não mapeado) Não mapeado para o objeto IDM.
log_header metadata.description O valor é retirado do campo log_header.
log_id metadata.product_log_id O valor é retirado do campo log_id.
log_type metadata.product_event_type O valor é retirado do campo log_type.
message_severity (não mapeado) Não mapeado para o objeto IDM.
product metadata.product_name O valor é retirado do campo product.
product_version metadata.product_version O valor é retirado do campo product_version.
server_host target.hostname O valor é retirado do campo server_host.
timestamp metadata.event_timestamp O valor é retirado do campo timestamp e do campo timezone (depois de remover o dois-ponto). O valor combinado é analisado como um carimbo de data/hora.
url network.dns.questions[].name O valor é retirado do campo url.
vendor metadata.vendor_name O valor é retirado do campo vendor. Inicialmente, "GENERIC_EVENT", e depois potencialmente substituído com base nos campos log_type e analisados. Pode ser "USER_LOGIN", "USER_UNCATEGORIZED", "NETWORK_DNS", "NETWORK_CONNECTION", "STATUS_UPDATE" ou "STATUS_UNCATEGORIZED". Inicialmente definido como "Cisco", depois potencialmente substituído pelo campo vendor. Inicialmente, "ACS", e depois pode ser substituído pelo campo product. Defina como "CISCO_ACS". Defina como "USERNAME_PASSWORD". Defina como "TACACS". Defina como "UDP" para eventos de contabilidade e diagnóstico do RADIUS. Defina como "DNS" para eventos de DNS. Derivado do campo security_action, que é definido com base no sucesso ou não do login. Defina como "Ocorreu login" para logins bem-sucedidos e "Ocorreu falha no login" para logins com falha. Também pode ser definido como "passou" para determinados eventos de diagnóstico do armazenamento de identidade. Defina como "BAIXO" para tentativas de login com falha. É criado preenchendo "ASSET ID: " no campo device-uid.

Alterações

2023-09-26

  • Melhoria:
  • O "hostname" foi inicializado como nulo e foi adicionada uma verificação de nome de host não nulo antes da configuração "metadata.event_type" para "STATUS_UPDATE".
  • Adicionamos uma verificação de endereço IP válida a "kv.DeviceIPAddress" e "kv.Remote-Address" antes do mapeamento para os campos do UDM.

2022-08-19

  • Melhoria:
  • "User-Name" foi mapeado para "principal.user.userid".
  • O nome "ip:source-ip" foi renomeado para "source_ip" e mapeado para "principal.ip".
  • O nome "kv.audit-session-id" foi renomeado para "kv.audit_session_id" e mapeado para "network.session_id".
  • Mapeamos "kv.AuthenticationMethod" para "additional.fields".
  • "kv.SelectedAccessService" foi mapeado para "additional.fields".
  • "kv.SelectedAuthorizationProfiles" foi mapeado para "security_result.detection_fields".
  • Mapeamos "kv.SelectedAuthenticationIdentityStores" para "security_result.detection_fields".
  • Mapeamos "kv.device-uid-global" para "principal.asset.product_object_id".
  • Mapeamos "kv.device-uid" para "principal.asset.asset_id".
  • Mapeou "metadata.event_type" para "USER_UNCATEGORIZED", em que kv.DestinationIPAddress e kv.NAS-IP-Address e kv.NAS-IP-Address e kv.UserName e kv.NetworkDeviceName são nulos.
  • Adição de suporte a registros com formato LEEF.

2022-06-14

  • Melhoria: o grok foi modificado para analisar os registros de log_type = "CSCOacs_Passed_Authentications", que estavam falhando devido a vários espaços.
  • O valor de "device-mac" foi substituído pelo valor fictício "00:00:00:00:00:00" para o tipo de registro "CSCOacs_RADIUS_Accounting" em caso de valor inválido (00).

2022-06-06

  • Melhoria: registros analisados do tipo "CSCOacs_Passed_Authentications" que não têm "DestinationIPAddress" ou "NAS-IP-Address" nos registros.
  • O metadata.event_type foi modificado de "USER_UNCATEGORIZED" para "USER_LOGIN" para registros do tipo "CSCOacs_Passed_Authentications".

2022-05-05

  • Melhoria: os registros recém-ingeridos que não têm código de mensagem são analisados e descartados.

2022-04-27

  • Melhoria: os registros foram analisados com log_type=CISE_TACACS_Accounting.