Recolha registos do Jenkins

Compatível com:

Vista geral

Este analisador extrai informações importantes, como datas/horas, IDs de utilizadores, IPs de origem, ações e IDs de objetos, de registos formatados em JSON e SYSLOG. Usa padrões grok para fazer corresponder vários formatos de mensagens de registo, processando variações na estrutura e preenche um modelo de dados unificado (UDM) com os campos extraídos. O analisador também categoriza os eventos com base na presença de informações do utilizador ou de IP.

Antes de começar

Certifique-se de que tem os seguintes pré-requisitos:

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

Crie um Google Cloud contentor de armazenamento

  1. Aceda ao armazenamento na nuvem.
  2. Crie um novo contentor. Escolha um nome exclusivo e uma região adequada.
  3. Certifique-se de que o contentor tem controlos de acesso adequados (por exemplo, apenas as contas de serviço autorizadas podem escrever no mesmo).

Crie uma Google Cloud conta de serviço

  1. Aceda a IAM e administrador > Contas de serviço.
  2. Crie uma nova conta de serviço. Atribua-lhe um nome descritivo (por exemplo, jenkins-logs).
  3. Conceda à conta de serviço a função Storage Object Creator no contentor do GCS que criou no passo anterior.
  4. Crie uma chave SSH para a sua conta de serviço: crie e elimine chaves de contas de serviço.
  5. Transfira um ficheiro de chave JSON para a conta de serviço.

Instale o Google Cloud plugin de armazenamento no Jenkins

  1. Aceda a Manage Jenkins > Plugins.
  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.

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

  1. Aceda a Manage Jenkins > Plugins.
  2. Selecione Plug-ins disponíveis
  3. Pesquise o plug-in Google OAuth Credentials.
  4. Instale o plug-in e reinicie o Jenkins, se necessário.

Configure o Jenkins para autenticar com o Google Cloud

  1. Aceda a Manage Jenkins > Credentials > System.

  2. Clique em adicionar Adicionar credenciais.

  3. Tipo: selecione Conta de serviço Google a partir de chave privada.

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

  5. Carregue o ficheiro de chave JSON que obteve durante a Google Cloud criação da conta de serviço.

  6. Clique em Criar.

Configure os registos do Jenkins para carregar o Google SecOps

  1. Na configuração da tarefa do Jenkins, adicione Google Storage Build Log Upload nas ações pós-compilação, com os seguintes parâmetros:
    • Credenciais Google: o nome das suas credenciais Google que criou no passo anterior.
    • Nome do registo: o nome do ficheiro para armazenar o registo de compilação do Jenkins, no caminho de armazenamento especificado.
    • Localização de armazenamento: o nome do contentor onde quer carregar os seus registos. O contentor tem de estar acessível à conta de serviço que criou.
  2. Teste o carregamento do registo.

Configure feeds

Para configurar um feed, siga estes passos:

  1. Aceda a Definições do SIEM > Feeds.
  2. Clique em Adicionar novo feed.
  3. Na página seguinte, clique em Configurar um único feed.
  4. No campo Nome do feed, introduza um nome para o feed; por exemplo, Registos do Jenkins.
  5. Selecione Google Cloud Storage V2 como Tipo de origem.
  6. Selecione Jenkins como o Tipo de registo.
  7. Clique em Obter conta de serviço como a conta de serviço do Chronicle.
  8. Especifique valores para os seguintes parâmetros de entrada:

    • URI do contentor de armazenamento: Google Cloud URL do contentor de armazenamento no formato gs://my-bucket/<value>.
    • Opções de eliminação de origens: selecione a opção de eliminação de acordo com a sua preferência.
  9. Clique em Criar feed.

Tabela de mapeamento da UDM

Campo de registo Mapeamento de 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 inicial é removido.
data principal.user.userid OU principal.ip OU metadata.description Se os dados corresponderem a um padrão de endereço IP, são mapeados para principal.ip. Se corresponder a um padrão de nome de utilizador, é mapeado para principal.user.userid. Caso contrário, é mapeado para metadata.description.
msg1 target.asset.product_object_id OU security_result.action_details Usado para extrair object e act. Se estiver presente um /, é dividido em object e act. Se estiver presente um », é dividido em object e act. Caso contrário, é tratado como act e, potencialmente, analisado mais detalhadamente.
msg2 metadata.description OU security_result.action_details Se estiver presente, é mapeado inicialmente para metadata.description. Se contiver "completed:", o valor seguinte é extraído e mapeado para security_result.action_details.
objeto target.asset.product_object_id Extraído de msg1. Representa o objeto sobre o qual foi realizada a ação.
object_id target.resource.attribute.labels.value Extraído do objeto se estiver presente um /. Representa um identificador de objeto mais específico. A chave está codificada como "Plugin Name".
src_ip principal.ip Extraído de mensagem ou dados. Representa o endereço IP de origem.
user principal.user.userid Extraído de mensagem ou dados. Representa o utilizador associado ao evento.
metadata.event_timestamp Copiado do campo @timestamp calculado.
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 Codificado como Jenkins.
metadata.product_version Codificado como Jenkins.
metadata.vendor_name Codificado como JENKINS.
metadata.event_timestamp Construído a partir dos campos year, month, day, time e ampm.

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