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,viou Bloco de notas).
- Localize o ficheiro
Edite o ficheiro
config.yamlda 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.jsonpara 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-agentPara 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.xmlcom o vi:vi $JFROG_HOME/artifactory/var/etc/artifactory/logback.xmlAdicione 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-IPem 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.