Recolha registos de sistemas Linux auditd e AIX

Compatível com:

Este analisador processa registos de auditoria do Linux no formato SYSLOG, transformando-os em UDM. Processa mensagens de registo formatadas em JSON e texto simples, extraindo campos através de técnicas de análise grok, XML e JSON, e mapeando-os para os campos UDM adequados com base no tipo de evento. O analisador também processa formatos de registos de auditoria específicos de sistemas AIX e enriquece o UDM com campos adicionais, como security_result e detalhes intermediários.

Antes de começar

  • Certifique-se de que tem uma instância do Google Security Operations.
  • Certifique-se de que tem acesso de raiz ao anfitrião do Auditd.
  • Certifique-se de que instalou o rsyslog no anfitrião do Auditd.
  • Certifique-se de que tem um anfitrião Windows 2012 SP2 ou posterior, ou 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.

Obtenha o ficheiro de autenticação de carregamento do Google SecOps

  1. Inicie sessão na consola Google SecOps.
  2. Aceda a Definições do SIEM > Agentes de recolha.
  3. Transfira o ficheiro de autenticação de carregamento.

Obtenha o ID de cliente do Google SecOps

  1. Inicie sessão na consola Google SecOps.
  2. Aceda a Definições do SIEM > Perfil.
  3. Copie e guarde o ID do cliente da secção Detalhes da organização.

Instale o agente do Bindplane

  1. Para a instalação do Windows, execute o seguinte script:
    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
  2. Para a instalação do Linux, execute o seguinte script:
    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
  3. Pode encontrar opções de instalação adicionais neste guia de instalação.

Configure o agente Bindplane para carregar o Syslog e enviá-lo para o Google SecOps

  1. Aceda à máquina onde o Bindplane está instalado.
  2. Edite o ficheiro config.yaml da seguinte forma:

    receivers:
      tcplog:
        # Replace the below port <54525> and IP <0.0.0.0> with your specific values
        listen_address: "0.0.0.0:54525" 
    
    exporters:
        chronicle/chronicle_w_labels:
            compression: gzip
            # Adjust the creds location below according the placement of the credentials file you downloaded
            creds: '{ json file for creds }'
            # Replace <customer_id> below with your actual ID that you copied
            customer_id: <customer_id>
            endpoint: malachiteingestion-pa.googleapis.com
            # You can apply ingestion labels below as preferred
            ingestion_labels:
            log_type: SYSLOG
            namespace: auditd
            raw_log_field: body
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - tcplog
                exporters:
                    - chronicle/chronicle_w_labels
    
  3. Reinicie o agente do Bindplane para aplicar as alterações através do seguinte comando: sudo systemctl bindplane restart

Exportar Syslog do Auditd

  1. Aceda à máquina a partir da qual quer exportar os registos de auditoria.
  2. Abra o ficheiro de configuração do Auditd (normalmente localizado em /etc/audit/auditd.conf).

    sudo vi /etc/audit/auditd.conf
    
  3. Encontre ou adicione as seguintes linhas para configurar o auditd:

    active = yes
    output = syslog
    log_format = ENRICHED
    dispatcher = /sbin/audispd
    

Opcional: especifique a funcionalidade Syslog: adicione ou modifique a seguinte linha em auditd.conf:

```none
syslog_facility = LOG_AUTHPRIV
```
  1. Abra o ficheiro de configuração do audispd (normalmente localizado em /etc/audisp/plugins.d/syslog.conf):

    sudo vi /etc/audisp/plugins.d/syslog.conf
    
  2. Encontre ou adicione as seguintes linhas para configurar o audispd:

    active = yes
    direction = out
    path = builtin_syslog
    type = builtin
    args = LOG_INFO
    format = string
    
  3. Reinicie o serviço Auditd para aplicar as alterações:

    sudo systemctl restart auditd
    
  4. Use uma ferramenta como tail para monitorizar o syslog e verificar se os registos do Auditd estão a ser enviados:

    tail -f /var/log/syslog | grep auditd # Follow syslog and filter for auditd messages (path may vary depending on your system)
    
  5. Edite o rsyslog.conf ou crie uma configuração personalizada:

    sudo vi /etc/rsyslog.d/50-audit-forwarding.conf
    
  6. Adicione uma regra para encaminhar registos:

    • if $programname == 'auditd' then @@<Bindplane_Agent>:<Bindplane_Port>
    • Use @ para UDP ou @@ para TCP
    • Substitua <BindPlane_Agent> pelo endereço IP/nome de anfitrião do seu servidor.
    • Substitua <BindPlane_Port> pela porta do seu servidor.
  7. Reinicie o serviço rsyslog para aplicar as alterações:

    sudo systemctl restart rsyslog
    

