Coletar registros do BMC AMI Defender

Compatível com:

Este documento explica como ingerir registros do BMC AMI Defender no Google Security Operations usando o agente do Bindplane.

O BMC AMI Datastream para z/OS é um programa de agente de mainframe que monitora a atividade do sistema z/OS e coleta, processa e entrega registros do System Management Facility (SMF) a sistemas SIEM distribuídos em tempo real. O agente reformata registros SMF do RACF, ACF2, Top Secret, TCP/IP, CICS, IMS e outros eventos de sistema e aplicativos z/OS como mensagens syslog compatíveis com RFC 3164 e os transmite por protocolos UDP, TCP ou TLS.

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 para o agente do Bindplane
  • Conectividade de rede entre o host do agente Bindplane e a partição lógica do z/OS que executa o BMC AMI Datastream
  • Se você estiver executando por trás de um proxy, verifique se as portas do firewall estão abertas de acordo com os requisitos do agente Bindplane.
  • BMC AMI Datastream para z/OS versão 6.1 ou mais recente instalado e em execução na partição lógica z/OS
  • Acesso para editar arquivos de parâmetros no conjunto de dados amihlq.PARM no z/OS. Normalmente, isso exige acesso ao TSO/ISPF ou autoridade de envio de job em lote.
  • Autoridade para modificar a configuração do BMC AMI Datastream (normalmente exige acesso RACF READ aos conjuntos de dados de parâmetros)

Receber o arquivo de autenticação de ingestão do Google SecOps

  1. Faça login no console do Google SecOps.
  2. Acesse Configurações do SIEM > Agentes de coleta.
  3. Baixe o arquivo de autenticação de ingestão. Salve o arquivo de forma segura no sistema em que o Bindplane será instalado.

Receber o ID de cliente do Google SecOps

  1. Faça login no console do Google SecOps.
  2. Acesse Configurações do SIEM > Perfil.
  3. Copie e salve o ID do cliente na seção Detalhes da organização.

Instalar o agente do Bindplane

Instale o agente do Bindplane no sistema operacional Windows ou Linux de acordo com as instruções a seguir.

  • Instalação do Windows

    1. Abra o prompt de comando ou o PowerShell como administrador.
    2. Execute este comando:

      msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
      
    3. Aguarde a conclusão da instalação.

    4. Execute o seguinte comando para confirmar a instalação:

      sc query observiq-otel-collector
      

      O serviço vai aparecer como EM EXECUÇÃO.

  • Instalação do Linux

    1. Abra um terminal com privilégios de root ou sudo.
    2. Execute este comando:

      sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
      
    3. Aguarde a conclusão da instalação.

    4. Execute o seguinte comando para confirmar a instalação:

      sudo systemctl status observiq-otel-collector
      

      O serviço vai aparecer como ativo (em execução).

Outros recursos de instalação

Para mais opções de instalação e solução de problemas, consulte o guia de instalação do agente do Bindplane.

Configurar o agente do Bindplane para ingerir syslog e enviar ao Google SecOps

Localizar o arquivo de configuração

  • Linux:

    sudo nano /etc/bindplane-agent/config.yaml
    
  • Windows:

    notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
    

Editar o arquivo de configuração

  1. Substitua todo o conteúdo de config.yaml pela seguinte configuração:

    receivers:
      tcplog:
        listen_address: "0.0.0.0:1514"
    
    exporters:
      chronicle/bmc_datastream:
        compression: gzip
        creds_file_path: '/etc/bindplane-agent/ingestion-auth.json'
        customer_id: 'your-customer-id-here'
        endpoint: malachiteingestion-pa.googleapis.com
        log_type: BMC_AMI_DEFENDER
        raw_log_field: body
    
    service:
      pipelines:
        logs/datastream_to_chronicle:
          receivers:
            - tcplog
          exporters:
            - chronicle/bmc_datastream
    
  2. Substitua os seguintes marcadores de posição:

    • Configuração do receptor:

      listen_address: endereço IP e porta a serem detectados:

      • 0.0.0.0:1514 para detectar a atividade em todas as interfaces na porta 1514 (recomendado para Linux não root)
      • 0.0.0.0:514 para detectar em todas as interfaces na porta syslog padrão (requer root no Linux)
      • Endereço IP específico para detectar em uma interface
    • Configuração do exportador:

      • creds_file_path: caminho completo para o arquivo de autenticação de ingestão:

        • Linux: /etc/bindplane-agent/ingestion-auth.json
        • Windows: C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
      • customer_id: seu customer ID. Para mais detalhes, consulte Receber o ID de cliente do Google SecOps.

      • endpoint: URL do endpoint regional:

        • EUA: malachiteingestion-pa.googleapis.com
        • Europa: europe-malachiteingestion-pa.googleapis.com
        • Ásia: asia-southeast1-malachiteingestion-pa.googleapis.com
        • Consulte a lista completa em Endpoints regionais.
      • log_type: BMC_AMI_DEFENDER

