Recolha registos do MYSQL

Compatível com:

Este documento explica como carregar registos do MYSQL para o Google Security Operations através do Bindplane. O analisador extrai primeiro os campos comuns das mensagens SYSLOG do MySQL usando grok. Em seguida, usa ramificações condicionais (if, else if) e a correspondência de expressões regulares para identificar tipos de eventos específicos nas mensagens de registo, extraindo e mapeando informações relevantes para o esquema do modelo de dados unificado (UDM).

Antes de começar

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

  • Instância do Google SecOps
  • Windows 2016 ou posterior, ou um anfitrião Linux com systemd
  • Se estiver a ser executado através de um proxy, as portas da firewall estão abertas
  • Acesso privilegiado ao anfitrião do MySQL
  • Tem o MySQL DB e o Rsyslog instalados

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. Guarde o ficheiro de forma segura no sistema onde o Bindplane vai ser instalado.

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 Bindlane

Instalação do Windows

  1. Abra a Linha de comandos ou o PowerShell como administrador.
  2. Execute o seguinte 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 raiz ou sudo.
  2. Execute o seguinte comando:

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

Recursos de instalação adicionais

Para ver opções de instalação adicionais, consulte o guia de instalação.

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

  1. Aceda ao ficheiro de configuração:
    • Localize o ficheiro config.yaml. Normalmente, encontra-se no diretório /etc/bindplane-agent/ no Linux ou no diretório de instalação no Windows.
    • Abra o ficheiro com um editor de texto (por exemplo, nano, vi ou Bloco de notas).
  2. Edite o ficheiro 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: '/path/to/ingestion-authentication-file.json'
            # Replace with your actual customer ID from Step 2
            customer_id: <customer_id>
            endpoint: malachiteingestion-pa.googleapis.com
            # Add optional ingestion labels for better organization
            ingestion_labels:
                log_type: 'MYSQL'
                raw_log_field: body
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - udplog
                exporters:
                    - chronicle/chronicle_w_labels
    
  3. Substitua a porta e o endereço IP conforme necessário na sua infraestrutura.

  4. Substitua <customer_id> pelo ID de cliente real.

  5. Atualize /path/to/ingestion-authentication-file.json para o caminho onde o ficheiro de autenticação foi guardado na secção Obtenha o ficheiro de autenticação de carregamento do Google SecOps.

Reinicie o agente do Bindplane para aplicar as alterações

  • Para reiniciar o agente do Bindplane no Linux, execute o seguinte comando:

    sudo systemctl restart bindplane-agent
    
  • Para reiniciar o agente do Bindplane no Windows, pode usar a consola Services ou introduzir o seguinte comando:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Configure o Syslog no MySQL

  1. Inicie sessão no anfitrião do MySQL através de SSH.

  2. Associe à base de dados MySQL:

    mysql -u root -p
    
  3. Valide o plug-in de auditoria server_audit.so:

    show variables like 'plugin_dir';
    
  4. Se não encontrar o ficheiro do plug-in no diretório do plug-in, instale o plug-in através do comando:

    install plugin server_audit soname 'server_audit.so';
    
  5. Confirme que o plug-in está Instalado e Ativado:

    show plugins;
    
  6. Edite o ficheiro /etc/my.cnf com vi, ative o seguinte e guarde o ficheiro:

    server_audit_events='CONNECT,QUERY,TABLE'
    server_audit_file_path=server_audit.log
    server_audit_logging=ON
    server_audit_output_type=SYSLOG
    server_audit_syslog_facility=LOG_LOCAL6
    
  7. Valide as variáveis de auditoria com o seguinte comando:

    show global variables like "server_audit%";
    
  8. Verifique se a auditoria está ativada com o seguinte comando:

    Show global status like 'server_audit%';
    
  9. Edite o ficheiro /etc/rsyslog.conf usando vi para ativar a utilização de UDP e guardar o ficheiro:

    *.* @@<bindplane-agent-ip>:<bindplane-agent-port>
    
  10. Substitua <bindplane-agent-ip> e <bindplane-agent-port> pela configuração do agente do Bindplane.

  11. Reinicie o serviço MySQL e estabeleça ligação à base de dados MySQL.

    /etc/init.d/mysqld restart
    

Tabela de mapeamento do UDM

Campo de registo Mapeamento do UDM Lógica
ação read_only_udm.metadata.event_type Se o valor for Created, então FILE_CREATION. Se o valor for Deleted, então FILE_DELETION. Caso contrário, não é feita qualquer alteração.
base de dados read_only_udm.target.resource.parent
db_hostname read_only_udm.target.hostname
db_user read_only_udm.target.user.userid
descrição read_only_udm.security_result.description
error_details Esta é uma variável temporária. Ignore-a
error_level read_only_udm.security_result.severity Se o valor for error, então ERROR. Se o valor for warning, então MEDIUM. Se o valor for note, então INFORMATIONAL. Caso contrário, não há alterações.
error_message read_only_udm.security_result.summary
file_path read_only_udm.target.file.full_path
file_size read_only_udm.target.file.size
hostname read_only_udm.principal.hostname
inner_message read_only_udm.security_result.description
resumo read_only_udm.metadata.product_event_type
tabela read_only_udm.target.resource.name
table_not_found Esta é uma variável temporária. Ignore-a
timestamp read_only_udm.metadata.event_timestamp
read_only_udm.extensions.auth.type Valor estático: MACHINE
read_only_udm.metadata.event_type Valor estático: USER_LOGIN, GENERIC_EVENT, STATUS_UPDATE, FILE_CREATION, FILE_DELETION
read_only_udm.metadata.log_type Valor estático: MYSQL
read_only_udm.metadata.product_name Valor estático: MySQL
read_only_udm.metadata.vendor_name Valor estático: Oracle Corporation
read_only_udm.security_result.action Valor estático: BLOCK
read_only_udm.target.resource.resource_type Valor estático: DATABASE, TABLE

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