Coletar registros do Cisco Secure ACS
Neste documento, descrevemos como coletar registros do Cisco Secure Access Control Server (ACS) usando um encaminhador do Google Security Operations.
Para mais informações, consulte Ingestão de dados no Google Security Operations.
Um rótulo de ingestão identifica o analisador que normaliza dados de registro brutos para o formato UDM estruturado. As informações neste documento se aplicam ao analisador com o rótulo de ingestão CISCO_ACS
.
Configurar o Cisco Secure ACS
- Faça login no console do Cisco Secure ACS usando as credenciais de administrador.
- No console do Cisco Secure ACS, selecione Administração do sistema > Configuração > Configuração de registros > Destinos de registros remotos.
- Clique em Criar.
Na janela Criar, especifique valores para os seguintes campos:
Campo Descrição Nome Nome do encaminhador 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 esta 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 unidade LOCAL6 (código = 22; padrão). Comprimento máximo O valor recomendado é 1024. Clique em Enviar. A janela Destinos de registros remotos aparece com a nova configuração de destino de registros remotos.
No console do Cisco Secure ACS, selecione Administração do sistema > Configuração > Configuração de registros > Categorias de registro > Por instância.
Selecione ACS e clique em Configurar.
Na janela Por instância, selecione uma categoria de geração de registros e clique em Editar.
Na guia Geral, para algumas categorias de geração de registros, 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 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.
Clique na guia Destino syslog remoto e mova o destino remoto recém-criado de Destinos disponíveis para Destinos selecionados.
Clique em Enviar.
Para configurar destinos remotos para outras categorias de geração de registros, repita as etapas de 8 a 10.
Configurar o encaminhador e o syslog do Google Security Operations para ingerir registros do Cisco Secure ACS
- Acesse Configurações do SIEM > Encaminhadores.
- Clique em Adicionar novo encaminhador.
- No campo Nome do encaminhador, insira um nome exclusivo para ele.
- Clique em Enviar. O encaminhador é adicionado, e a janela Adicionar configuração do coletor aparece.
- No campo Nome do coletor, digite um nome.
- Selecione Cisco ACS como o Tipo de registro.
- Selecione Syslog como o Tipo de coletor.
- 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 está localizado 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.
- Clique em Enviar.
Para mais informações sobre 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 do Google Security Operations.
Referência de mapeamento de campos
Esse analisador processa 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 a UDM, processando diferentes tipos de registros com lógica específica para sucessos/falhas de autenticação, contabilidade TACACS+ e eventos RADIUS. Ele também enriquece a 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 é extraído do campo Acct-Authentic . |
Acct-Delay-Time |
additional.fields[].value.string_value |
O valor é extraído do campo Acct-Delay-Time . |
Acct-Input-Octets |
additional.fields[].value.string_value |
O valor é extraído do campo Acct-Input-Octets . |
Acct-Input-Packets |
additional.fields[].value.string_value |
O valor é extraído do campo Acct-Input-Packets . |
Acct-Output-Octets |
additional.fields[].value.string_value |
O valor é extraído do campo Acct-Output-Octets . |
Acct-Output-Packets |
additional.fields[].value.string_value |
O valor é extraído do campo Acct-Output-Packets . |
Acct-Session-Id |
additional.fields[].value.string_value |
O valor é extraído do campo Acct-Session-Id . |
Acct-Session-Time |
additional.fields[].value.string_value |
O valor é extraído do campo Acct-Session-Time . |
Acct-Status-Type |
additional.fields[].value.string_value |
O valor é extraído do campo Acct-Status-Type . |
Acct-Terminate-Cause |
additional.fields[].value.string_value |
O valor é extraído do campo Acct-Terminate-Cause . |
ACSVersion |
additional.fields[].value.string_value |
O valor é extraído do campo ACSVersion . |
AD-Domain |
principal.group.group_display_name |
O valor é extraído do campo AD-Domain . |
AD-IP-Address |
principal.ip |
O valor é extraído do campo AD-IP-Address . |
Called-Station-ID |
additional.fields[].value.string_value |
O valor é extraído do campo Called-Station-ID . |
Calling-Station-ID |
additional.fields[].value.string_value |
O valor é extraído do campo Calling-Station-ID . |
Class |
additional.fields[].value.string_value |
O valor é extraído do campo Class . |
CmdSet |
(não mapeado) | Não mapeado para o objeto IDM. |
ConfigVersionId |
additional.fields[].value.number_value |
O valor é extraído do campo ConfigVersionId e convertido em um ponto flutuante. |
DestinationIPAddress |
target.ip , intermediary.ip |
O valor é extraído do campo DestinationIPAddress . intermediary.ip é derivado de Device IP Address . |
DestinationPort |
target.port |
O valor é extraído do campo DestinationPort e convertido em um número inteiro. |
Device IP Address |
intermediary.ip |
O valor é extraído do campo Device IP Address . |
Device Port |
intermediary.port |
O valor é extraído do campo Device Port e convertido em um número inteiro. |
DetailedInfo |
security_result.summary , security_result.description , security_result.action |
Se DetailedInfo for "Authentication succeed", security_result.summary será "successful login occurred" e security_result.action será ALLOW. Se DetailedInfo contiver "Invalid username or password specified", security_result.summary será "failed login occurred" e security_result.action será BLOCK. security_result.description é derivado de log_header . |
Framed-IP-Address |
principal.ip |
O valor é extraído do campo Framed-IP-Address . |
Framed-Protocol |
additional.fields[].value.string_value |
O valor é extraído do campo Framed-Protocol . |
NAS-IP-Address |
target.ip |
O valor é extraído do campo NAS-IP-Address . |
NAS-Port |
additional.fields[].value.string_value |
O valor é extraído do campo NAS-Port . |
NAS-Port-Id |
target.port |
O valor é extraído do campo NAS-Port-Id e convertido em um número inteiro. |
NAS-Port-Type |
additional.fields[].value.string_value |
O valor é extraído do campo NAS-Port-Type . |
NetworkDeviceName |
target.hostname |
O valor é extraído do campo NetworkDeviceName . |
Protocol |
additional.fields[].value.string_value |
O valor é extraído do campo Protocol . |
RadiusPacketType |
(não mapeado) | Não mapeado para o objeto IDM. |
Remote-Address |
principal.ip , target.ip |
O valor é extraído do campo Remote-Address e analisado como um endereço IP. Ele é mapeado para principal.ip em eventos de autenticação e target.ip em eventos de contabilidade e diagnóstico. |
RequestLatency |
additional.fields[].value.string_value |
O valor é extraído 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 é extraído do campo SelectedAccessService . |
SelectedAuthenticationIdentityStores |
security_result.detection_fields[].value |
O valor é extraído do campo SelectedAuthenticationIdentityStores . |
SelectedAuthorizationProfiles |
security_result.detection_fields[].value |
O valor é extraído do campo SelectedAuthorizationProfiles . |
Service-Type |
additional.fields[].value.string_value |
O valor é extraído do campo Service-Type . |
Tunnel-Client-Endpoint |
additional.fields[].value.string_value |
O valor é extraído do campo Tunnel-Client-Endpoint e analisado como um endereço IP. |
User |
target.user.userid |
O valor é extraído 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 é extraído do campo ac-user-agent . |
cat |
metadata.description |
O valor é extraído do campo cat . |
device-mac |
principal.mac |
O valor é extraído do campo device-mac , dois-pontos são adicionados e o valor é convertido para 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 é extraído do campo device-platform-version . |
device-public-mac |
principal.mac |
O valor é extraído do campo device-public-mac , os hífens são substituídos por dois-pontos, e o valor é convertido em letras minúsculas. |
device-type |
principal.asset.hardware.model |
O valor é extraído do campo device-type . |
device-uid |
principal.asset.asset_id |
O valor é extraído do campo device-uid e precedido por "ID DO ASSET: ". |
device-uid-global |
principal.asset.product_object_id |
O valor é extraído do campo device-uid-global . |
hostname |
principal.hostname |
O valor é extraído do campo hostname . |
ip:source-ip |
principal.ip |
O valor é extraído 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 é extraído do campo log_header . |
log_id |
metadata.product_log_id |
O valor é extraído do campo log_id . |
log_type |
metadata.product_event_type |
O valor é extraído do campo log_type . |
message_severity |
(não mapeado) | Não mapeado para o objeto IDM. |
product |
metadata.product_name |
O valor é extraído do campo product . |
product_version |
metadata.product_version |
O valor é extraído do campo product_version . |
server_host |
target.hostname |
O valor é extraído do campo server_host . |
timestamp |
metadata.event_timestamp |
O valor é extraído dos campos timestamp e timezone (depois de remover os dois pontos). O valor combinado é analisado como um carimbo de data/hora. |
url |
network.dns.questions[].name |
O valor é extraído do campo url . |
vendor |
metadata.vendor_name |
O valor é extraído do campo vendor . Definido como "GENERIC_EVENT" inicialmente e, em seguida, possivelmente 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". Definido como "Cisco" inicialmente e, em seguida, substituído pelo campo vendor . Definido como "ACS" inicialmente e, em seguida, possivelmente substituído pelo campo product . Defina como "CISCO_ACS". Definido como "USERNAME_PASSWORD". Defina como "TACACS". Definido como "UDP" para eventos de diagnóstico e contabilidade RADIUS. Defina como "DNS" para eventos de DNS. Derivado do campo security_action , que é definido com base no sucesso ou não do login. Definido como "login bem-sucedido" para logins bem-sucedidos e "falha no login" para logins com falha. Também pode ser definido como "passed" para determinados eventos de diagnóstico do armazenamento de identidades. Definido como "LOW" para tentativas de login com falha. Construído ao adicionar "ASSET ID: " antes do campo device-uid . |
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.