Exemplo de configuração para Syslog UDP

  • Se você preferir o transporte UDP (menor latência, fire-and-forget):

    receivers:
      udplog:
        listen_address: "0.0.0.0:514"
    
    exporters:
      chronicle/bmc_datastream:
        compression: gzip
        creds_file_path: '/etc/bindplane-agent/ingestion-auth.json'
        customer_id: 'a1b2c3d4-e5f6-g7h8-i9j0-k1l2m3n4o5p6'
        endpoint: malachiteingestion-pa.googleapis.com
        log_type: BMC_AMI_DEFENDER
        raw_log_field: body
    
    service:
      pipelines:
        logs/datastream_to_chronicle:
          receivers:
            - udplog
          exporters:
            - chronicle/bmc_datastream
    

Salve o arquivo de configuração.

Depois de editar, salve o arquivo:

  • Linux: pressione Ctrl+O, Enter e Ctrl+X.
  • Windows: clique em Arquivo > Salvar.

Reinicie o agente do Bindplane para aplicar as mudanças

  • Para reiniciar o agente do Bindplane no Linux:

    1. Execute este comando:

      sudo systemctl restart observiq-otel-collector
      
    2. Verifique se o serviço está em execução:

      sudo systemctl status observiq-otel-collector
      
    3. Verifique se há erros nos registros:

      sudo journalctl -u observiq-otel-collector -f
      
  • Para reiniciar o agente do Bindplane em Windows:

    1. 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:

        1. Pressione Win+R, digite services.msc e pressione Enter.
        2. Localize o Coletor do OpenTelemetry da observIQ.
        3. Clique com o botão direito do mouse e selecione Reiniciar.
    2. Verifique se o serviço está em execução:

      sc query observiq-otel-collector
      
    3. Verifique se há erros nos registros:

      type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
      

Configurar o encaminhamento de syslog do BMC AMI Defender

Edite o arquivo de parâmetros usando TSO/ISPF

  1. Faça login no TSO/ISPF na partição lógica z/OS em que o BMC AMI Datastream está instalado.
  2. No Menu de opções principal do ISPF, digite 2 para selecionar EDITAR.
  3. No Painel de edição - entrada, insira o seguinte:

    • Biblioteca ISPF: insira o nome do conjunto de dados de parâmetro no formato 'amihlq.PARM', em que amihlq é o qualificador de alto nível escolhido durante a instalação (por exemplo, 'PROD.CZAGENT.PARM').
    • Membro: insira o membro $$$CONFG.
  4. Press Enter to open the member for editing.

Configure the SIEM type

  1. In the $$$CONFG e localize a seção Chaves para definir o tipo de SIEM.
  2. Remova o comentário de um tipo de SIEM excluindo o ponto e vírgula inicial da linha apropriada:

    • Para o formato syslog padrão, remova o comentário de: SWITCH ON(RFC3164)
    • Para o formato de evento comum, remova o comentário de: SWITCH ON(CEF)
    • Para o formato JSON, remova o comentário: SWITCH ON(JSON)
    • Para o formato LEEF do IBM QRadar, remova o comentário: SWITCH ON(LEEF)
    • Para o formato Splunk, remova o comentário: SWITCH ON(Splunk)
  3. Pressione F3 para salvar e sair do membro.