Tabela de mapeamento da UDM

Campo de registo Mapeamento de UDM Lógica
acct target.user.user_display_name O valor de acct do registo não processado é mapeado para o campo target.user.user_display_name no UDM. Isto representa a conta associada ao evento.
addr principal.ip O valor de addr do registo não processado é mapeado para o campo principal.ip no UDM. Isto representa o endereço IP do principal envolvido no evento.
additional.fields additional.fields Os campos adicionais dos pares de chave-valor ou das etiquetas analisados são adicionados à matriz additional.fields no UDM.
agent.googleapis.com/log_file_path (Não mapeado) Esta etiqueta está presente em alguns registos não processados, mas não está mapeada para o objeto IDM no UDM.
algo (Não usado neste exemplo) Embora esteja presente no analisador e em alguns registos não processados, este campo não é usado no exemplo fornecido e não aparece no UDM final.
application principal.application Derivado do campo terminal no registo não processado ou noutros campos, como exe, consoante o tipo de registo. Representa a aplicação envolvida.
arch security_result.about.platform_version A arquitetura do campo arch do registo não processado é mapeada para security_result.about.platform_version.
auid about.user.userid, security_result.detection_fields.auid O ID do utilizador de auditoria (auid) é mapeado para about.user.userid e adicionado como um campo de deteção em security_result.
cmd target.process.command_line O comando do campo cmd do registo não processado é mapeado para target.process.command_line.
collection_time (Não mapeado) Este campo é a hora de recolha do registo e não está mapeado para o objeto IDM no UDM.
comm principal.application O nome do comando (comm) está mapeado para principal.application.
compute.googleapis.com/resource_name principal.hostname O nome do recurso desta etiqueta está mapeado para principal.hostname.
create_time (Não mapeado) Este campo não está mapeado para o objeto IDM no UDM.
cwd security_result.detection_fields.cwd O diretório de trabalho atual (cwd) é adicionado como um campo de deteção em security_result.
data (Processado) O campo data contém a mensagem de registo principal e é processado pelo analisador para extrair vários campos. Não está diretamente mapeado para um único campo de dados do utilizador.
exe principal.process.file.full_path, target.process.file.full_path O caminho executável (exe) é mapeado para principal.process.file.full_path ou target.process.file.full_path, consoante o contexto.
extensions.auth.type extensions.auth.type O tipo de autenticação é definido pela lógica do analisador com base no tipo de evento. Muitas vezes, definido como MACHINE ou AUTHTYPE_UNSPECIFIED.
fp network.tls.client.certificate.sha256 A impressão digital (fp) é analisada para extrair o hash SHA256 e mapeada para network.tls.client.certificate.sha256.
insertId (Não mapeado) Este campo não está mapeado para o objeto IDM no UDM.
jsonPayload.message (Processado) Este campo contém a mensagem de registo principal no formato JSON e é processado pelo analisador.
key security_result.about.registry.registry_key O campo principal está mapeado para security_result.about.registry.registry_key.
labels (Processado) As etiquetas do registo não processado são processadas e mapeadas para vários campos da UDM ou adicionadas a additional.fields.
logName (Não mapeado) Este campo não está mapeado para o objeto IDM no UDM.
msg security_result.summary A mensagem (msg) é frequentemente usada para preencher o campo security_result.summary.
network.application_protocol network.application_protocol Definido pela lógica do analisador com base no tipo de evento (por exemplo, SSH, HTTP).
network.direction network.direction Definido pela lógica do analisador com base no tipo de evento (por exemplo, INBOUND e OUTBOUND).
network.ip_protocol network.ip_protocol Definido pela lógica do analisador, normalmente para TCP para eventos SSH.
network.session_id network.session_id Mapeado a partir do campo ses ou derivado de outros campos.
network.tls.cipher network.tls.cipher As informações de cifragem são extraídas do registo não processado e mapeadas para este campo.
network.tls.curve network.tls.curve A curva de troca de chaves é extraída do registo não processado e mapeada para este campo.
pid principal.process.pid, target.process.pid O ID do processo (pid) é mapeado para principal.process.pid ou target.process.pid, consoante o contexto.
ppid principal.process.parent_process.pid, target.process.parent_process.pid O ID do processo principal (ppid) é mapeado para principal.process.parent_process.pid ou target.process.parent_process.pid, consoante o contexto.
principal.asset.hostname principal.asset.hostname Copiado de principal.hostname.
principal.asset.ip principal.asset.ip Copiado de principal.ip.
principal.platform principal.platform Definido pela lógica do analisador com base no sistema operativo (por exemplo, LINUX).
principal.port principal.port O número da porta associado ao principal.
principal.user.group_identifiers principal.user.group_identifiers IDs de grupos associados ao utilizador principal.
receiveTimestamp (Não mapeado) Este campo é a data/hora de receção do registo e não está mapeado para o objeto IDM no UDM.
res security_result.action_details O resultado (res) está mapeado para security_result.action_details.
resource.labels (Não mapeado) Estas etiquetas estão presentes em alguns registos não processados, mas não estão mapeadas para o objeto IDM no UDM.
resource.type (Não mapeado) Este campo está presente em alguns registos não processados, mas não está mapeado para o objeto IDM no UDM.
security_result.action security_result.action Definido pela lógica do analisador com base no campo res (por exemplo, PERMITIR ou BLOQUEAR).
security_result.detection_fields security_result.detection_fields Vários campos do registo não processado são adicionados como pares de chave-valor a esta matriz para contexto.
security_result.rule_id security_result.rule_id Definido pela lógica do analisador, frequentemente para type_name para eventos de chamadas do sistema.
security_result.severity security_result.severity Definido pela lógica do analisador com base no nível de gravidade no registo não processado.
security_result.summary security_result.summary Um resumo do evento, muitas vezes derivado do campo msg ou de outros campos relevantes.
ses network.session_id O ID da sessão (ses) está mapeado para network.session_id.
source (Não mapeado) Este campo contém metadados sobre a origem do registo e não está mapeado para o objeto IDM no UDM.
subj (Processado) O campo de assunto (subj) é processado para extrair informações de contexto do utilizador e de segurança.
syscall security_result.about.labels.Syscall O número de chamada do sistema é adicionado como uma etiqueta em security_result.about.
target.administrative_domain target.administrative_domain O domínio do utilizador alvo.
target.group.group_display_name target.group.group_display_name O nome do grupo-alvo.
target.ip target.ip O endereço IP do destino.
target.port target.port O número da porta associado ao destino.
target.process.command_line target.process.command_line A linha de comandos do processo de destino.
target.resource.type target.resource.type O tipo do recurso de destino, definido pela lógica do analisador (por exemplo, CREDENTIAL, SETTING).
target.user.attribute.permissions target.user.attribute.permissions Autorizações relacionadas com o utilizador de destino.
target.user.group_identifiers target.user.group_identifiers IDs de grupos associados ao utilizador de destino.
target.user.userid target.user.userid O ID do utilizador do alvo.
textPayload (Processado) A carga útil de texto do registo, processada pelo analisador para extrair vários campos.
timestamp metadata.event_timestamp A data/hora do evento.
tty security_result.about.labels.tty O TTY é adicionado como uma etiqueta em security_result.about.
type metadata.product_event_type O tipo de evento (type) está mapeado para metadata.product_event_type.
uid principal.user.userid, target.user.userid O ID do utilizador (uid) é mapeado para principal.user.userid ou target.user.userid, consoante o contexto.

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