Recolha registos do Brocade ServerIron
Este analisador extrai campos de mensagens syslog do Brocade ServerIron através da correspondência de expressões regulares e mapeia-os para o modelo de dados unificado (UDM). Processa vários formatos de registo, incluindo o estado da rede, a autenticação do utilizador e os eventos de segurança. O analisador sintático realiza conversões de tipos de dados e o enriquecimento quando necessário.
Antes de começar
- Certifique-se de que tem uma instância do Google Security Operations.
- Certifique-se de que está a usar o Windows 2016 ou posterior, ou um anfitrião Linux com systemd.
- Se estiver a executar o serviço através de um proxy, certifique-se de que as portas da firewall estão abertas.
- Certifique-se de que tem acesso privilegiado à instância do Brocade ServerIron.
Obtenha o ficheiro de autenticação de carregamento do Google SecOps
- Inicie sessão na consola Google SecOps.
- Aceda a Definições do SIEM > Agentes de recolha.
- Transfira o ficheiro de autenticação de carregamento.
Obtenha o ID de cliente do Google SecOps
- Inicie sessão na consola Google SecOps.
- Aceda a Definições do SIEM > Perfil.
- Copie e guarde o ID do cliente da secção Detalhes da organização.
Instale o agente do Bindplane
- Para a instalação do Windows, execute o seguinte script:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
- Para a instalação do Linux, execute o seguinte script:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
- Pode encontrar opções de instalação adicionais neste guia de instalação.
Configure o agente Bindplane para carregar o Syslog e enviá-lo para o Google SecOps
- Aceda à máquina onde o Bindplane está instalado.
Edite o ficheiro
config.yaml
da seguinte forma:receivers: tcplog: # Replace the below port <54525> and IP <0.0.0.0> with your specific values listen_address: "0.0.0.0:54525" exporters: chronicle/chronicle_w_labels: compression: gzip # Adjust the creds location below according the placement of the credentials file you downloaded creds: '{ json file for creds }' # Replace <customer_id> below with your actual ID that you copied customer_id: <customer_id> endpoint: malachiteingestion-pa.googleapis.com # You can apply ingestion labels below as preferred ingestion_labels: log_type: SYSLOG namespace: Brocade_ServerIron raw_log_field: body service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - tcplog exporters: - chronicle/chronicle_w_labels
Reinicie o agente do Bindplane para aplicar as alterações:
sudo systemctl restart bindplane
Configure a exportação de Syslog a partir do Brocade ServerIron ADX
Inicie sessão no dispositivo ADX e introduza o modo de configuração global:
enable configure terminal
Ativar registo Syslog:
logging on
Especifique o endereço IP ou o nome de anfitrião e a porta do servidor syslog, incluindo o protocolo pretendido (Bindplane):
logging host <syslog-server-ip> [udp | tcp] port <port-number>
Exemplo para TCP na porta 54525:
logging host 10.10.10.10 tcp port 54525
Opcional: defina a funcionalidade Syslog (local0 a local7):
logging facility local0
Defina o nível de gravidade mínimo dos registos a enviar para o servidor syslog:
logging trap <severity-level>
Guarde a configuração:
write memory
Tabela de mapeamento da UDM
Campo de registo | Mapeamento de UDM | Lógica |
---|---|---|
%{GREEDYDATA} | metadata.description | O campo %{GREEDYDATA} é mapeado para metadata.description quando corresponde ao padrão "-- %{GREEDYDATA} --". |
%{GREEDYDATA:auth_result} | security_result.description | O campo %{GREEDYDATA:auth_result} é concatenado com o campo %{GREEDYDATA:desc} para formar security_result.description quando %{GREEDYDATA:desc} está presente. |
%{GREEDYDATA:desc} | security_result.description | O campo %{GREEDYDATA:desc} é usado para preencher o campo security_result.description. Pode ser concatenado com outros campos, consoante o formato do registo não processado. |
%{GREEDYDATA:login_to} | security_result.description | O campo %{GREEDYDATA:login_to} é concatenado com o campo %{GREEDYDATA:desc} para formar security_result.description quando %{GREEDYDATA:desc} está presente. |
%{GREEDYDATA:user} | target.user.userid | O campo %{GREEDYDATA:user} está mapeado para target.user.userid. |
%{HOST:principal_host} | principal.hostname | O campo %{HOST:principal_host} está mapeado para principal.hostname. |
%{HOST:target_host} | target.hostname | O campo %{HOST:target_host} está mapeado para target.hostname. |
%{INT:http_port} | additional.fields.value.string_value | O campo %{INT:http_port} é mapeado para additional.fields.value.string_value com a chave "HTTP Port". |
%{INT:target_port} | target.port | O campo %{INT:target_port} é mapeado para target.port e convertido num número inteiro. |
%{INT:telnet_port} | additional.fields.value.string_value | O campo %{INT:telnet_port} está mapeado para additional.fields.value.string_value com a chave "Telnet Port". |
%{INT:tftp_port} | additional.fields.value.string_value | O campo %{INT:tftp_port} é mapeado para additional.fields.value.string_value com a chave "TFTP Port". |
%{IP:principal_ip} | principal.ip | O campo %{IP:principal_ip} está mapeado para principal.ip. |
%{IP:target_ip} | target.ip | O campo %{IP:target_ip} está mapeado para target.ip. |
%{IPV4:principal_ip} | principal.ip | O campo %{IPV4:principal_ip} está mapeado para principal.ip. |
%{IPV4:target_ip} | target.ip | O campo %{IPV4:target_ip} está mapeado para target.ip. |
%{MAC:principal_mac} | principal.mac | O campo %{MAC:principal_mac} é mapeado para principal.mac após a conversão para o formato [0-9a-f]{2}:[0-9a-f]{2}:[0-9a-f]{2}:[0-9a-f]{2}:[0-9a-f]{2}:[0-9a-f]{2}. |
%{USERNAME:target_host} | target.hostname | O campo %{USERNAME:target_host} está mapeado para target.hostname. |
%{USERNAME:user} | target.user.userid | O campo %{USERNAME:user} está mapeado para target.user.userid. |
%{WORD:auth_result} | security_result.description | O campo %{WORD:auth_result} é concatenado com o campo %{GREEDYDATA:desc} para formar security_result.description quando %{GREEDYDATA:desc} está presente. |
%{WORD:proto} | network.application_protocol | O campo %{WORD:proto} é mapeado para network.application_protocol quando o respetivo valor é "SSH". |
timestamp | metadata.event_timestamp | O campo de data/hora é analisado a partir dos dados de registo não processados através de um padrão grok e convertido num objeto de data/hora. |
extensions.auth.type | O valor é definido como "MACHINE" se o campo proto não estiver vazio e o campo auth_action for "logout" ou "login". | |
metadata.description | O campo é preenchido com o valor do campo "metadata_description" se não estiver vazio. | |
metadata.event_type | O campo é preenchido com base nos valores de outros campos através da lógica condicional: - STATUS_STARTUP: se target_port_status for "up". - STATUS_SHUTDOWN: se target_port_status for "down". - USER_LOGOUT: se o proto não estiver vazio e auth_action for "logout". - USER_LOGIN: se o proto não estiver vazio e auth_action for "login". - STATUS_UPDATE: se metadata_description corresponder a "state changed". - GENERIC_EVENT: se nenhuma das condições acima for cumprida. |
|
metadata.log_type | O valor está codificado como "BROCADE_SERVERIRON". | |
metadata.product_name | O valor está codificado como "ServerIron". | |
metadata.vendor_name | O valor está codificado como "Brocade". | |
security_result.action | O valor é definido como "BLOCK" se o campo desc contiver "fail" ou o campo auth_result contiver "fail" ou "rejected". |
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais da Google SecOps.