Recolha registos do Sophos Central
Este documento explica como recolher registos do Sophos Central através do Bindplane. O analisador transforma os registos JSON num modelo de dados unificado (UDM). Extrai campos de estruturas JSON aninhadas, mapeia-os para campos da UDM e realiza a categorização de eventos com base no campo type, enriquecendo os dados com detalhes e ações específicos para diferentes tipos de eventos do Sophos Central.
Antes de começar
- Certifique-se de que tem uma instância do Google Security Operations.
- Certifique-se de que está a usar o Windows 2016 ou posterior, ou um anfitrião Linux com
systemd
. - Certifique-se de que tem um computador Windows ou Linux adicional capaz de executar o Python continuamente.
- Se estiver a executar o serviço através de um proxy, certifique-se de que as portas da firewall estão abertas.
- Certifique-se de que tem acesso privilegiado à firewall Sophos XG.
Obtenha o ficheiro de autenticação de carregamento do Google SecOps
- Inicie sessão na consola Google SecOps.
- Aceda a Definições do SIEM > Agentes de recolha.
- 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
- Inicie sessão na consola Google SecOps.
- Aceda a Definições do SIEM > Perfil.
- Copie e guarde o ID do cliente da secção Detalhes da organização.
Instale o agente do Bindplane
Instalação do Windows
- Abra a Linha de comandos ou o PowerShell como administrador.
Execute o seguinte comando:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
Instalação do Linux
- Abra um terminal com privilégios de raiz ou sudo.
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 este guia de instalação.
Configure o agente Bindplane para carregar o Syslog e enviá-lo para o Google SecOps
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).
- Localize o ficheiro
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: SYSLOG namespace: sophos_central raw_log_field: body 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
<customer_id>
pelo ID de cliente real.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 acesso à API do Sophos Central
- Inicie sessão no Sophos Central Admin.
- Selecione Definições globais > Gestão de tokens da API.
- Clique em Adicionar token para criar um novo token.
- Introduza um nome de token e clique em Guardar. É apresentado o Resumo do token de API para o token fornecido.
- Na secção Resumo do token de API, clique em Copiar para copiar o URL e os cabeçalhos de acesso à API.
Instale o Python na máquina adicional
- Abra o navegador de Internet e aceda ao Website do Python.
- Clique em Transferir Python para o seu sistema operativo (Windows ou Mac).
Instale o Python.
- No Windows:
- Execute o instalador.
- Selecione a caixa que indica Adicionar Python ao PATH.
- Clique em Instalar agora.
Em Mac:
- O Python pode já estar instalado. Caso contrário, pode instalar a versão mais recente através do terminal.
Abra o Terminal e escreva o seguinte comando:
python --version
- No Windows:
Transfira o script de integração do Sophos
- Aceda à página do GitHub para o repositório do GitHub de integração do SIEM do Sophos Central.
- Clique no botão Códigoverde> Transferir ZIP.
- Extraia o ficheiro ZIP.
Configure a configuração do script
- Encontre e abra o ficheiro
config.ini
com um editor de texto. - Edite o ficheiro de configuração:
- Token de API: introduza a chave da API copiada anteriormente do Sophos Central.
- Detalhes do servidor Syslog: introduza os detalhes do seu servidor Syslog.
- Anfitrião: introduza o endereço IP do Bindplane.
- Porta: introduza o número da porta do Bindplane.
- Protocolo: introduza UDP (também pode usar TCP ou TLS, consoante a sua configuração).
- Guarde o ficheiro.
Execute o script
Aceda à pasta de scripts.
Em Windows:
- Prima a tecla Windows e escreva
cmd
. - Clique em Linha de comandos.
Aceda à pasta de scripts:
cd C:\Users\YourName\Downloads\Sophos-Central-SIEM-Integration
- Prima a tecla Windows e escreva
No macOS:
- Aceda a Aplicações > Utilitários.
- Abra o Terminal.
Aceda à pasta de scripts:
cd /Users/YourName/Downloads/Sophos-Central-SIEM-Integration
Execute o guião:
Escreva o seguinte comando para iniciar o script:
python siem.py
Automatize o script para ser executado continuamente no Windows (através do Agendador de tarefas):
- Abra o Agendador de tarefas escrevendo Agendador de tarefas no menu Iniciar.
- Clique em Criar tarefa.
- No separador Geral:
- Atribua um nome à tarefa; por exemplo,
Sophos Central Log Export
.
- Atribua um nome à tarefa; por exemplo,
- No separador Acionadores:
- Clique em Novo e defina a tarefa para ser executada Diariamente ou No arranque (consoante a sua preferência).
- No separador Ações:
- Clique em Novo e selecione Iniciar um programa.
- Procure o ficheiro executável
python.exe
(normalmente encontrado emC:\PythonXX\python.exe
). - No campo Adicionar argumentos, escreva o caminho para o guião; por exemplo,
C:\Users\YourName\Downloads\Sophos-Central-SIEM-Integration\siem.py
.
- Clique em OK para guardar a tarefa.
Automatize o script para ser executado continuamente no Mac (através de tarefas cron):
- Abra o Terminal.
- Escreva
crontab -e
e prima Enter. Adicione uma nova linha no final do ficheiro:
* * * * * /usr/bin/python /Users/YourName/Downloads/Sophos-Central-SIEM-Integration/siem.py
Guarde e saia do editor.
Tabela de mapeamento da UDM
Campo de registo | Mapeamento de UDM | Lógica |
---|---|---|
customer_id | target.resource.id | Mapeado diretamente a partir do campo customer_id . |
data.core_remedy_items.items.0.descriptor | target.process.file.full_path | Mapeado diretamente a partir do campo data.core_remedy_items.items.0.descriptor . |
data.source_info.ip | principal.ip principal.asset.ip |
Mapeado diretamente a partir do campo data.source_info.ip . |
descrição | metadata.description | Mapeado diretamente a partir do campo description quando metadata.event_type é GENERIC_EVENT . |
dhost | principal.hostname principal.asset.hostname |
Mapeado diretamente a partir do campo dhost . |
duid | security_result.detection_fields.value | Mapeado diretamente a partir do campo duid . |
fim | metadata.event_timestamp | Analisado no formato RFC 3339 e mapeado para o campo event_timestamp . |
endpoint_id | target.asset_id | Mapeado como Device endpoint Id: {endpoint_id} . |
endpoint_type | security_result.about.labels.value | Mapeado diretamente a partir do campo endpoint_type . |
grupo | security_result.category_details | Mapeado diretamente a partir do campo group . |
nome | security_result.description security_result.summary |
Mapeado diretamente a partir do campo name . |
metadata.event_type | Determinado com base no campo type e na lógica adicional no analisador. Os valores possíveis incluem: FILE_OPEN, SCAN_HOST, SETTING_MODIFICATION, STATUS_HEARTBEAT, SETTING_CREATION, NETWORK_CONNECTION, SCAN_PROCESS, SCAN_UNCATEGORIZED, USER_CREATION, USER_UNCATEGORIZED e STATUS_UPDATE. |
|
metadata.log_type | Definido como SOPHOS_CENTRAL . |
|
metadata.product_event_type | Mapeado diretamente a partir do campo type . |
|
metadata.product_name | Definido como Sophos Central . |
|
metadata.vendor_name | Definido como Sophos . |
|
network.direction | Definido como OUTBOUND para valores type específicos que indicam ligações de rede de saída. |
|
network.ip_protocol | Definido como TCP para valores type específicos que indicam ligações de rede TCP. |
|
security_result.action | Determinado com base no campo action extraído do campo name através de padrões grok. Os valores possíveis incluem: ALLOW, BLOCK, ALLOW_WITH_MODIFICATION, UNKNOWN_ACTION. |
|
security_result.detection_fields.key | Definido como duid quando o campo duid está presente. |
|
security_result.rule_name | Extraído do campo name através de padrões grok para valores type específicos. |
|
security_result.severity | Mapeado a partir do campo severity com o seguinte mapeamento: low -> LOW, medium -> MEDIUM, high/critical -> HIGH. |
|
target.application | Extraído do campo name através de padrões grok para valores type específicos. |
|
target.asset.hostname | Mapeado a partir do campo dhost para valores específicos de type . |
|
target.file.full_path | Extraído do campo name através de padrões grok para valores type específicos ou mapeado diretamente a partir de data.core_remedy_items.items.0.descriptor ou core_remedy_items.items.0.descriptor . |
|
target.file.size | Extraído do campo name através de padrões grok e convertido em uinteger para valores type específicos. |
|
target.hostname | Mapeado a partir do campo dhost para valores específicos de type . |
|
target.resource.name | Definido para valores específicos com base no campo type ou extraído do campo name através de padrões grok. |
|
target.resource.type | Definido para valores específicos com base no campo type . |
|
target.user.userid | Mapeado a partir do campo suser após a extração do nome de utilizador através de padrões grok. |
|
target.url | Extraído do campo name através de padrões grok para valores type específicos. |
|
source_info.ip | principal.ip principal.asset.ip |
Mapeado diretamente a partir do campo source_info.ip . |
suser | principal.user.userid target.user.userid |
Extraído do campo suser através de padrões grok para remover prefixos de nomes de anfitriões. |
escrever | metadata.product_event_type | Mapeado diretamente a partir do campo type . |
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais da Google SecOps.