Coletar registros do Apache Cassandra
Versão do analisador:4.0
Este documento explica como ingerir registros do Apache Cassandra no Google Security Operations usando o agente Bindplane.
O Apache Cassandra gera registros de operações de banco de dados, eventos de cluster e atividade do sistema. O analisador extrai campos usando padrões grok e filtros JSON e os mapeia para o modelo de dados unificado (UDM).
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 - Conectividade de rede entre o agente do Bindplane e o host do Apache Cassandra
- Se estiver executando por trás de um proxy, verifique se as portas do firewall estão abertas de acordo com os requisitos do agente Bindplane.
- Acesso administrativo (SSH) ao host do Apache Cassandra
Receber o arquivo de autenticação de ingestão do Google SecOps
- Faça login no console do Google SecOps.
- Acesse Configurações do SIEM > Agentes de coleta.
- Baixe o arquivo de autenticação de ingestão.
Salve o arquivo com segurança no sistema em que o agente do Bindplane será instalado.
Receber o ID de cliente do Google SecOps
- Faça login no console do Google SecOps.
- Acesse Configurações do SIEM > Perfil.
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 sistema operacional Windows ou Linux de acordo com as instruções a seguir.
Instalação do Windows
- Abra o prompt de comando ou o PowerShell como administrador.
Execute este comando:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quietAguarde a conclusão da instalação.
Execute o seguinte comando para confirmar a instalação:
sc query observiq-otel-collectorO serviço vai aparecer como EM EXECUÇÃO.
Instalação do Linux
- Abra um terminal com privilégios de root ou sudo.
Execute este comando:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.shAguarde a conclusão da instalação.
Execute o seguinte comando para confirmar a instalação:
sudo systemctl status observiq-otel-collectorO serviço vai aparecer como ativo (em execução).
Outros recursos de instalação
Para mais opções de instalação e solução de problemas, consulte o guia de instalação do agente do Bindplane.
Configurar o agente do Bindplane para ingerir syslog e enviar ao Google SecOps
Localizar o arquivo de configuração
Linux:
sudo nano /etc/bindplane-agent/config.yamlWindows:
notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
Editar o arquivo de configuração
Substitua todo o conteúdo de
config.yamlpela seguinte configuração:receivers: udplog: listen_address: "0.0.0.0:514" exporters: chronicle/cassandra: compression: gzip creds_file_path: '/etc/bindplane-agent/ingestion-auth.json' customer_id: '<customer_id>' endpoint: malachiteingestion-pa.googleapis.com log_type: CASSANDRA raw_log_field: body service: pipelines: logs/cassandra_to_chronicle: receivers: - udplog exporters: - chronicle/cassandra
Parâmetros de configuração
Substitua os seguintes marcadores de posição:
Configuração do receptor:
listen_address: endereço IP e porta a serem detectados:0.0.0.0para detectar em todas as interfaces (recomendado)- A porta
514é a porta padrão do syslog. Ela exige acesso root no Linux. Use1514para acesso não root.
Configuração do exportador:
creds_file_path: caminho completo para o arquivo de autenticação de ingestão:- Linux:
/etc/bindplane-agent/ingestion-auth.json - Windows:
C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
- Linux:
customer_id: ID do cliente copiado do console do Google SecOpsendpoint: URL do endpoint regional:- EUA:
malachiteingestion-pa.googleapis.com - Europa:
europe-malachiteingestion-pa.googleapis.com - Ásia:
asia-southeast1-malachiteingestion-pa.googleapis.com - Consulte a lista completa em Endpoints regionais.
- EUA:
Salve o arquivo de configuração.
- Depois de editar, salve o arquivo:
- Linux: pressione
Ctrl+O,EntereCtrl+X. - Windows: clique em Arquivo > Salvar.
- Linux: pressione
Reinicie o agente do Bindplane para aplicar as mudanças
Para reiniciar o agente do Bindplane no Linux, execute o seguinte comando:
sudo systemctl restart observiq-otel-collectorVerifique se o serviço está em execução:
```bash sudo systemctl status observiq-otel-collector ```Verifique se há erros nos registros:
```bash sudo journalctl -u observiq-otel-collector -f ```
Para reiniciar o agente do Bindplane no Windows, escolha uma das seguintes opções:
Prompt de comando ou PowerShell como administrador:
net stop observiq-otel-collector && net start observiq-otel-collectorConsole de serviços:
- Pressione
Win+R, digiteservices.msce pressione Enter. - Localize o Coletor do OpenTelemetry da observIQ.
- Clique com o botão direito do mouse e selecione Reiniciar.
Verifique se o serviço está em execução:
sc query observiq-otel-collectorVerifique se há erros nos registros:
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
- Pressione
Configurar a exportação do syslog no Apache Cassandra
- Faça login no host do Apache Cassandra usando SSH.
Abra o arquivo de configuração
logback.xml:- Apache Cassandra (a maioria das versões):
$(CASSANDRA_HOME)/conf - Datastax Enterprise (instalação de pacote):
/etc/dse - Datastax Enterprise (instalação tar):
$(TARBALL_ROOT)/resources/cassandra/conf
- Apache Cassandra (a maioria das versões):
Adicione a seguinte definição de Appender ao arquivo
logback.xmlna linha 28:<appender name="SYSLOG" class="ch.qos.logback.classic.net.SyslogAppender"> <syslogHost>BINDPLANE_IP</syslogHost> <port>BINDPLANE_PORT</port> <facility>LOCAL7</facility> <throwableExcluded>true</throwableExcluded> <suffixPattern>%thread:%level:%logger{36}:%msg</suffixPattern> </appender>Substitua
BINDPLANE_IPeBINDPLANE_PORTpelo endereço IP e pela porta reais do agente do Bindplane.Adicione o seguinte código ao bloco do logger raiz
<root level="INFO">no arquivologback.xml:O local em que essa linha é inserida depende da sua versão do Apache Cassandra:
- Apache Cassandra 5.0.x, linha 123
- Apache Cassandra 4.0.x e 4.1.x, linha 115
- Apache Cassandra 3.11.x e 3.0.x, linha 92
- Datastax Enterprise (todas as versões), linha 121
<appender-ref ref="SYSLOG" />
Tabela de mapeamento de UDM
| Campo de registro | Mapeamento do UDM | Lógica |
|---|---|---|
agent.ephemeral_id |
observer.labels.value |
Valor de agent.ephemeral_id da mensagem JSON interna. |
agent.hostname |
observer.hostname |
Valor de agent.hostname da mensagem JSON interna. |
agent.id |
observer.asset_id |
Concatenação de filebeat: e o valor de agent.id da mensagem JSON interna. |
agent.name |
observer.user.userid |
Valor de agent.name da mensagem JSON interna. |
agent.type |
observer.application |
Valor de agent.type da mensagem JSON interna. |
agent.version |
observer.platform_version |
Valor de agent.version da mensagem JSON interna. |
cloud.availability_zone |
principal.cloud.availability_zone |
Valor de cloud.availability_zone da mensagem JSON interna. |
cloud.instance.id |
principal.resource.product_object_id |
Valor de cloud.instance.id da mensagem JSON interna. |
cloud.instance.name |
principal.resource.name |
Valor de cloud.instance.name da mensagem JSON interna. |
cloud.machine.type |
principal.resource.attribute.labels.value |
Valor de cloud.machine.type da mensagem JSON interna, em que o key correspondente é machine_type. |
cloud.provider |
principal.resource.attribute.labels.value |
Valor de cloud.provider da mensagem JSON interna, em que o key correspondente é provider. |
event_metadata._id |
metadata.product_log_id |
Valor de event_metadata._id da mensagem JSON interna. |
event_metadata.version |
metadata.product_version |
Valor de event_metadata.version da mensagem JSON interna. |
host.architecture |
target.asset.hardware.cpu_platform |
Valor de host.architecture da mensagem JSON interna. |
host.fqdn |
target.administrative_domain |
Valor de host.fqdn da mensagem JSON interna. |
host.hostname |
target.hostname |
Valor de host.hostname da mensagem JSON interna. |
host.id |
target.asset.asset_id |
Concatenação de Host Id: e o valor de host.id da mensagem JSON interna. |
host.ip |
target.asset.ip |
Matriz de endereços IP de host.ip na mensagem JSON interna. |
host.mac |
target.mac |
Matriz de endereços MAC de host.mac na mensagem JSON interna. |
host.os.kernel |
target.platform_patch_level |
Valor de host.os.kernel da mensagem JSON interna. |
host.os.platform |
target.platform |
Defina como LINUX se host.os.platform for debian. |
host.os.version |
target.platform_version |
Valor de host.os.version da mensagem JSON interna. |
hostname |
principal.hostname |
Valor de hostname extraído do campo message usando grok. |
key |
security_result.detection_fields.value |
Valor de key extraído do campo message usando grok, em que o key correspondente é key. |
log.file.path |
principal.process.file.full_path |
Valor de log.file.path da mensagem JSON interna. |
log_level |
security_result.severity |
Mapeado com base no valor de log_level: DEBUG, INFO e AUDIT são mapeados para INFORMATIONAL; ERROR é mapeado para ERROR; WARNING é mapeado para MEDIUM. |
log_level |
security_result.severity_details |
Valor de log_level extraído do campo message usando grok. |
log_type |
metadata.log_type |
Valor de log_type do registro bruto. |
message |
security_result.description |
Descrição extraída do campo message usando grok. |
message |
target.process.command_line |
Linha de comando extraída do campo message usando grok. |
now |
security_result.detection_fields.value |
Valor de now extraído do campo message usando grok, em que o key correspondente é now. Analisado do campo event_time extraído do campo message usando grok. Definido como USER_RESOURCE_ACCESS se hostname e host.hostname estiverem presentes. Caso contrário, definido como GENERIC_EVENT. Defina como CASSANDRA. Defina como CASSANDRA. Defina como ephemeral_id. Defina como VIRTUAL_MACHINE se cloud.instance.name estiver presente. Defina como key e now para os campos de detecção correspondentes. |
timestamp |
timestamp |
Do campo create_time do registro bruto. |
authenticated_var |
event.idm.read_only_udm.principal.user.userid |
Mapeado do registro de mudanças |
authenticated_var |
event.idm.read_only_udm.target.user.userid |
Mapeado do registro de mudanças |
user_var |
event.idm.read_only_udm.target.user.userid |
Mapeado do registro de mudanças |
operation |
event.idm.read_only_udm.security_result.description |
Mapeado do registro de mudanças |
operation |
event.idm.read_only_udm.target.process.command_line |
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.