Coletar registros do CA ACF2

Compatível com:

Este documento explica como ingerir registros do CA ACF2 no Google Security Operations usando o agente do Bindplane.

O Broadcom ACF2 (Access Control Facility 2) para z/OS é um produto de segurança de mainframe que oferece controle de acesso, autenticação e auditoria para sistemas IBM z/OS. O ACF2 registra eventos de segurança em registros do IBM System Management Facility (SMF), tipo padrão 230, incluindo tentativas de autenticação, violações de acesso a conjuntos de dados, eventos de acesso a recursos, geração de registros de comandos do TSO e modificações no banco de dados. Esses registros SMF precisam ser encaminhados para o Chronicle usando um agente de terceiros, como o BMC AMI Defender para z/OS.

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
  • Conectividade de rede entre o agente do Bindplane e o agente do BMC AMI Defender para z/OS
  • 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.
  • O BMC AMI Defender para z/OS instalado e em execução na LPAR do z/OS em que o ACF2 está ativo
  • Acesso para modificar os arquivos de parâmetros do BMC AMI Defender no conjunto de dados amihlq.CZAGENT.PARM
  • Autoridade para iniciar ou modificar a tarefa iniciada do CZAGENT no z/OS

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:
      udplog:
        listen_address: "0.0.0.0:514"
    
    exporters:
      chronicle/acf2_logs:
        compression: gzip
        creds_file_path: '/etc/bindplane-agent/ingestion-auth.json'
        customer_id: 'YOUR_CUSTOMER_ID'
        endpoint: malachiteingestion-pa.googleapis.com
        log_type: CA_ACF2
        raw_log_field: body
        ingestion_labels:
          env: production
          source: acf2
    
    service:
      pipelines:
        logs/acf2_to_chronicle:
          receivers:
            - udplog
          exporters:
            - chronicle/acf2_logs
    
  2. Substitua os seguintes marcadores de posição:

    • Configuração do receptor:

      • listen_address: defina como 0.0.0.0:514 para detectar todas as interfaces na porta UDP 514.

        • Para sistemas Linux executados como não raiz, use a porta 1514 ou superior.
        • Faça a correspondência dessa porta com a configuração da instrução SERVER do BMC AMI Defender
    • 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: substitua YOUR_CUSTOMER_ID por 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: definido como CA_ACF2 (rótulo de ingestão do Chronicle para registros do ACF2)

      • ingestion_labels: rótulos opcionais para categorizar registros (personalize conforme necessário)

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 BMC AMI Defender para z/OS para encaminhar registros SMF do ACF2

Edite o membro $$$SERVR parameter member

  1. Sign in to the z/OS system using TSO/ISPF or a 3270 emulator.
  2. Navigate to the BMC AMI Defender parameter library:
    1. Enter ISPF at the TSO READY prompt.
    2. Select option 2 (Edit).
    3. In the ISPF Library field, enter the data set name: amihlq.CZAGENT.PARM (replace amihlq with your installation high-level qualifier).
    4. Press Enter.
  3. Edit the $$$SERVR:
    1. Digite E ao lado do membro do parâmetro$$$SERVR member.
    2. Press Enter.
  4. Locate the SERVER statement section (approximately line 40-60).
  5. Uncomment one of the SERVER statements by removing the leading semicolon (;).
  6. Configure the SERVER statement with the Bindplane agent IP address and port:

    SERVER bindplane-host-ip:514 TRANS(UDP) MAXMSG(2000)
    
    • Replace bindplane-host-ip with the IP address of the Bindplane agent host (for example, 192.168.1.100).
    • If using a non-standard port (for example, 1514), specify: bindplane-host-ip:1514.
    • TRANS(UDP) specifies UDP transport protocol (recommended for syslog).
    • MAXMSG(2000) sets the maximum message length to 2000 bytes (ACF2 records may require larger sizes).
  7. Verify the OPTIONS statement for syslog format:

    1. Scroll up to locate the OPTIONS statements (approximately line 10-30).
    2. Ensure one of the following OPTIONS statements is uncommented based on your preferred format:

      OPTIONS IF(RFC3164) SIEM(RFC3164) TIMESTAMP INSTNAME(SIEM.Agent)
      
      • RFC3164: Standard syslog format (recommended for Chronicle)
      • CEF: Common Event Format (alternative)
      • LEEF: Log Event Extended Format (alternative)
      • JSON: JSON format (alternative)
  8. Save the changes:

    1. Press F3 to exit the editor.
    2. Type SAVE when prompted.
    3. Press Enter.

