Coletar registros do switch Brocade
Esse analisador extrai campos de registros de switches Brocade usando padrões grok que correspondem a vários formatos de registro. Em seguida, ele mapeia esses campos extraídos para campos da UDM, processando diferentes estruturas de registros e enriquecendo os dados com metadados, como informações de fornecedor e produto. O analisador também realiza transformações de dados, como conversão de níveis de gravidade e tratamento de mensagens repetidas, antes de gerar a saída final da UDM.
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 de administrador da CLI ao switch Brocade.
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_Switch 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 de um switch Brocade
- Conecte-se ao switch Brocade usando SSH ou Telnet com as credenciais adequadas.
Execute o comando a seguir para especificar o endereço IP ou o nome do host e a Porta do servidor syslog (Bindplane):
syslogadmin --set -ip <IP> -port <Port>Exemplo:
syslogadmin --set -ip 10.10.10.10 -port 54525Execute o comando a seguir para mostrar os servidores syslog configurados:
syslogadmin --show -ip
Tabela de mapeamento do UDM
| Campo de registro | Mapeamento do UDM | Lógica |
|---|---|---|
application |
additional.fields[].key: "application"additional.fields[].value.string_value: |
Valor extraído do campo application@1588 no registro bruto quando o campo KV_DATA existe. |
class |
additional.fields[].key: "class"additional.fields[].value.string_value: |
Valor extraído do campo class@1588 no registro bruto quando o campo KV_DATA existe. |
domain |
principal.administrative_domain |
Valor extraído do padrão grok que corresponde ao campo domain. |
Event |
additional.fields[].key: "event_category"additional.fields[].value.string_value: |
Valor extraído do campo arg0@1588 no registro bruto quando o campo KV_DATA existe. |
event_id |
metadata.product_log_id |
Valor extraído do padrão grok que corresponde ao campo event_id. |
event_type |
metadata.product_event_type |
Valor extraído do padrão grok que corresponde ao campo event_type. |
flags |
additional.fields[].key: "flags"additional.fields[].value.string_value: |
Valor extraído do padrão grok que corresponde ao campo flags. |
Info |
metadata.description |
Valor extraído do campo Info e analisado usando grok. |
interface |
app_protocol_src |
Valor extraído do campo interface@1588 no registro bruto quando o campo KV_DATA existe. Usado para derivar network.application_protocol. |
ip |
principal.ip |
Valor extraído do campo ip e analisado usando grok. Unido a principal.ip se não for o mesmo que o IP extraído do campo Info. |
Info, IP Addr |
principal.ip |
Valor extraído do campo IP Addr no campo Info, analisado usando grok. |
log |
additional.fields[].key: "log"additional.fields[].value.string_value: |
Valor extraído do campo log@1588 no registro bruto quando o campo KV_DATA existe. |
msg |
metadata.description |
Valor extraído do campo msg e analisado usando grok. |
msgid |
additional.fields[].key: "msgid"additional.fields[].value.string_value: |
Valor extraído do campo msgid@1588 no registro bruto quando o campo KV_DATA existe. |
prin_host |
principal.hostnameprincipal.asset.hostname |
Valor extraído do padrão grok que corresponde ao campo prin_host. |
product_version |
metadata.product_version |
Valor extraído do padrão grok que corresponde ao campo product_version. |
repeat_count |
additional.fields[].key: "repeat_count"additional.fields[].value.string_value: |
Valor extraído do campo msg e analisado usando grok. |
role, user_role |
principal.user.attribute.roles[].name |
Valor extraído do campo role@1588 ou user_role. Se o valor for "admin", ele será substituído por "Admin". |
sequence_number |
additional.fields[].key: "sequence_number"additional.fields[].value.string_value: |
Valor extraído do padrão grok que corresponde ao campo sequence_number. |
severity |
security_result.severity |
Valor extraído do campo severity e analisado usando grok. Mapeado para valores de gravidade do UDM (INFORMATIONAL, ERROR, CRITICAL, MEDIUM). |
Status |
security_result.summary |
Valor extraído do campo Status. |
switch_name |
additional.fields[].key: "switch_name"additional.fields[].value.string_value: |
Valor extraído do padrão grok que corresponde ao campo switch_name. |
target_application |
target.application |
Valor extraído do padrão grok que corresponde ao campo target_application. |
time |
additional.fields[].key: "time"additional.fields[].value.string_value: |
Valor extraído do campo time no campo kv_data3. |
timestamp |
metadata.event_timestamp.seconds |
Valor extraído do campo timestamp, analisado usando o filtro de data. |
user |
principal.user.useridprincipal.user.user_display_name |
Valor extraído do campo user ou user@1588, analisado usando grok. Copiado de principal.hostname. Copiado de principal.ip. Copiado de metadata.product_event_type ou definido como "STATUS_UPDATE" com base em condições. Copiado do create_time.nanos do registro. Determinado pela lógica do analisador com base nos valores de has_principal, has_target, has_userid e event_type. Pode ser "SYSTEM_AUDIT_LOG_UNCATEGORIZED", "STATUS_UPDATE" ou "GENERIC_EVENT". Fixado no código como "BROCADE_SWITCH". Codificado como "BROCADE". Fixado no código como "BROCADE_SWITCH". Derivado do campo interface ou definido como "SSH" se o campo interface contiver "SSH". |
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.