Coletar registros do Jenkins

Compatível com:

Visão geral

Esse analisador extrai informações importantes, como data e hora, IDs de usuários, IPs de origem, ações e IDs de objetos de registros formatados em JSON e SYSLOG. Ele usa padrões grok para corresponder a vários formatos de mensagens de registro, processando variações na estrutura e preenchendo um modelo de dados unificado (UDM) com os campos extraídos. O analisador também categoriza eventos com base na presença de informações do usuário ou de IP.

Antes de começar

Verifique se você atende aos seguintes pré-requisitos:

  • Instância do Google SecOps.
  • Acesso privilegiado ao Google Cloud IAM.
  • Acesso privilegiado ao Google Cloud armazenamento.
  • Acesso privilegiado ao Jenkins.

Criar um Google Cloud bucket do Storage

  1. Acesse o Cloud Storage
  2. Crie um bucket. Escolha um nome exclusivo e uma região adequada.
  3. Verifique se o bucket tem controles de acesso adequados (por exemplo, apenas contas de serviço autorizadas podem gravar nele).

Crie uma Google Cloud conta de serviço

  1. Acesse IAM e administrador > Contas de serviço.
  2. Crie uma nova conta de serviço. Dê um nome descritivo (por exemplo, jenkins-logs).
  3. Conceda à conta de serviço o papel Criador de objetos do Storage no bucket do GCS criado na etapa anterior.
  4. Crie uma chave SSH para sua conta de serviço: Criar e excluir chaves de contas de serviço.
  5. Faça o download de um arquivo de chave JSON para a conta de serviço.

Instalar o plug-in do Google Cloud Storage no Jenkins

  1. Acesse Gerenciar o Jenkins > Plug-ins.
  2. Selecione Plug-ins disponíveis.
  3. Pesquise o plug-in Google Cloud Storage.
  4. Instale o plug-in e reinicie o Jenkins, se necessário.

Instalar o plug-in de credenciais do Google OAuth no Jenkins

  1. Acesse Gerenciar o Jenkins > Plug-ins.
  2. Selecione Plug-ins disponíveis.
  3. Pesquise o plug-in Credenciais do OAuth do Google.
  4. Instale o plug-in e reinicie o Jenkins, se necessário.

Configurar o Jenkins para autenticar com o Google Cloud

  1. Acesse Gerenciar o Jenkins > Credenciais > Sistema.

  2. Clique em add Adicionar credenciais.

  3. Tipo: selecione Conta de serviço do Google da chave privada.

  4. Nome do projeto: defina um nome para as credenciais.

  5. Faça upload do arquivo de chave JSON que você recebeu durante a Google Cloud criação da conta de serviço.

  6. Clique em Criar.

Configurar os registros do Jenkins para fazer upload do Google SecOps

  1. Na configuração do job do Jenkins, adicione Upload do registro de build do Google Storage em ações pós-build, com os seguintes parâmetros:
    • Credenciais do Google: o nome das credenciais do Google que você criou na etapa anterior.
    • Nome do registro: o nome do arquivo para armazenar o registro de build do Jenkins no caminho de armazenamento especificado.
    • Local de armazenamento: o nome do bucket em que você quer fazer upload dos registros. O bucket precisa estar acessível à conta de serviço criada.
  2. Teste o upload de registros.

Configurar feeds

Há dois pontos de entrada diferentes para configurar feeds na plataforma do Google SecOps:

  • Configurações do SIEM > Feeds
  • Central de conteúdo > Pacotes de conteúdo

Configure feeds em "Configurações do SIEM" > "Feeds".

Para configurar um feed, siga estas etapas:

  1. Acesse Configurações do SIEM > Feeds.
  2. Clique em Adicionar novo feed.
  3. Na próxima página, clique em Configurar um único feed.
  4. No campo Nome do feed, insira um nome para o feed, por exemplo, Registros do Jenkins.
  5. Selecione Google Cloud Storage como o Tipo de origem.
  6. Selecione Jenkins como o Tipo de registro.
  7. Clique em Receber conta de serviço como a Conta de serviço do Chronicle.
  8. Clique em Próxima.
  9. Especifique valores para os seguintes parâmetros de entrada:

    • URI do bucket de armazenamento: Google Cloud URL do bucket de armazenamento no formato gs://my-bucket/<value>.
    • O URI é um: selecione Diretório que inclui subdiretórios.
    • Opções de exclusão de fontes: selecione a opção de exclusão de acordo com sua preferência.
  10. Clique em Próxima.

  11. Revise a nova configuração do feed na tela Finalizar e clique em Enviar.

Configurar feeds na Central de conteúdo

Especifique valores para os seguintes campos:

  • URI do bucket de armazenamento: Google Cloud URL do bucket de armazenamento no formato gs://my-bucket/<value>.
  • O URI é um: selecione Diretório que inclui subdiretórios.
  • Opções de exclusão de fontes: selecione a opção de exclusão de acordo com sua preferência.

Opções avançadas

  • Nome do feed: um valor pré-preenchido que identifica o feed.
  • Tipo de origem: método usado para coletar registros no Google SecOps.
  • Namespace do recurso: namespace associado ao feed.
  • Rótulos de ingestão: rótulos aplicados a todos os eventos deste feed.

Tabela de mapeamento do UDM

Campo de registro Mapeamento do UDM Lógica
act security_result.action_details Extraído dos campos msg1 ou msg2. Representa a ação realizada. O espaço em branco à esquerda é removido.
dados principal.user.userid OR principal.ip OR metadata.description Se data corresponder a um padrão de endereço IP, ele será mapeado para principal.ip. Se ele corresponder a um padrão de nome de usuário, será mapeado para principal.user.userid. Caso contrário, ele será mapeado para metadata.description.
msg1 target.asset.product_object_id OU security_result.action_details Usado para extrair objeto e ação. Se um / estiver presente, ele será dividido em objeto e ação. Se » estiver presente, ele será dividido em objeto e ação. Caso contrário, ele será tratado como ação e poderá ser analisado mais detalhadamente.
msg2 metadata.description OU security_result.action_details Se presente, inicialmente mapeado para metadata.description. Se ele contiver "completed:", o valor após será extraído e mapeado para security_result.action_details.
object target.asset.product_object_id Extraído de msg1. Representa o objeto em que a ação foi realizada.
object_id target.resource.attribute.labels.value Extraído do objeto se um / estiver presente. Representa um identificador de objeto mais específico. A chave é codificada como "Plugin Name".
src_ip principal.ip Extraído de message ou data. Representa o endereço IP de origem.
user principal.user.userid Extraído de message ou data. Representa o usuário associado ao evento.
metadata.event_timestamp Copiado do campo calculado @timestamp.
metadata.event_type Determinado pela lógica do analisador. Definido como USER_UNCATEGORIZED se user estiver presente, STATUS_UNCATEGORIZED se src_ip estiver presente e GENERIC_EVENT caso contrário.
metadata.product_name Fixado no código como Jenkins.
metadata.product_version Fixado no código como Jenkins.
metadata.vendor_name Fixado no código como JENKINS.
metadata.event_timestamp Construído com base nos campos year, month, day, time e ampm.

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