Coletar registros do daemon de auditoria do Linux

Compatível com:

Este documento explica como ingerir registros do daemon de auditoria do Linux (auditd) no Google Security Operations usando o Bindplane.

O daemon de auditoria do Linux é o componente do espaço do usuário do sistema de auditoria do Linux. Ele registra eventos relevantes para a segurança no sistema, incluindo acesso a arquivos, chamadas de sistema, eventos de autenticação e negações do SELinux. Os registros do Auditd são essenciais para o monitoramento de compliance, a detecção de intrusões e a análise forense em hosts Linux.

Antes de começar

Verifique se você tem os pré-requisitos a seguir:

  • Uma instância do Google SecOps.
  • Windows Server 2016 ou mais recente ou host Linux com systemd.
  • Se você estiver executando um proxy, verifique se as portas do firewall estão abertas de acordo com os requisitos do agente do Bindplane.
  • Acesso root ou sudo no host Linux que executa o auditd.
  • O pacote auditd instalado e em execução no host Linux de origem.
  • O pacote audispd-plugins instalado no host Linux de origem (fornece o plug-in audisp-syslog).

Receber o arquivo de autenticação de ingestão do Google SecOps

  1. Faça login no console do Google SecOps.
  2. Acesse Configurações do SIEM > Agentes de coleta.
  3. Baixe o arquivo de autenticação de ingestão. Salve o arquivo com segurança no sistema em que o Bindplane será instalado.

Receber o ID de cliente do Google SecOps

  1. Faça login no console do Google SecOps.
  2. Acesse Configurações do SIEM > Perfil.
  3. Copie e salve o ID do cliente na seção Detalhes da organização.

Instalar o agente do Bindplane

Instale o agente do Bindplane no seu sistema operacional Windows ou Linux de acordo com as instruções a seguir.

Instalação do Windows

  1. Abra o prompt de comando ou o PowerShell como administrador.
  2. Execute este comando:

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    

Instalação do Linux

  1. Abra um terminal com privilégios de root ou sudo.
  2. Execute este comando:

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    

Outros recursos de instalação

Para mais opções de instalação, consulte o guia de instalação do agente do Bindplane.

Configurar o agente do Bindplane para ingerir syslog e enviar ao Google SecOps

  1. Acesse o arquivo de configuração:

    • Linux: /status observiq-otel-collector/config.yaml
    • Windows: C:\Program Files\observIQ OpenTelemetry Collector\config.yaml
  2. Edite o arquivo config.yaml da seguinte forma:

    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_file_path: '/path/to/ingestion-authentication-file.json'
            # Replace with your actual customer ID from Step 2
            customer_id: '<your_customer_id>'
            endpoint: malachiteingestion-pa.googleapis.com
            # Add optional ingestion labels for better organization
            log_type: 'AUDITD'
            raw_log_field: body
            ingestion_labels:
    
    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 <your_customer_id> pelo ID de cliente real.
  • Atualize /path/to/ingestion-authentication-file.json para o caminho do arquivo em que o arquivo de autenticação foi salvo na etapa Receber arquivo de autenticação de ingestão.

Reinicie o agente do Bindplane para aplicar as mudanças:

Para reiniciar o agente do Bindplane no Linux:

  1. Execute este comando:

    sudo systemctl restart observiq-otel-collector
    
  2. Verifique se o serviço está em execução:

    sudo systemctl status observiq-otel-collector
    
  3. Verifique se há erros nos registros:

    sudo journalctl -u observiq-otel-collector -f
    

Para reiniciar o agente do Bindplane em Windows:

  1. Escolha uma das seguintes opções:

    • Prompt de comando ou PowerShell como administrador:
    net stop observiq-otel-collector && net start observiq-otel-collector
    
    • Console de serviços:
      1. Pressione Win+R, digite services.msc e pressione Enter.
      2. Localize o Coletor do OpenTelemetry da observIQ.
      3. Clique com o botão direito do mouse e selecione Reiniciar.
  2. Verifique se o serviço está em execução:

    sc query observiq-otel-collector
    
  3. Verifique se há erros nos registros:

    type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
    

Configurar o auditd para encaminhar registros usando o syslog

O plug-in audisp syslog encaminha eventos de auditoria para o syslog, que os envia ao agente do BindPlane. Esse é o método recomendado para encaminhar registros do auditd.

