Coletar registros de chaves Brocade
Esse analisador extrai campos dos registros de chaves Brocade usando padrões grok que correspondem a vários formatos de registro. Em seguida, ele mapeia esses campos extraídos para os campos da UDM, processando diferentes estruturas de registro e enriquecendo os dados com metadados, como informações do fornecedor e do produto. O analisador também realiza transformações de dados, como converter níveis de gravidade e processar mensagens repetidas, antes de gerar a saída final do 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 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.
- Faça o download do arquivo de autenticação de transferência.
Receber o ID de 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 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
- Outras opções de instalação podem ser encontradas neste guia de instalação.
Configurar o agente BindPlane para ingerir o Syslog e enviar ao Google SecOps
- Acesse a máquina em que o BindPlane está instalado.
Edite o arquivo
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_Switch 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 mudanças:
sudo systemctl restart bindplane
Configurar a exportação de syslog em 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 54525
Execute 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 , 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 extrair network.application_protocol . |
ip |
principal.ip |
Valor extraído do campo ip , analisado usando grok. Mesclado em 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 , 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.hostname principal.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 , 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 "Administrador". |
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 , 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.userid principal.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 nas condições. Copiado de 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 em "BROCADE_SWITCH". Fixado em "BROCADE". Fixado em "BROCADE_SWITCH". Derivado do campo interface ou definido como "SSH" se o campo interface contém "SSH". |
Alterações
2024-04-15
- Adição de suporte a registros específicos do cliente.
2023-12-01
- Parser recém-criado.