Coletar registros do Cisco IronPort
Este documento explica como ingerir registros do Cisco IronPort no
Google Security Operations usando o Bindplane. O analisador extrai campos das mensagens do syslog, especificamente aqueles relacionados a eventos AccessLogs_chron
. Ele usa padrões grok para analisar a mensagem, converte tipos de dados e mapeia os campos extraídos para o modelo de dados unificado (UDM), processando vários campos específicos do Cisco Ironport, como grupos de políticas e decisões de acesso. Ele também realiza o tratamento básico de erros e define campos de metadados, como nome do fornecedor e do produto.
Antes de começar
Verifique se você tem os pré-requisitos a seguir:
- Instância do Google SecOps
- Windows 2016 ou mais recente ou um host Linux com
systemd
- Se você estiver executando por trás de um proxy, verifique se as portas do firewall estão abertas.
- Acesso privilegiado ao Cisco IronPort
Receber o arquivo de autenticação de ingestão do Google SecOps
- Faça login no console do Google SecOps.
- Acesse Configurações do SIEM > Agentes de coleta.
- Baixe o arquivo de autenticação de ingestão.
- Salve o arquivo de forma segura no sistema em que o Bindplane será instalado.
Receber o ID do cliente do Google SecOps
- Faça login no console do Google SecOps.
- Acesse Configurações do SIEM > Perfil.
- Copie e salve o ID do cliente na seção Detalhes da organização.
Instalar o agente do Bindplane
Instale o agente do Bindplane no seu sistema operacional Windows ou Linux de acordo com as instruções a seguir.
Instalação do Windows
- Abra o Prompt de Comando ou o PowerShell como administrador.
Execute este comando:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
Instalação do Linux
- Abra um terminal com privilégios de root ou sudo.
Execute este comando:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
Outros recursos de instalação
Para mais opções de instalação, consulte o guia de instalação.
Configurar o agente Bindpolane para ingerir o Syslog e enviar ao Google SecOps
- Acesse o arquivo de configuração:
- Localize o arquivo
config.yaml
. Normalmente, ele fica no diretório/etc/bindplane-agent/
no Linux ou no diretório de instalação no Windows. - Abra o arquivo usando um editor de texto (por exemplo,
nano
,vi
ou Bloco de Notas).
- Localize o arquivo
Edite o arquivo
config.yaml
da seguinte forma:receivers: udplog: # Replace the port and IP address as required listen_address: "0.0.0.0:514" exporters: chronicle/chronicle_w_labels: compression: gzip # Adjust the path to the credentials file you downloaded in Step 1 creds_file_path: '/path/to/ingestion-authentication-file.json' # Replace with your actual customer ID from Step 2 customer_id: <customer_id> endpoint: malachiteingestion-pa.googleapis.com # Add optional ingestion labels for better organization log_type: 'CISCO_IRONPORT' raw_log_field: body ingestion_labels: service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - udplog exporters: - chronicle/chronicle_w_labels
- Substitua a porta e o endereço IP conforme necessário na sua infraestrutura.
- Substitua
<customer_id>
pelo ID do cliente real. - Atualize
/path/to/ingestion-authentication-file.json
para o caminho em que o arquivo de autenticação foi salvo na seção Receber arquivo de autenticação de ingestão do Google SecOps.
Reinicie o agente do Bindplane para aplicar as mudanças
Para reiniciar o agente do Bindplane em Linux, execute o seguinte comando:
sudo systemctl restart bindplane-agent
Para reiniciar o agente do Bindplane no Windows, use o console Serviços ou insira o seguinte comando:
net stop BindPlaneAgent && net start BindPlaneAgent
Configurar o Syslog no Cisco IronPort
- Faça login na UI da Web do Cisco IronPort.
- Clique em Administração do sistema > Assinaturas de registros.
- Clique em Adicionar assinatura de registro.
- Informe os seguintes detalhes de configuração:
- Tipo de registro: selecione Registros de acesso ou outros registros que você quer exportar.
- Estilo de registro: selecione Squid.
- Nome do arquivo: informe um nome de arquivo se ele não for fornecido por padrão.
- Método de recuperação: selecione Envio de Syslog (usa a porta padrão
514
). - Nome do host: insira o endereço IP do agente do Bindplane.
- Protocolo: selecione UDP.
- Unidade: selecione
local0
ousyslog
.
- Clique em Enviar.
Tabela de mapeamento da UDM
Campo de registro | Mapeamento do UDM | Lógica |
---|---|---|
AccessLogs_chron |
metadata.product_event_type |
Mapeado diretamente do campo product_event extraído pelo primeiro analisador grok. |
acl_decision_tag |
security_result.detection_fields.key |
O valor é "ACL Decision Tag". A lógica do analisador define esse valor quando acl_decision_tag está presente nos registros. |
acl_decision_tag |
security_result.detection_fields.value |
Mapeado diretamente do campo acl_decision_tag extraído pelo segundo analisador grok. |
access_or_decryption_policy_group |
security_result.detection_fields.key |
O valor é "AccessOrDecryptionPolicyGroup". A lógica do analisador define esse valor quando access_or_decryption_policy_group está presente nos registros. |
access_or_decryption_policy_group |
security_result.detection_fields.value |
Mapeado diretamente do campo access_or_decryption_policy_group extraído pelo segundo analisador grok. |
authenticated_user |
principal.user.userid |
Extraído do campo authenticated_user usando grok e gsub para remover barras invertidas e aspas. |
cache_hierarchy_retrieval |
security_result.detection_fields.key |
O valor é "Cache Hierarchy Retrieval". A lógica do analisador define esse valor quando cache_hierarchy_retrieval está presente nos registros. |
cache_hierarchy_retrieval |
security_result.detection_fields.value |
Mapeado diretamente do campo cache_hierarchy_retrieval extraído pelo segundo analisador grok. |
data_security_policy_group |
security_result.detection_fields.key |
O valor é "DataSecurityPolicyGroup". A lógica do analisador define esse valor quando data_security_policy_group está presente nos registros. |
data_security_policy_group |
security_result.detection_fields.value |
Mapeado diretamente do campo data_security_policy_group extraído pelo segundo analisador grok. |
external_dlp_policy_group |
security_result.detection_fields.key |
O valor é "ExternalDlpPolicyGroup". A lógica do analisador define esse valor quando external_dlp_policy_group está presente nos registros. |
external_dlp_policy_group |
security_result.detection_fields.value |
Mapeado diretamente do campo external_dlp_policy_group extraído pelo segundo analisador grok. |
hostname |
principal.asset.hostname |
Mapeado diretamente do campo hostname extraído pelo primeiro analisador grok. |
hostname |
principal.hostname |
Mapeado diretamente do campo hostname extraído pelo primeiro analisador grok. |
http_method |
network.http.method |
Mapeado diretamente do campo http_method extraído pelo segundo analisador grok. |
http_response_code |
network.http.response_code |
Mapeado diretamente do campo http_response_code extraído pelo segundo analisador grok e convertido em número inteiro. |
identity_policy_group |
security_result.detection_fields.key |
O valor é "IdentityPolicyGroup". A lógica do analisador define esse valor quando identity_policy_group está presente nos registros. |
identity_policy_group |
security_result.detection_fields.value |
Mapeado diretamente do campo identity_policy_group extraído pelo segundo analisador grok. Copiado do campo timestamp depois que o filtro de data o processa. Definido como "STATUS_UPDATE" se has_principal for verdadeiro. Caso contrário, definido como "GENERIC_EVENT". Valor da constante: "Cisco Ironport". Valor da constante: "Cisco". |
outbound_malware_scanning_policy_group |
security_result.detection_fields.key |
O valor é "OutboundMalwareScanningPolicyGroupS". A lógica do analisador define esse valor quando outbound_malware_scanning_policy_group está presente nos registros. |
outbound_malware_scanning_policy_group |
security_result.detection_fields.value |
Mapeado diretamente do campo outbound_malware_scanning_policy_group extraído pelo segundo analisador grok. |
request_method_uri |
target.url |
Mapeado diretamente do campo request_method_uri extraído pelo segundo analisador grok. |
result_code |
security_result.detection_fields.key |
O valor é "Código do resultado". A lógica do analisador define esse valor quando result_code está presente nos registros. |
result_code |
security_result.detection_fields.value |
Mapeado diretamente do campo result_code extraído pelo segundo analisador grok. |
routing_policy_group |
security_result.detection_fields.key |
O valor é "RoutingPolicyGroup". A lógica do analisador define esse valor quando routing_policy_group está presente nos registros. |
routing_policy_group |
security_result.detection_fields.value |
Mapeado diretamente do campo routing_policy_group extraído pelo segundo analisador grok. |
severity |
security_result.severity |
Mapeado do campo severity . Se o valor for "Info", ele será definido como "INFORMATIONAL". |
source_ip |
principal.asset.ip |
Mapeado diretamente do campo source_ip extraído pelo segundo analisador grok. |
source_ip |
principal.ip |
Mapeado diretamente do campo source_ip extraído pelo segundo analisador grok. |
timestamp |
timestamp |
Extraído do campo message usando grok e analisado com o filtro de data. |
total_bytes |
network.sent_bytes |
Mapeado diretamente do campo total_bytes extraído pelo segundo analisador grok e convertido em um número inteiro sem sinal. Só será mapeado se não estiver vazio ou for "0". |
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.