Instalar o plug-in syslog do audisp

  1. Faça login no host do Linux que executa o auditd com privilégios de raiz ou sudo.
  2. Instale o pacote audispd-plugins:

    • RHEL/CentOS/Fedora:
    sudo yum install audispd-plugins
    
    • Debian/Ubuntu:
    sudo apt install audispd-plugins
    

Configurar o plug-in syslog

  1. Edite o arquivo de configuração do plug-in do syslog:

    sudo nano /etc/audit/plugins.d/syslog.conf
    
  2. Defina os seguintes valores no arquivo:

    active = yes
    direction = out
    path = /sbin/audisp-syslog
    type = always
    args = LOG_LOCAL6
    format = string
    
    • active: defina como yes para ativar o plug-in.
    • path: o caminho para o binário audisp-syslog.
    • type: defina como always para executar o plug-in como um programa externo.
    • args: a facilidade do syslog a ser usada. LOG_LOCAL6 é recomendado para separar os registros de auditoria de outras mensagens do syslog.
    • format: defina como string para transmitir eventos em um formato de texto adequado para syslog.

Configurar regras de auditoria (opcional)

  1. Edite o arquivo de regras de auditoria para definir quais eventos capturar:

    sudo nano /etc/audit/rules.d/audit.rules
    
  2. Adicione regras com base nos seus requisitos de monitoramento. Exemplo:

    ## Delete all existing rules
    -D
    
    ## Set buffer size (increase for high-volume systems)
    -b 8192
    
    ## Set failure mode (1 = printk, 2 = panic)
    -f 1
    
    ## Monitor authentication-related files
    -w /etc/passwd -p wa -k identity
    -w /etc/group -p wa -k identity
    -w /etc/shadow -p wa -k identity
    -w /etc/sudoers -p wa -k sudoers
    
    ## Monitor login events
    -w /var/log/faillog -p wa -k logins
    -w /var/log/lastlog -p wa -k logins
    
    ## Monitor process execution
    -a always,exit -F arch=b64 -S execve -k exec
    
    ## Monitor network configuration changes
    -a always,exit -F arch=b64 -S sethostname -S setdomainname -k network
    
    ## Make the configuration immutable (must be the last rule)
    -e 2
    
  3. Carregue as novas regras de auditoria:

    sudo augenrules --load
    

Reiniciar o auditd

  1. Reinicie o serviço auditd para aplicar as mudanças no plug-in e nas regras:

    sudo service auditd restart
    

Configurar o rsyslog para encaminhar registros de auditoria ao Bindplane

  1. Crie um arquivo de configuração rsyslog para encaminhamento de registro de auditoria:

    sudo nano /etc/rsyslog.d/audit-forward.conf
    
  2. Adicione a seguinte linha para encaminhar registros via UDP ao agente do BindPlane:

    local6.* @<BINDPLANE_IP>:514
    
  3. Reinicie o rsyslog para aplicar as mudanças:

    sudo systemctl restart rsyslog
    

Verificar o encaminhamento de registros

  1. No host Linux de origem, gere um evento de auditoria de teste:

    sudo auditctl -w /tmp/test_audit -p wa -k test_chronicle
    
  2. Toque no arquivo para ativar a observação:

    touch /tmp/test_audit
    
  3. No host do agente do Bindplane, verifique se os registros estão sendo recebidos:

    sudo journalctl -u observiq-otel-collector -f
    

Tabela de mapeamento de UDM

