Coletar registros do Brocade ServerIron
Esse analisador extrai campos de mensagens syslog do Brocade ServerIron usando a correspondência de expressões regulares e os mapeia para o modelo de dados unificado (UDM). Ele processa vários formatos de registros, incluindo status da rede, autenticação de usuários e eventos de segurança. O analisador realiza conversões e enriquecimento de tipo de dados quando necessário.
Antes de começar
- Verifique se você tem uma instância do Google Security Operations.
- Verifique se você está usando o Windows 2016 ou uma versão 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.
- Verifique se você tem acesso privilegiado à instância do Brocade ServerIron.
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.
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
- Para instalação no Windows, execute o seguinte script:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet - Para instalação no 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 - Outras opções de instalação estão disponíveis neste guia de instalação.
Configurar o agente do Bindplane para ingerir Syslog e enviar ao Google SecOps
- Acesse a máquina em que o Bindplane está instalado.
Edite o arquivo
config.yamlda 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_labelsReinicie o agente do Bindplane para aplicar as mudanças:
sudo systemctl restart bindplane
Configurar a exportação do Syslog do Brocade ServerIron ADX
Faça login no dispositivo ADX e entre no modo de configuração global:
enable configure terminalAtive o registro do Syslog:
logging onEspecifique o endereço IP ou o nome do host e a porta do servidor syslog, incluindo o protocolo desejado (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 54525Opcional: defina a Facilidade do Syslog (local0 a local7):
logging facility local0Defina o nível mínimo de gravidade dos registros a serem enviados ao servidor syslog:
logging trap <severity-level>Salve a configuração:
write memory
Tabela de mapeamento do UDM
| Campo de registro | Mapeamento do 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. Ele pode ser concatenado com outros campos, dependendo do formato do registro bruto. |
| %{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} é mapeado para target.user.userid. |
| %{HOST:principal_host} | principal.hostname | O campo %{HOST:principal_host} é mapeado para principal.hostname. |
| %{HOST:target_host} | target.hostname | O campo %{HOST:target_host} é 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 em um número inteiro. |
| %{INT:telnet_port} | additional.fields.value.string_value | O campo %{INT:telnet_port} é 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} é mapeado para principal.ip. |
| %{IP:target_ip} | target.ip | O campo %{IP:target_ip} é mapeado para target.ip. |
| %{IPV4:principal_ip} | principal.ip | O campo %{IPV4:principal_ip} é mapeado para principal.ip. |
| %{IPV4:target_ip} | target.ip | O campo %{IPV4:target_ip} é mapeado para target.ip. |
| %{MAC:principal_mac} | principal.mac | O campo %{MAC:principal_mac} é mapeado para principal.mac depois de ser convertido 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} é mapeado para target.hostname. |
| %{USERNAME:user} | target.user.userid | O campo %{USERNAME:user} é 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 valor é "SSH". |
| timestamp | metadata.event_timestamp | O campo de carimbo de data/hora é analisado dos dados de registro brutos usando um padrão grok e convertido em um objeto de carimbo 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 usando a 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 atendida. |
|
| metadata.log_type | O valor é fixado como "BROCADE_SERVERIRON". | |
| metadata.product_name | O valor é fixado como "ServerIron". | |
| metadata.vendor_name | O valor é codificado como "Brocade". | |
| security_result.action | O valor é definido como "BLOCK" se o campo "desc" contiver "fail" ou se o campo "auth_result" contiver "fail" ou "rejected". |
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.