Coletar registros do Jenkins
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
- Acesse o Cloud Storage
- Crie um bucket. Escolha um nome exclusivo e uma região adequada.
- 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
- Acesse IAM e administrador > Contas de serviço.
- Crie uma nova conta de serviço. Dê um nome descritivo (por exemplo, jenkins-logs).
- Conceda à conta de serviço o papel Criador de objetos do Storage no bucket do GCS criado na etapa anterior.
- Crie uma chave SSH para sua conta de serviço: Criar e excluir chaves de contas de serviço.
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
- Acesse Gerenciar o Jenkins > Plug-ins.
- Selecione Plug-ins disponíveis.
- Pesquise o plug-in Google Cloud Storage.
- Instale o plug-in e reinicie o Jenkins, se necessário.
Instalar o plug-in de credenciais do Google OAuth no Jenkins
- Acesse Gerenciar o Jenkins > Plug-ins.
- Selecione Plug-ins disponíveis.
- Pesquise o plug-in Credenciais do OAuth do Google.
- Instale o plug-in e reinicie o Jenkins, se necessário.
Configurar o Jenkins para autenticar com o Google Cloud
Acesse Gerenciar o Jenkins > Credenciais > Sistema.
Clique em add Adicionar credenciais.
Tipo: selecione Conta de serviço do Google da chave privada.
Nome do projeto: defina um nome para as credenciais.
Faça upload do arquivo de chave JSON que você recebeu durante a Google Cloud criação da conta de serviço.
Clique em Criar.
Configurar os registros do Jenkins para fazer upload do Google SecOps
- 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.
- 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:
- Acesse Configurações do SIEM > Feeds.
- Clique em Adicionar novo feed.
- Na próxima página, clique em Configurar um único feed.
- No campo Nome do feed, insira um nome para o feed, por exemplo, Registros do Jenkins.
- Selecione Google Cloud Storage como o Tipo de origem.
- Selecione Jenkins como o Tipo de registro.
- Clique em Receber conta de serviço como a Conta de serviço do Chronicle.
- Clique em Próxima.
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.
- URI do bucket de armazenamento: Google Cloud URL do bucket de armazenamento no formato
Clique em Próxima.
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.