Edit the $$$CONFG para ativar a coleta de registros SMF do ACF2.

  1. Na lista de membros do conjunto de dados amihlq.CZAGENT.PARM, edite o membro $$$CONFG member:

    1. Type E next to the $$$CONFG.

    2. Pressione Enter.
  2. Localize a chave de seleção de registros SMF do ACF2 (procure ACF2 ou SMF 230).

  3. Remova o comentário da instrução SELECT para o ACF2:

    SELECT IF(ACF2) SMF(ACF2)
    
    • Isso permite a coleta de registros SMF do ACF2 (tipo padrão 230).
    • Se o site usar um tipo de registro SMF diferente para ACF2, verifique o tipo com o comando: ACF SHOW SYSTEMS em TSO.
  4. Salve as mudanças:

    1. Pressione F3 para sair do editor.
    2. Digite SAVE quando solicitado.
    3. Pressione Enter.
  5. Criar ou editar o membro de parâmetro da instrução SMF ACF2

    1. Na lista de membros do conjunto de dados amihlq.CZAGENT.PARM, verifique se há um membro chamado $$$ACF2 or SMFACF2 exists.
    2. If the member does not exist, create it:

      1. Type C (Create) on the command line.
      2. Enter the member name: $$$ACF2.
      3. Pressione Enter.
    3. Edite o membro e adicione a seguinte instrução SMF ACF2:

      SMF ACF2(230) FACILITY(SECURITY4) SEVERITY(INFORMATIONAL)
      
      • ACF2(230): especifica o tipo de registro SMF para ACF2 (o padrão é 230; verifique com ACF SHOW SYSTEMS).
      • FACILITY(SECURITY4): define a facilidade do syslog como "Segurança" (4).
      • SEVERITY(INFORMATIONAL): define a gravidade padrão como "Informativa".

        • Senhas inválidas ou violações de autoridade são enviadas automaticamente com a gravidade ERROR.
        • As violações de recursos são enviadas automaticamente com a gravidade ERROR.
    4. Opcional: configure subtipos e gravidades específicos do ACF2:

      SMF ACF2(230) +
        FACILITY(SECURITY4) +
        SEVERITY(INFORMATIONAL) +
        SUBTYPES(P SEV(ERROR)) +
        SUBTYPES(V SEV(ERROR)) +
        SUBTYPES(D SEV(ERROR))
      
      • Subtipo P: eventos de senha ou autoridade inválidos (gravidade ERROR)
      • Subtipo V: violações de recursos (gravidade ERROR)
      • Subtipo D: violações de acesso ao conjunto de dados (gravidade ERROR)
    5. Salve as mudanças:

      1. Pressione F3 para sair do editor.
      2. Digite SAVE quando solicitado.
      3. Pressione Enter.
    6. Atualizar o arquivo de parâmetros do BMC AMI Defender

      1. Saia do ISPF e volte para o prompt TSO READY.
      2. Emita o comando MODIFY para recarregar o arquivo de parâmetros:

        F CZAGENT,PARMS
        
        • Substitua CZAGENT pelo nome da tarefa iniciada do BMC AMI Defender, se for diferente.
        • Esse comando recarrega o arquivo de parâmetros sem interromper o agente.
      3. Verifique a configuração consultando a saída do CZAPRINT:

        1. No ISPF, selecione a opção 3.4 (DSLIST).
        2. Insira o padrão de nome do conjunto de dados: CZAGENT.CZAPRINT (ou sua convenção de nomenclatura específica do site).
        3. Pressione Enter.
        4. Digite B (Procurar) ao lado do conjunto de dados CZAPRINT mais recente.
        5. Pressione Enter.
        6. Procure mensagens que indiquem uma conexão bem-sucedida com o servidor syslog:

          • CZA0070I Connected to server bindplane-host-ip:514
          • CZA0100I SMF ACF2 statement processed
      4. Se a tarefa iniciada do CZAGENT não estiver em execução, inicie-a:

        S CZAGENT
        

      Verificar o encaminhamento de registros do ACF2

      1. Gere eventos de segurança de teste do ACF2:

        1. No TSO, tente acessar um conjunto de dados a que você não tem permissão.
        2. Tente fazer login com uma senha inválida (use uma conta de teste).
        3. Execute um comando TSO registrado pelo ACF2.
      2. Verifique os registros do agente do Bindplane para confirmar o recebimento das mensagens de syslog do ACF2:

        • Linux:

          sudo journalctl -u observiq-otel-collector -f | grep ACF2
          
        • Windows:

          type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log" | findstr ACF2
          
      3. Faça login no console do Google SecOps e verifique se os registros do ACF2 estão sendo ingeridos:

        1. Acesse Pesquisar > Pesquisa do UDM.
        2. Digite a seguinte consulta:

          metadata.log_type = "CA_ACF2"
          
        3. Verifique se os eventos de segurança do ACF2 aparecem nos resultados da pesquisa.

      Tabela de mapeamento do UDM

      Campo de registro Mapeamento do UDM Lógica
      extensions.auth.mechanism O mecanismo de autenticação usado.
      extensions.auth.type O tipo de autenticação.
      ponderada metadata.description Uma descrição do evento.
      metadata.event_type O tipo de evento.
      event_type, cat metadata.product_event_type O tipo de evento específico do produto.
      product_version metadata.product_version A versão do produto.
      terminal principal.hostname O nome do host associado ao principal.
      nome principal.user.user_display_name O nome de exibição do usuário.
      usrName principal.user.userid O código do usuário.
      security_result.action A ação realizada pelo sistema de segurança.
      security_result.category A categoria do resultado de segurança.
      classe security_result.category_details Detalhes adicionais sobre a categoria de resultados de segurança.
      reason security_result.severity O nível de gravidade do resultado de segurança.
      reason security_result.severity_details Informações detalhadas sobre a gravidade.
      logstr security_result.summary Um resumo do resultado de segurança.
      job_id target.application O aplicativo que está sendo segmentado.
      job_group target.group.group_display_name O nome de exibição do grupo.
      target.namespace O namespace da segmentação.
      dsn target.resource.name O nome do recurso.
      vol target.resource.parent O recurso pai.
      res, dsn target.resource.product_object_id O identificador de objeto específico do produto.
      target.resource.resource_type O tipo de recurso.
      nome target.user.user_display_name O nome de exibição do usuário de destino.
      usrName target.user.userid O ID do usuário-alvo.
      product_name metadata.product_name O nome do produto que gerou o evento.
      vendor_name metadata.vendor_name O nome do fornecedor.

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