Recolha registos do JFrog Artifactory
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
- Inicie sessão na consola Google SecOps.
- Aceda a Definições do SIEM > Agentes de recolha.
- 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
- Inicie sessão na consola Google SecOps.
- Aceda a Definições do SIEM > Perfil.
- Copie e guarde o ID do cliente da secção Detalhes da organização.
Instale o agente do Bindplane
Instalação do Windows
- Abra a Linha de comandos ou o PowerShell como administrador.
Execute o seguinte comando:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
Instalação do Linux
- Abra um terminal com privilégios de raiz ou sudo.
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
- Para ver opções de instalação adicionais, consulte este guia de instalação.
Configure o agente Bindplane para carregar o Syslog e enviá-lo para o Google SecOps
Aceda ao ficheiro de configuração:
- 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. - Abra o ficheiro com um editor de texto (por exemplo,
nano
,vi
ou Bloco de notas).
- Localize o ficheiro
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 ```
Substitua a porta e o endereço IP conforme necessário na sua infraestrutura.
Substitua
<customer_id>
pelo ID de cliente real.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
- Associe-se à instância do Jfrog Artifactory.
Edite o ficheiro
$JFROG_HOME/artifactory/var/etc/artifactory/logback.xml
com o vi:vi $JFROG_HOME/artifactory/var/etc/artifactory/logback.xml
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.
- Substitua
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>
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.