Coletar registros do firewall do AMD Pensando DSS
Versão do analisador: 1.0
Este documento explica como ingerir registros do firewall do AMD Pensando DSS no Google Security Operations usando o Bindplane.
O firewall do AMD Pensando Distributed Services Switch (DSS) é um firewall com estado acelerado por hardware que é executado na DPU do AMD Pensando dentro dos switches da série Aruba CX 10000. Ele fornece microssegmentação e inspeção de tráfego leste-oeste na taxa de linha. O firewall é gerenciado pelo AMD Pensando Policy and Services Manager (PSM), que oferece recursos centralizados de configuração de políticas, monitoramento e exportação de syslog.
Antes de começar
Verifique se você tem os pré-requisitos a seguir:
- Uma instância do Google SecOps.
- Windows Server 2016 ou mais recente ou host Linux com
systemd. - Se estiver em execução atrás de um proxy, verifique se as portas do firewall estão abertas de acordo com os requisitos do agente do Bindplane.
- Acesso privilegiado ao AMD Pensando Policy and Services Manager (PSM) ou à interface de gerenciamento do switch Aruba CX 10000.
- Conectividade de rede entre o host do agente do Bindplane e o switch Aruba CX 10000 ou o PSM.
Receber credenciais do Google SecOps para o agente do Bindplane
Para autenticar o agente do Bindplane no Google SecOps, escolha um dos seguintes métodos:
- Novas implantações: use a API Chronicle (opção 1).
- Implantações legadas: continue usando o arquivo de autenticação de ingestão (opção 2) até que a API Ingestion seja desativada em 20 de julho de 2027.
Opção 1: criar uma conta de serviço para a API Chronicle (recomendado)
- Faça login no console doGoogle Cloud e selecione o projeto do Google Cloud vinculado à sua instância do Google SecOps.
- Acesse IAM e administrador > Contas de serviço.
- Clique em Criar conta de serviço.
- Informe os seguintes detalhes de configuração:
- Nome da conta de serviço: insira um nome para a conta (por exemplo,
bindplane-ingest). - Descrição da conta de serviço: insira uma descrição (por exemplo,
Bindplane agent log ingestion).
- Nome da conta de serviço: insira um nome para a conta (por exemplo,
- Clique em Criar e continuar.
- Na seção Conceder a essa conta de serviço acesso ao projeto, clique em Selecionar um papel e escolha Editor do Chronicle.
- Clique em Continuar e depois em Concluído.
- Clique na conta de serviço que você criou e acesse a guia Chaves.
- Clique em Adicionar chave > Criar nova chave.
- Selecione JSON e clique em Criar. O download do arquivo de chave é feito no seu computador.
- Salve o arquivo de chave como
ingestion-auth.jsonno diretório do coletor do BindPlane (/opt/observiq-otel-collector/ingestion-auth.jsonno Linux ouC:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.jsonno Windows) ou atualizecreds_file_pathemconfig.yamlpara corresponder ao caminho em que você o salvou. - Acesse IAM e administrador > Configurações e copie o Número do projeto. Você vai precisar dele para configurar o exportador.
Opção 2: fazer o download do arquivo de autenticação de ingestão (legado)
- Faça login no console do Google SecOps.
- Acesse Configurações > Gerenciamento de dados > Agentes de coleta. Se você estiver em uma plataforma somente SIEM, acesse Configurações > Agentes de coleta.
- Faça o download do arquivo de autenticação de ingestão.
- Salve o arquivo com segurança no sistema em que o agente do Bindplane será instalado.
Receber o ID de cliente do Google SecOps
- Faça login no console do Google SecOps.
- Acesse Configurações > Administração > Perfil. Se você estiver em uma plataforma somente SIEM, acesse Configurações > Perfil.
- Copie e salve o ID de 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 raiz 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 do agente do BindPlane.
Configurar o agente do Bindplane para ingerir o syslog e enviar ao Google SecOps
Acesse o arquivo de configuração:
- Localize o arquivo
config.yaml. Normalmente, ele está no diretório/opt/observiq-otel-collector/no Linux ou no diretório de instalação no Windows. - Abra o arquivo usando um editor de texto (por exemplo,
nano,viou Bloco de Notas).
- Localize o arquivo
Edite o arquivo
config.yamlda seguinte forma:receivers: udplog: # Replace the port and IP address as required listen_address: "0.0.0.0:514" exporters: chronicle/chronicle_w_labels: protocol: https # Region of your instance, for example us, europe, asia-southeast1 location: <LOCATION> # Project number of the Google Cloud project linked to the instance project: '<PROJECT_NUMBER>' 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: chronicle.googleapis.com # Add optional ingestion labels for better organization log_type: 'AMD_DSS_FIREWALL' raw_log_field: body ingestion_labels: service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - udplog exporters: - chronicle/chronicle_w_labels- Substitua
<LOCATION>pela região da sua instância do Google SecOps (por exemplo,us,europeouasia-southeast1). O exportador prefixachronicle.googleapis.comcom esse valor. Consulte Endpoints regionais para ver a lista completa. - Substitua
<PROJECT_NUMBER>pelo número do projeto em IAM e administrador > Configurações.
- Substitua
- Substitua a porta e o endereço IP conforme necessário na sua infraestrutura.
- Substitua
<CUSTOMER_ID>pelo ID de cliente real. - Atualize
/path/to/ingestion-authentication-file.jsonpara o caminho do arquivo em que o arquivo de chave da conta de serviço (Opção 1) foi salvo.
Exportador da API de ingestão legada
Se você usar o arquivo de autenticação de ingestão da Opção 2, substitua o bloco
exporterspelo seguinte. Definacreds_file_pathcomo o caminho para o arquivo de autenticação de ingestão e, se a instância estiver fora dos EUA, substituamalachiteingestion-pa.googleapis.compelo endpoint regional (por exemplo,europe-malachiteingestion-pa.googleapis.com).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: 'AMD_DSS_FIREWALL' raw_log_field: body ingestion_labels:
Reinicie o agente do BindPlane para aplicar as mudanças:
Para reiniciar o agente do BindPlane no Linux:
Execute este comando:
sudo systemctl restart observiq-otel-collectorVerifique se o serviço está em execução:
sudo systemctl status observiq-otel-collectorVerifique se há erros nos registros:
sudo journalctl -u observiq-otel-collector -f
Para reiniciar o agente do BindPlane no Windows:
Escolha uma das seguintes opções:
- Prompt de comando ou PowerShell como administrador:
net stop observiq-otel-collector && net start observiq-otel-collector- Console de serviços:
- Pressione
Win+R, digiteservices.msce pressione Enter. - Localize o coletor do OpenTelemetry da observIQ.
- Clique com o botão direito do mouse e selecione Reiniciar.
- Pressione
Verifique se o serviço está em execução:
sc query observiq-otel-collectorVerifique se há erros nos registros:
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
Configurar o encaminhamento de syslog no firewall do AMD Pensando DSS
O firewall DSS da AMD Pensando é compatível com dois métodos para configurar o encaminhamento de syslog: pela interface da Web do Pensando Policy and Services Manager (PSM) ou pela CLI do AOS-CX no switch Aruba CX 10000.
Configurar a exportação de syslog pelo PSM da Pensando
- Faça login na interface da Web do AMD Pensando Policy and Services Manager (PSM).
- Acesse Monitoramento > Alertas e eventos.
- Selecione a guia Destinos.
- Clique em Adicionar destino.
- Informe os seguintes detalhes de configuração:
- Tipo de destino: selecione Syslog.
- Endereço do servidor: insira o endereço IP do host do agente do BindPlane (por exemplo,
192.168.1.100). - Porta: digite a porta configurada no agente do Bindplane
config.yaml(por exemplo,514). - Protocolo: selecione UDP para corresponder à configuração do receptor do agente do BindPlane.
- Formato: selecione BSD (RFC 5424).
- Clique em Salvar para criar o destino do syslog.
- Selecione a guia Políticas de alerta.
- Clique em Adicionar política de alertas para definir quais eventos e alertas serão encaminhados.
- Selecione as categorias de eventos e os níveis de gravidade desejados.
- Na seção Destinos, selecione o destino do syslog que você criou.
Clique em Salvar para ativar a política de alertas.
Configurar o syslog pela CLI do AOS-CX no Aruba CX 10000
- Conecte-se ao switch Aruba CX 10000 por SSH ou console.
Entre no modo de configuração:
configure terminalConfigure o servidor syslog remoto com UDP (substitua
<BINDPLANE_IP>pelo endereço IP do agente do BindPlane):logging <BINDPLANE_IP> udp 514 severity infoOu para TCP:
logging <BINDPLANE_IP> tcp 1470 severity infoOu para TLS:
logging <BINDPLANE_IP> tls 6514 severity infoDefina o recurso syslog:
logging facility local0Salve a configuração:
write memorySaia do modo de configuração:
exit
Para mais informações sobre o comando de geração de registros do AOS-CX, consulte a referência da CLI do AOS-CX.
Tabela de mapeamento de UDM
| Campo de registro | Mapeamento de UDM | Lógica |
|---|---|---|
action |
read_only_udm.metadata.product_event_type |
Mapeamento direto. |
action |
read_only_udm.security_result.action |
Se a ação for "deny", defina como "BLOCK". Se a ação for "allow", defina como "ALLOW". |
column10 |
read_only_udm.network.session_id |
Mapeamento direto. |
column11 |
read_only_udm.additional.fields.value.string_value |
Mapeamento direto. A chave é codificada como "security_policy_id". |
column12 |
read_only_udm.security_result.rule_id |
Mapeamento direto. |
column13 |
read_only_udm.security_result.rule_name |
Mapeamento direto. |
column14 |
read_only_udm.network.sent_packets |
Mapeamento direto. |
column15 |
read_only_udm.network.sent_bytes |
Mapeamento direto. |
column16 |
read_only_udm.network.received_packets |
Mapeamento direto. |
column17 |
read_only_udm.network.received_bytes |
Mapeamento direto. |
column18 |
read_only_udm.additional.fields.value.string_value |
Mapeamento direto. A chave é codificada como "vlan". |
column19 |
read_only_udm.principal.asset.software.vendor_name |
Mapeamento direto. |
column19 |
read_only_udm.principal.asset.software.name |
Mapeamento direto. |
column2 |
read_only_udm.metadata.product_event_type |
Mapeamento direto. |
column20 |
read_only_udm.principal.asset.software.version |
Mapeamento direto. |
column21 |
read_only_udm.principal.asset_id |
Concatena "asset_id:" com o valor de column21. |
column22 |
read_only_udm.principal.asset.attribute.labels.value |
Mapeamento direto. A chave é codificada como "device_name". |
column23 |
read_only_udm.principal.asset.attribute.labels.value |
Mapeamento direto. A chave é codificada como "unit_id". |
column24 |
read_only_udm.metadata.product_version |
Mapeamento direto. |
column25 |
read_only_udm.additional.fields.value.string_value |
Mapeamento direto. A chave é codificada como "policy_name". |
column25 |
read_only_udm.security_result.rule_type |
Mapeamento direto. |
column4 |
read_only_udm.principal.resource.product_object_id |
Mapeamento direto. |
column5 |
read_only_udm.principal.ip |
Mapeamento direto. |
column6 |
read_only_udm.principal.port |
Mapeamento direto. |
column7 |
read_only_udm.target.ip |
Mapeamento direto. |
column8 |
read_only_udm.target.port |
Mapeamento direto. |
column9 |
read_only_udm.network.ip_protocol |
Mapeia o número do protocolo para o nome correspondente (por exemplo, 6 para TCP, 17 para UDP). |
dip |
read_only_udm.target.ip |
Mapeamento direto. |
dport |
read_only_udm.target.port |
Mapeamento direto. |
dvc |
read_only_udm.intermediary.hostname |
Se dvc não for um endereço IP, mapeie para o nome do host. Caso contrário, mapeie para o IP. |
iflowbytes |
read_only_udm.network.sent_bytes |
Mapeamento direto. |
iflowpkts |
read_only_udm.network.sent_packets |
Mapeamento direto. |
msg_id |
read_only_udm.additional.fields.value.string_value |
Mapeamento direto. A chave é codificada como "msg_id". |
policy_name |
read_only_udm.additional.fields.value.string_value |
Mapeamento direto. A chave é codificada como "policy_name". |
policy_name |
read_only_udm.security_result.rule_type |
Mapeamento direto. |
proc_id |
read_only_udm.target.process.pid |
Mapeamento direto. |
proc_name |
read_only_udm.target.application |
Mapeamento direto. |
protocol_number_src |
read_only_udm.network.ip_protocol |
Mapeia o número do protocolo para o nome correspondente (por exemplo, 6 para TCP, 17 para UDP). |
rflowbytes |
read_only_udm.network.received_bytes |
Mapeamento direto. |
rflowpkts |
read_only_udm.network.received_packets |
Mapeamento direto. |
rule_id |
read_only_udm.security_result.rule_id |
Mapeamento direto. |
rule_name |
read_only_udm.security_result.rule_name |
Mapeamento direto. |
sd |
read_only_udm.additional.fields.value.string_value |
Mapeamento direto. A chave é codificada como "sd". |
security_policy_id |
read_only_udm.additional.fields.value.string_value |
Mapeamento direto. A chave é codificada como "security_policy_id". |
session_id |
read_only_udm.network.session_id |
Mapeamento direto. |
session_state |
read_only_udm.metadata.product_event_type |
Mapeamento direto. |
sip |
read_only_udm.principal.ip |
Mapeamento direto. |
software_version |
read_only_udm.principal.asset.software.version |
Mapeamento direto. |
sport |
read_only_udm.principal.port |
Mapeamento direto. |
ts |
read_only_udm.metadata.event_timestamp |
O carimbo de data/hora do registro é analisado e formatado no formato de carimbo de data/hora do UDM. |
vlan |
read_only_udm.additional.fields.value.string_value |
Mapeamento direto. A chave é codificada como "vlan". |
read_only_udm.metadata.event_type |
Se sip e dip estiverem presentes, defina como "NETWORK_UNCATEGORIZED". Se apenas sip estiver presente, defina como "STATUS_UPDATE". Caso contrário, defina como "GENERIC_EVENT". | |
read_only_udm.metadata.log_type |
Fixado no código como "AMD_DSS_FIREWALL". | |
read_only_udm.metadata.product_name |
Fixado no código como "AMD_DSS_FIREWALL". | |
read_only_udm.metadata.vendor_name |
Fixado no código como "AMD_DSS_FIREWALL". | |
read_only_udm.principal.resource.resource_type |
Fixado no código como "VPC_NETWORK". |
Registro de alterações
Confira o registro de alterações deste analisador
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.