Recolha registos do JFrog Artifactory

Compatível com:

Este documento explica como carregar registos do Jfrog Artifactory para o Google Security Operations através do Bindplane. O analisador processa dois formatos de registo do JFrog Artifactory diferentes. Usa padrões grok para identificar e extrair campos de cada formato. Em seguida, mapeia esses campos para o UDM, processando payloads JSON num dos formatos e ignorando registos que não correspondem a nenhum dos formatos.

Antes de começar

  • Certifique-se de que tem uma instância do Google SecOps.
  • Certifique-se de que está a usar o Windows 2016 ou posterior, ou um anfitrião Linux com systemd.
  • Se estiver a executar o serviço através de um proxy, certifique-se de que as portas da firewall estão abertas.
  • Certifique-se de que tem acesso privilegiado à instância do Jfrog Artifactory.

Obtenha o ficheiro de autenticação de carregamento do Google SecOps

  1. Inicie sessão na consola Google SecOps.
  2. Aceda a Definições do SIEM > Agentes de recolha.
  3. Transfira o ficheiro de autenticação de carregamento. Guarde o ficheiro de forma segura no sistema onde o Bindplane vai ser instalado.

Obtenha o ID de cliente do Google SecOps

  1. Inicie sessão na consola Google SecOps.
  2. Aceda a Definições do SIEM > Perfil.
  3. Copie e guarde o ID do cliente da secção Detalhes da organização.

Instale o agente do Bindplane

Instalação do Windows

  1. Abra a Linha de comandos ou o PowerShell como administrador.
  2. Execute o seguinte comando:

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    

Instalação do Linux

  1. Abra um terminal com privilégios de raiz ou sudo.
  2. Execute o seguinte comando:

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    

Recursos de instalação adicionais

Configure o agente Bindplane para carregar o Syslog e enviá-lo para o Google SecOps

  1. Aceda ao ficheiro de configuração:

    1. Localize o ficheiro config.yaml. Normalmente, encontra-se no diretório /etc/bindplane-agent/ no Linux ou no diretório de instalação no Windows.
    2. Abra o ficheiro com um editor de texto (por exemplo, nano, vi ou Bloco de notas).
  2. Edite o ficheiro config.yaml da seguinte forma:

    ```yaml
    receivers:
        udplog:
            # Replace the port and IP address as required
            listen_address: "0.0.0.0:514"
    
    exporters:
        chronicle/chronicle_w_labels:
            compression: gzip
            # Adjust the path to the credentials file you downloaded in Step 1
            creds: '/path/to/ingestion-authentication-file.json'
            # Replace with your actual customer ID from Step 2
            customer_id: <customer_id>
            endpoint: malachiteingestion-pa.googleapis.com
            # Add optional ingestion labels for better organization
            ingestion_labels:
                log_type: 'JFROG_ARTIFACTORY'
                raw_log_field: body
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - udplog
                exporters:
                    - chronicle/chronicle_w_labels
    ```
    
  3. Substitua a porta e o endereço IP conforme necessário na sua infraestrutura.

  4. Substitua <customer_id> pelo ID de cliente real.

  5. Atualize /path/to/ingestion-authentication-file.json para o caminho onde o ficheiro de autenticação foi guardado na secção Obtenha o ficheiro de autenticação de carregamento do Google SecOps.

Reinicie o agente do Bindplane para aplicar as alterações

  • Para reiniciar o agente do Bindplane no Linux, execute o seguinte comando:

    sudo systemctl restart bindplane-agent
    
  • Para reiniciar o agente do Bindplane no Windows, pode usar a consola Services ou introduzir o seguinte comando:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Configure o Syslog do Jfrog Artifactory

  1. Associe-se à instância do Jfrog Artifactory.
  2. Edite o ficheiro $JFROG_HOME/artifactory/var/etc/artifactory/logback.xml com o vi:

    vi $JFROG_HOME/artifactory/var/etc/artifactory/logback.xml
    
  3. Adicione o seguinte appender syslog ao ficheiro:

    <appender name="SYSLOG" class= "ch.qos.logback.classic.net.SyslogAppender">
        <syslogHost>Bindplane-Agent-IP</syslogHost>
        <facility>SYSLOG</facility>
        <suffixPattern>[%thread] %logger %msg</suffixPattern>
    </appender>
    
    • Substitua Bindplane-Agent-IP em syslogHost pelo endereço IP real configurado para o agente Bindplane.
  4. Adicione dados de configuração adicionais ao ficheiro:

    <root>
    < level value="debug"/>
    <appender-ref ref="CONSOLE"/>
    <appender-ref ref="FILE"/>
    <appender-ref ref="SYSLOG"/>
    </root>
    
  5. Guarde o ficheiro clicando no botão ESC (escape) no teclado e escrevendo :wq.

Tabela de mapeamento da UDM

Campo de registo Mapeamento de UDM Lógica
ação read_only_udm.metadata.product_event_type O valor de action do registo não processado é convertido em letras minúsculas e mapeado.
datetime read_only_udm.metadata.event_timestamp O campo datetime do registo não processado é analisado e convertido numa data/hora.
hostname read_only_udm.principal.hostname Mapeado diretamente a partir do campo hostname do registo não processado.
id read_only_udm.metadata.product_log_id Mapeado diretamente a partir do campo id do registo não processado (do payload JSON).
ip read_only_udm.principal.ip Mapeado diretamente a partir do campo ip do registo não processado. Codificado de forma rígida como "USER_RESOURCE_ACCESS". Codificado de forma rígida como "JFROG_ARTIFACTORY". Codificado de forma rígida para "Artifactory". Codificado de forma rígida para "JFROG".
proprietário read_only_udm.principal.user.userid Mapeado se username não estiver presente no registo não processado (do payload JSON).
repo_name read_only_udm.target.resource.name Mapeado diretamente a partir do campo repo_name do registo não processado.
repo_type read_only_udm.target.resource.resource_subtype Mapeado diretamente a partir do campo repo_type do registo não processado.
âmbito read_only_udm.target.resource.name Mapeado diretamente a partir do campo scope do registo não processado (do payload JSON).
âmbito read_only_udm.target.resource.resource_subtype Codificado como "scope" se scope estiver presente no registo não processado.
sequenceId read_only_udm.metadata.product_log_id As aspas são removidas do campo sequenceId e, em seguida, mapeadas.
assunto read_only_udm.about.labels.key Codificado como "subject" se subject estiver presente no registo não processado.
assunto read_only_udm.about.labels.value Mapeado diretamente a partir do campo subject do registo não processado (do payload JSON).
type read_only_udm.metadata.product_event_type Mapeado diretamente a partir do campo type do registo não processado (do payload JSON).
user read_only_udm.principal.user.userid Mapeado diretamente a partir do campo user do registo não processado.
username read_only_udm.principal.user.userid Mapeado diretamente a partir do campo username do registo não processado (do payload JSON).

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