Campo de registro Mapeamento de UDM Lógica
acct target.user.userid Valor extraído do campo acct.
addr principal.ip Valor extraído do campo addr se for um endereço IP válido.
arch additional.fields Adicionado como um par de chave-valor com a chave "arch".
auid principal.user.userid Valor extraído do campo auid. Usado como o ID do usuário de auditoria.
comm target.process.command_line Valor extraído do campo comm.
cwd additional.fields Adicionado como um par de chave-valor com a chave "cwd".
exe target.process.file.full_path Valor extraído do campo exe.
exit additional.fields Adicionado como um par de chave-valor com a chave "exit".
gid principal.user.group_identifiers Valor extraído do campo gid.
hostname principal.hostname Valor extraído do campo hostname.
key security_result.detection_fields Adicionada como um par de chave-valor com a chave "audit_key".
msg metadata.description Analisado no campo msg. Contém a mensagem do evento de auditoria.
name target.file.full_path Valor extraído do campo name quando aplicável.
node principal.hostname Valor extraído do campo node se hostname não estiver presente.
op metadata.product_event_type Valor extraído do campo op (tipo de operação).
pid principal.process.pid Valor extraído do campo pid.
ppid principal.process.parent_process.pid Valor extraído do campo ppid.
res security_result.action Defina como "ALLOW" se res for "success" ou "1". Definido como "BLOCK" se res for "failed" ou "0".
ses network.session_id Valor extraído do campo ses (ID da sessão).
subj principal.process.file.full_path Valor extraído do campo subj (contexto do assunto SELinux).
syscall additional.fields Adicionado como um par de chave-valor com a chave "syscall".
terminal additional.fields Adicionado como um par de chave-valor com a chave "terminal".
type metadata.product_event_type Valor extraído do campo type (tipo de registro de auditoria, por exemplo, SYSCALL, USER_LOGIN, EXECVE).
uid principal.user.userid Valor extraído do campo uid.
metadata.event_type Derivado do tipo de registro de auditoria. Defina como "USER_LOGIN" para eventos de login, "USER_LOGOUT" para eventos de logout, "PROCESS_LAUNCH" para eventos de execução e "FILE_MODIFICATION" para eventos de arquivo. O padrão é "GENERIC_EVENT".
metadata.product_name Defina como "auditd".
metadata.vendor_name Defina como "Linux".
home event.idm.read_only_udm.additional.fields Mapeado do registro de mudanças
shell event.idm.read_only_udm.additional.fields Mapeado do registro de mudanças
name event.idm.read_only_udm.target.user.userid Mapeado do registro de mudanças
name event.idm.read_only_udm.target.group.group_display_name Mapeado do registro de mudanças
UID event.idm.read_only_udm.target.user.product_object_id Mapeado do registro de mudanças
GID event.idm.read_only_udm.target.user.group_identifiers Mapeado do registro de mudanças
GID event.idm.read_only_udm.target.group.product_object_id Mapeado do registro de mudanças
key_type event.idm.read_only_udm.additional.fields Mapeado do registro de mudanças
hash event.idm.read_only_udm.additional.fields Mapeado do registro de mudanças
key_fingerprint event.idm.read_only_udm.security_result.detection_fields Mapeado do registro de mudanças
user event.idm.read_only_udm.target.user.userid Mapeado do registro de mudanças
error_detail1 event.idm.read_only_udm.security_result.summary Mapeado do registro de mudanças
service_name event.idm.read_only_udm.additional.fields Mapeado do registro de mudanças
ssh_disconnect_code event.idm.read_only_udm.additional.fields Mapeado do registro de mudanças
labels.bp_csoc event.idm.read_only_udm.additional.fields Mapeado do registro de mudanças
labels.bp_env_id event.idm.read_only_udm.additional.fields Mapeado do registro de mudanças
labels.log.file.name event.idm.read_only_udm.additional.fields Mapeado do registro de mudanças
resource.labels.node_id event.idm.read_only_udm.additional.fields Mapeado do registro de mudanças
intermediary_host event.idm.read_only_udm.intermediary.hostname Mapeado do registro de mudanças
PWD event.idm.read_only_udm.target.file.full_path Mapeado do registro de mudanças
log_details event.idm.read_only_udm.additional.fields Mapeado do registro de mudanças
indicator.SUID event.idm.read_only_udm.security_result.detection_fields Mapeado do registro de mudanças
indicator.UID event.idm.read_only_udm.security_result.detection_fields Mapeado do registro de mudanças
indicator.AUID event.idm.read_only_udm.security_result.detection_fields Mapeado do registro de mudanças
type_crypto_props.msg event.idm.read_only_udm.additional.fields Mapeado do registro de mudanças
usr event.idm.read_only_udm.principal.user.userid Mapeado do registro de mudanças
pi event.idm.read_only_udm.principal.process.pid Mapeado do registro de mudanças
cmnd event.idm.read_only_udm.target.process.command_line Mapeado do registro de mudanças
proctitle_value event.idm.read_only_udm.principal.process.file.full_path Mapeado do registro de mudanças
filename event.idm.read_only_udm.principal.process.file.names Mapeado do registro de mudanças
filepath event.idm.read_only_udm.target.file.full_path Mapeado do registro de mudanças
uid event.idm.read_only_udm.principal.user.userid Mapeado do registro de mudanças
acct event.idm.read_only_udm.principal.user.user_display_name Mapeado do registro de mudanças
exe event.idm.read_only_udm.target.process.file.full_path Mapeado do registro de mudanças
pid event.idm.read_only_udm.principal.process.pid Mapeado do registro de mudanças
auid event.idm.read_only_udm.about.user.userid Mapeado do registro de mudanças
ses event.idm.read_only_udm.network.session_id Mapeado do registro de mudanças
addr event.idm.read_only_udm.principal.ip e event.idm.read_only_udm.principal.asset.ip Mapeado do registro de mudanças
subj event.idm.read_only_udm.additional.fields Mapeado do registro de mudanças
res event.idm.read_only_udm.security_result.summary Mapeado do registro de mudanças
op event.idm.read_only_udm.security_result.summary Mapeado do registro de mudanças
msg_value event.idm.read_only_udm.security_result.detection_fields Mapeado do registro de mudanças
grantors_value event.idm.read_only_udm.security_result.detection_fields Mapeado do registro de mudanças
indicator.msg event.idm.read_only_udm.security_result.detection_fields Mapeado do registro de mudanças
indicator.grantors event.idm.read_only_udm.security_result.detection_fields Mapeado do registro de mudanças
terminal event.idm.read_only_udm.principal.application Mapeado do registro de mudanças
sec_result event.idm.read_only_udm.security_result Mapeado do registro de mudanças
hostname event.idm.read_only_udm.principal.hostname Mapeado do registro de mudanças
indicator.mode event.idm.read_only_udm.src.user.attribute.permissions Mapeado do registro de mudanças
indicator.nametype event.idm.read_only_udm.security_result.rule_name Mapeado do registro de mudanças
indicator.cap_frootid event.idm.read_only_udm.security_result.detection_fields Mapeado do registro de mudanças
indicator.cap_fver event.idm.read_only_udm.security_result.detection_fields Mapeado do registro de mudanças
indicator.cap_fi event.idm.read_only_udm.security_result.detection_fields Mapeado do registro de mudanças
indicator.cap_fp event.idm.read_only_udm.security_result.detection_fields Mapeado do registro de mudanças
indicator.cap_fe event.idm.read_only_udm.security_result.detection_fields Mapeado do registro de mudanças
OUID event.idm.read_only_udm.principal.user.userid Mapeado do registro de mudanças
OGID event.idm.read_only_udm.principal.group.group_display_name Mapeado do registro de mudanças
action_data event.idm.read_only_udm.security_result.action_details Mapeado do registro de mudanças
target_email event.idm.ready_only_udm.target.user.email_addresses Mapeado do registro de mudanças
target_port event.idm.ready_only_udm.target.port Mapeado do registro de mudanças
status event.idm.ready_only_udm.security_result.action_details Mapeado do registro de mudanças
to_email event.idm.ready_only_udm.network.email.to Mapeado do registro de mudanças
target_hostname event.idm.ready_only_udm.target.hostname Mapeado do registro de mudanças
"relay_data" event.idm.ready_only_udm.additional.fields Mapeado do registro de mudanças
"delays_data" event.idm.ready_only_udm.additional.fields Mapeado do registro de mudanças
"delay_data" event.idm.ready_only_udm.additional.fields Mapeado do registro de mudanças
and "dns_data" event.idm.ready_only_udm.additional.fields Mapeado do registro de mudanças
bytes_sent event.idm.ready_only_udm.network.sent_bytes Mapeado do registro de mudanças
bytes_received event.idm.ready_only_udm.network.received_bytes Mapeado do registro de mudanças
response_code event.idm.ready_only_udm.network.http.response_code Mapeado do registro de mudanças
principal_user_name principal.user.userid Mapeado do registro de mudanças
remote principal.ip Mapeado do registro de mudanças
method network.http.method Mapeado do registro de mudanças
path principal.file.full_path Mapeado do registro de mudanças
code additional.fields Mapeado do registro de mudanças
size principal.file.size Mapeado do registro de mudanças
agent network.http.user_agent Mapeado do registro de mudanças
az principal.location.name Mapeado do registro de mudanças
ec2_instance_id principal.asset.product_object_id Mapeado do registro de mudanças
private_ip principal.ip Mapeado do registro de mudanças
ProviderName additional.fields Mapeado do registro de mudanças
Version additional.fields Mapeado do registro de mudanças
Task additional.fields Mapeado do registro de mudanças
EventRecordID additional.fields Mapeado do registro de mudanças
ThreadID additional.fields Mapeado do registro de mudanças
messageType target.resource.attribute.labels Mapeado do registro de mudanças
owner principal.user.userid Mapeado do registro de mudanças
logevent.id metadata.product_log_id Mapeado do registro de mudanças
logGroup secu_result.about.resource.name Mapeado do registro de mudanças
logStream secu_result.about.resource.attribute.labels Mapeado do registro de mudanças
ip_addr principal.ip Mapeado do registro de mudanças
gd secu_result.description Mapeado do registro de mudanças
process target.application Mapeado do registro de mudanças
pid target.process.pid Mapeado do registro de mudanças
status_code network.http.response_code Mapeado do registro de mudanças
url network.http.referral_url Mapeado do registro de mudanças
useragent network.http.user_agent Mapeado do registro de mudanças
request additional.fields Mapeado do registro de mudanças
tls_version network.tls.version Mapeado do registro de mudanças
hostname_is principal.hostname Mapeado do registro de mudanças
referrer network.http.referral_url Mapeado do registro de mudanças
metadata.event_type USER_LOGIN Mapeado do registro de mudanças
metadata.event_type PROCESS_UNCATEGORIZED Mapeado do registro de mudanças
srcIP principal.ip Mapeado do registro de mudanças
username principal.user.user_display_name Mapeado do registro de mudanças
type_syscall_props.msg additional.fields Mapeado do registro de mudanças
sw", "sw_type", and "subj security_result.detection_fields Mapeado do registro de mudanças
indicator.SYSCALL security_result.detection_fields Mapeado do registro de mudanças
exe principal.process.file.full_path Mapeado do registro de mudanças
target.user.userid principal.user.userid Mapeado do registro de mudanças
target_user_name target.user.userid Mapeado do registro de mudanças
field field33 Mapeado do registro de mudanças
fp network.tls.client.certificate.sha256 Mapeado do registro de mudanças
pid principal.process.pid Mapeado do registro de mudanças
syslog-tag security_result.detection_fields Mapeado do registro de mudanças
inter_ip intermediary.ip Mapeado do registro de mudanças
inter_hostname intermediary.hostname Mapeado do registro de mudanças
grp target.group.group_display_name Mapeado do registro de mudanças
id about.user.userid Mapeado do registro de mudanças
acct target.user.user_display_name Mapeado do registro de mudanças
uid principal.user.userid Mapeado do registro de mudanças
auid about.user.userid Mapeado do registro de mudanças
auid target.user.userid Mapeado do registro de mudanças
op" and "id security_result.summary Mapeado do registro de mudanças
op" and "acct security_result.summary Mapeado do registro de mudanças
labels.compute.googleapis.com/resource_name","jsonPayload._HOSTNAME" , "CollectorHostName", "HOSTNAME", and "Computer principal.hostname Mapeado do registro de mudanças
HostIP principal.ip Mapeado do registro de mudanças
ProcessID" and "jsonPayload._PID principal.process.pid Mapeado do registro de mudanças
SyslogMessage metadata.description Mapeado do registro de mudanças
TenantId", "_ItemId", "_Internal_WorkspaceResourceId", "_ResourceId", and "Facility additional.fields Mapeado do registro de mudanças
SeverityLevel security_result.severity Mapeado do registro de mudanças
SourceSystem principal.platform Mapeado do registro de mudanças
jsonPayload._COMM principal.application Mapeado do registro de mudanças
jsonPayload._EXE target.process.file.full_path Mapeado do registro de mudanças
jsonPayload._AUDIT_FIELD_FILE target.file.full_path Mapeado do registro de mudanças
jsonPayload._AUDIT_FIELD_HASH target.file.hash Mapeado do registro de mudanças
jsonPayload._AUDIT_SESSION network.session_id Mapeado do registro de mudanças
jsonPayload._PPID principal.process.parent_process.pid Mapeado do registro de mudanças
jsonPayload._AUDIT_FIELD_A0", "jsonPayload._AUDIT_FIELD_A1", "jsonPayload._AUDIT_FIELD_A2", "jsonPayload._AUDIT_FIELD_A3", "jsonPayload._BOOT_ID", and "jsonPayload._AUDIT_FIELD_EXIT security_result.detection_fields Mapeado do registro de mudanças
id target.user.userid Mapeado do registro de mudanças
ID target.user.user_display_name Mapeado do registro de mudanças
user_name principal.user.userid Mapeado do registro de mudanças
principal_user_userid principal.user.userid Mapeado do registro de mudanças
vendor_name Linux Mapeado do registro de mudanças
product_name AuditD Mapeado do registro de mudanças
ip target.ip Mapeado do registro de mudanças
success security_result.summary Mapeado do registro de mudanças
syscall", "exit", "tty", "a0", "a1", "a2", "a3 security_result.about.labels Mapeado do registro de mudanças

Registro de alterações

Ver o registro de alterações deste analisador

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