Configurar o servidor syslog

  1. No Painel de edição de entradas, insira o seguinte:

    • Biblioteca ISPF: insira 'amihlq.PARM' (igual a antes).
    • Membro: insira $$$SERVR.
  2. Press Enter to open the member for editing.

  3. Locate the section corresponding to your selected SIEM type. For example:

    • For RFC3164: Locate the section labeled ; RFC3164
    • For CEF: Locate the section labeled ; CEF - TRANS(TCP) Recommended
    • For JSON: Locate the section labeled ; JSON - TRANS(TCP) Recommended
  4. Uncomment the SERVER statement by removing the leading semicolon.

  5. Edit the SERVER statement with the following values:

    • Replace ip.addr.example with the IP address of the Bindplane agent host (for example, 192.168.1.100).
    • If using TCP (recommended), the statement should look like:

      SERVER 192.168.1.100:1514 TRANS(TCP) MAXMSG(2000)
      
    • If using UDP, the statement should look like:

      SERVER 192.168.1.100:514 TRANS(UDP) MAXMSG(2000)
      
  6. If you selected CEF, JSON, or Splunk format and are using TCP transport, locate the OPTIONS statement section and uncomment the FRAMING parameter:

    OPTIONS FRAMING(OCTETCOUNT)
    
  7. Press F3 to save and exit the member.

Refresh the BMC AMI Datastream configuration

  1. From the ISPF Primary Option Menu, enter 6 to select COMMAND.
  2. On the TSO Command Processor screen, enter the following MVS console command:

    F czagentname,PARMS
    

    Replace czagentname with the name of the BMC AMI Datastream started task (typically CZAGENT or the instance name configured during installation).

  3. Press Enter to execute the command.

  4. Verify the configuration was refreshed by checking the system log for message CZA0001I indicating the parameter file was successfully processed.

Verify syslog transmission

  1. From the ISPF Primary Option Menu, enter 6 to select COMMAND.
  2. Enter the following command to display BMC AMI Datastream statistics:

    F czagentname,STATS
    
  3. Press Enter to execute the command.

  4. Check the system log for message CZA0350I showing the number of messages sent to the syslog server.

  5. Verify the Bindplane agent is receiving messages by checking the Bindplane agent logs:

    • Linux: sudo journalctl -u observiq-otel-collector -f
    • Windows: Check C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log

Alternative: Edit parameter file using batch job

If you do not have TSO/ISPF access, you can edit the parameter files using a batch job:

  1. Create a batch job with the following JCL:

    //EDITPARM JOB (ACCT),'EDIT DATASTREAM PARMS',
    //         CLASS=A,MSGCLASS=X,NOTIFY=&SYSUID
    //STEP1    EXEC PGM=IEBGENER
    //SYSPRINT DD SYSOUT=*
    //SYSIN    DD DUMMY
    //SYSUT1   DD *
    SWITCH ON(RFC3164)
    /*
    //SYSUT2   DD DSN=amihlq.PARM($$$CONFG),DISP=SHR
    //STEP2    EXEC PGM=IEBGENER
    //SYSPRINT DD SYSOUT=*
    //SYSIN    DD DUMMY
    //SYSUT1   DD *
    SERVER 192.168.1.100:1514 TRANS(TCP) MAXMSG(2000)
    /*
    //SYSUT2   DD DSN=amihlq.PARM($$$SERVR),DISP=SHR
    .
  2. Substitua amihlq pelo qualificador de alto nível da instalação do BMC AMI Datastream.

  3. Substitua 192.168.1.100:1514 pelo endereço IP e pela porta do host do agente do Bindplane.

  4. Envie o job e verifique se a conclusão foi bem-sucedida (código de retorno 0).

  5. Emita o comando MODIFY para atualizar a configuração conforme descrito na seção anterior.

Tabela de mapeamento do UDM

Campo de registro Mapeamento do UDM Lógica
aceeadsp security_result.detection_fields Campos usados para determinar o resultado de segurança
aceeaudt security_result.detection_fields Campos usados para determinar o resultado de segurança
aceeflg1 security_result.detection_fields Campos usados para determinar o resultado de segurança
aceelogu security_result.detection_fields Campos usados para determinar o resultado de segurança
aceeoper security_result.detection_fields Campos usados para determinar o resultado de segurança
aceepriv security_result.detection_fields Campos usados para determinar o resultado de segurança
aceeracf security_result.detection_fields Campos usados para determinar o resultado de segurança
aceeroa security_result.detection_fields Campos usados para determinar o resultado de segurança
aceespec security_result.detection_fields Campos usados para determinar o resultado de segurança
additional.fields additional.fields Outras informações sobre o evento
auth security_result.detection_fields Campos usados para determinar o resultado de segurança
auth_audit security_result.detection_fields Campos usados para determinar o resultado de segurança
auth_bypass security_result.detection_fields Campos usados para determinar o resultado de segurança
auth_exit security_result.detection_fields Campos usados para determinar o resultado de segurança
auth_normal security_result.detection_fields Campos usados para determinar o resultado de segurança
auth_oper security_result.detection_fields Campos usados para determinar o resultado de segurança
auth_soft security_result.detection_fields Campos usados para determinar o resultado de segurança
auth_special security_result.detection_fields Campos usados para determinar o resultado de segurança
auth_trusted security_result.detection_fields Campos usados para determinar o resultado de segurança
authinfo security_result.description Descrição do resultado de segurança
evento metadata.product_event_type Tipo de evento específico do produto
event_type metadata.event_type Tipo de evento (por exemplo, USER_LOGIN, NETWORK_CONNECTION)
eventdesc metadata.description A descrição do evento
grupo additional.fields Outras informações sobre o evento
nome do host principal.hostname, principal.asset.hostname Nome do host do principal, nome do host do recurso
jobid security_result.detection_fields Campos usados para determinar o resultado de segurança
jobnm additional.fields Outras informações sobre o evento
jsauth security_result.detection_fields Campos usados para determinar o resultado de segurança
nome principal.user.user_display_name Nome de exibição do usuário
pgm security_result.detection_fields Campos usados para determinar o resultado de segurança
privstatd security_result.detection_fields Campos usados para determinar o resultado de segurança
reas_always security_result.detection_fields Campos usados para determinar o resultado de segurança
reas_audit security_result.detection_fields Campos usados para determinar o resultado de segurança
reas_cmdviol security_result.detection_fields Campos usados para determinar o resultado de segurança
reas_globalaudit security_result.detection_fields Campos usados para determinar o resultado de segurança
reas_setropts security_result.detection_fields Campos usados para determinar o resultado de segurança
reas_special security_result.detection_fields Campos usados para determinar o resultado de segurança
reas_user security_result.detection_fields Campos usados para determinar o resultado de segurança
reas_verify security_result.detection_fields Campos usados para determinar o resultado de segurança
rtype additional.fields Outras informações sobre o evento
saf additional.fields Outras informações sobre o evento
safd additional.fields Outras informações sobre o evento
security_result.detection_fields security_result.detection_fields Campos usados para determinar o resultado de segurança
gravidade, security_result.severity, security_result.severity_details Gravidade do resultado de segurança, informações detalhadas sobre a gravidade
sid additional.fields Outras informações sobre o evento
timestamp metadata.event_timestamp Carimbo de data/hora em que o evento ocorreu
tokflg1 security_result.detection_fields Campos usados para determinar o resultado de segurança
tokflg3 security_result.detection_fields Campos usados para determinar o resultado de segurança
tokpriv security_result.detection_fields Campos usados para determinar o resultado de segurança
toksus security_result.detection_fields Campos usados para determinar o resultado de segurança
tokudus security_result.detection_fields Campos usados para determinar o resultado de segurança
userid principal.user.userid ID do usuário
violação security_result.detection_fields Campos usados para determinar o resultado de segurança
user_warning security_result.detection_fields Campos usados para determinar o resultado de segurança
worktyped additional.fields Outras informações sobre o evento
metadata.product_name Nome do produto
metadata.vendor_name Nome do fornecedor/empresa

Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.