Recolha registos do FireEye HX
Este documento explica como recolher registos do FireEye Endpoint Security (HX) para o Google Security Operations através do Bindplane. O analisador tenta processar a mensagem de entrada como JSON. Se a mensagem não estiver no formato JSON, usa padrões grok para extrair campos e, em seguida, realiza o mapeamento UDM condicional com base no tipo de evento extraído e noutros critérios.
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
. - 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 ao FireEye Endpoint Security.
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: 'FIREEYE_HX' 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 syslog do FireEye HX Event Streamer através da IU
- Inicie sessão na consola de gestão do FireEye HX.
- Aceda ao Event Streamer.
- Selecione Ativar Event Streamer no anfitrião.
- Guarde as alterações à política.
- Aceda a Destinos > Definições do servidor > Adicionar destino syslog.
- Indique os seguintes detalhes de configuração:
- Nome: introduza um nome exclusivo para etiquetar o coletor de registos do Google SecOps.
- Endereço IP: introduza o endereço IP do agente Bindplane.
- Porta: introduza o número da porta do agente do Bindplane.
- Guarde as alterações para as aplicar.
Configure o syslog do FireEye HX Event Streamer através da CLI
- Inicie sessão no dispositivo FireEye HX através da interface de linhas de comando (CLI).
Execute o seguinte comando para ativar o modo de configuração:
enable configure terminal
Execute o seguinte comando para adicionar um destino de servidor syslog remoto:
logging BINDPLANE_IP_ADDRESS port PORT_NUMBER port
- Substitua o seguinte:
BINDPLANE_IP_ADDRESS
: o endereço IP do encaminhador do Google SecOpsPORT_NUMBER
: o número da porta
- Substitua o seguinte:
Execute o seguinte comando para guardar os detalhes da configuração:
write mem
Tabela de mapeamento da UDM
Campo de registo | Mapeamento de UDM | Lógica |
---|---|---|
alert.agent._id | principal.asset.asset_id | O ID do agente do registo não processado, com o prefixo AGENT ID: |
alert.agent.url | principal.labels.value | O URL do agente do registo não processado. |
alert.condition._id | additional.fields.value.string_value | O ID da condição do registo não processado, com = carateres removidos. |
alert.condition.url | additional.fields.value.string_value | O URL da condição do registo não processado, com = carateres removidos. |
alert.decorators[].data.fireeye_report.indicator_verdict.malware_families.0 | security_result.threat_name | A família de software malicioso do relatório da FireEye no campo decorators do registo não processado. |
alert.decorators[].data.fireeye_report.risk_summary | security_result.description | O resumo de risco do relatório da FireEye no campo de decoradores do registo não processado. |
alert.decorators[].data.fireeye_verdict | security_result.severity_details | O veredito do FireEye do campo de decoradores do registo não processado. |
alert.event_at | read_only_udm.metadata.event_timestamp | A data/hora do evento do registo não processado. |
alert.event_id | read_only_udm.metadata.product_log_id | O ID do evento do registo não processado. |
alert.event_type | read_only_udm.metadata.product_event_type | O tipo de evento do registo não processado. |
alert.event_values.fileWriteEvent/fullPath | target.file.full_path | O caminho completo do ficheiro escrito a partir do registo não processado. |
alert.event_values.fileWriteEvent/md5 | target.file.md5 | O hash MD5 do ficheiro escrito a partir do registo não processado. |
alert.event_values.fileWriteEvent/pid | principal.process.pid | O ID do processo que escreveu o ficheiro a partir do registo não processado. |
alert.event_values.fileWriteEvent/processPath | principal.process.file.full_path | O caminho do processo que escreveu o ficheiro a partir do registo não processado. Combinado com alert.event_values.fileWriteEvent/process para criar o caminho completo se o SO for o Windows. |
alert.event_values.fileWriteEvent/size | target.file.size | O tamanho do ficheiro escrito a partir do registo não processado. |
alert.event_values.fileWriteEvent/username | principal.user.userid | O utilizador que escreveu o ficheiro a partir do registo não processado. |
alert.event_values.ipv4NetworkEvent/localIP | principal.ip | O endereço IP local do registo não processado. |
alert.event_values.ipv4NetworkEvent/localPort | principal.port | A porta local do registo não processado. |
alert.event_values.ipv4NetworkEvent/pid | principal.process.pid | O ID do processo do registo não processado. |
alert.event_values.ipv4NetworkEvent/process | principal.process.file.full_path | O nome do processo do registo não processado. Combinado com alert.event_values.ipv4NetworkEvent/processPath para criar o caminho completo se o SO for o Windows. |
alert.event_values.ipv4NetworkEvent/processPath | principal.process.file.full_path | O caminho do processo a partir do registo não processado. Combinado com alert.event_values.ipv4NetworkEvent/process para criar o caminho completo se o SO for o Windows. |
alert.event_values.ipv4NetworkEvent/protocol | network.ip_protocol | O protocolo de rede do registo não processado. |
alert.event_values.ipv4NetworkEvent/remoteIP | target.ip | O endereço IP remoto do registo não processado. |
alert.event_values.ipv4NetworkEvent/remotePort | target.port | A porta remota do registo não processado. |
alert.event_values.ipv4NetworkEvent/timestamp | read_only_udm.metadata.event_timestamp | A data/hora do evento do registo não processado. |
alert.event_values.ipv4NetworkEvent/username | principal.user.userid | O utilizador do registo não processado. |
alert.event_values.processEvent/md5 | target.process.file.md5 | O hash MD5 do processo do registo não processado. |
alert.event_values.processEvent/parentPid | principal.process.pid | O ID do processo principal do registo não processado. |
alert.event_values.processEvent/parentProcess | principal.process.file.full_path | O nome do processo principal do registo não processado. |
alert.event_values.processEvent/parentProcessPath | principal.process.file.full_path | O caminho do processo principal a partir do registo não processado. |
alert.event_values.processEvent/pid | target.process.pid | O ID do processo do registo não processado. |
alert.event_values.processEvent/process | target.process.file.full_path | O nome do processo do registo não processado. |
alert.event_values.processEvent/processCmdLine | target.process.command_line | A linha de comandos do processo a partir do registo não processado. |
alert.event_values.processEvent/processPath | target.process.file.full_path | O caminho do processo a partir do registo não processado. |
alert.event_values.processEvent/timestamp | read_only_udm.metadata.event_timestamp | A data/hora do evento do registo não processado. |
alert.event_values.processEvent/username | principal.user.userid | O utilizador do registo não processado. |
alert.event_values.urlMonitorEvent/hostname | target.hostname | O nome do anfitrião do registo não processado. |
alert.event_values.urlMonitorEvent/localPort | principal.port | A porta local do registo não processado. |
alert.event_values.urlMonitorEvent/pid | principal.process.pid | O ID do processo do registo não processado. |
alert.event_values.urlMonitorEvent/process | principal.process.file.full_path | O nome do processo do registo não processado. Combinado com alert.event_values.urlMonitorEvent/processPath para criar o caminho completo se o SO for o Windows. |
alert.event_values.urlMonitorEvent/processPath | principal.process.file.full_path | O caminho do processo a partir do registo não processado. Combinado com alert.event_values.urlMonitorEvent/process para criar o caminho completo se o SO for o Windows. |
alert.event_values.urlMonitorEvent/remoteIpAddress | target.ip | O endereço IP remoto do registo não processado. |
alert.event_values.urlMonitorEvent/remotePort | target.port | A porta remota do registo não processado. |
alert.event_values.urlMonitorEvent/requestUrl | target.url | O URL pedido a partir do registo não processado. |
alert.event_values.urlMonitorEvent/timestamp | read_only_udm.metadata.event_timestamp | A data/hora do evento do registo não processado. |
alert.event_values.urlMonitorEvent/urlMethod | network.http.method | O método HTTP do registo não processado. |
alert.event_values.urlMonitorEvent/userAgent | network.http.user_agent | O agente do utilizador do registo não processado. |
alert.event_values.urlMonitorEvent/username | principal.user.userid | O utilizador do registo não processado. |
alert.indicator._id | security_result.about.labels.value | O ID do indicador do registo não processado. |
alert.indicator.name | read_only_udm.security_result.summary | O nome do indicador do registo não processado. |
alert.indicator.url | security_result.about.labels.value | O URL do indicador do registo não processado. |
alert.multiple_match | read_only_udm.metadata.description | A mensagem de várias correspondências do registo não processado. |
alert.source | additional.fields.value.string_value | A origem do alerta a partir do registo não processado. |
authmethod | extensions.auth.mechanism | O método de autenticação do registo não processado. Definido como LOCAL se o valor for local ou LOCAL . Caso contrário, é definido como MECHANISM_OTHER . |
authsubmethod | extensions.auth.auth_details | O submétodo de autenticação do registo não processado, convertido em letras maiúsculas. |
cliente | principal.ip | O endereço IP do cliente do registo não processado. |
conditions.data.tests[].token | security_result.detection_fields.key | O token dos testes de condições no registo não processado. |
conditions.data.tests[].value | security_result.detection_fields.value | O valor dos testes de condições no registo não processado. |
descrição | read_only_udm.metadata.description | A descrição do registo não processado. |
host.agent_version | read_only_udm.metadata.product_version | A versão do agente do registo não processado. |
host.containment_state | read_only_udm.principal.containment_state | O estado de contenção do registo não processado. |
host.domain | read_only_udm.principal.administrative_domain | O domínio do registo não processado. |
host.hostname | read_only_udm.principal.hostname | O nome do anfitrião do registo não processado. |
host.os.platform | read_only_udm.principal.platform | A plataforma do sistema operativo a partir do registo não processado. |
host.os.product_name | read_only_udm.principal.platform_version | O nome do produto do sistema operativo do registo não processado. |
host.primary_ip_address | read_only_udm.principal.ip | O endereço IP principal do registo não processado. |
host.primary_mac | read_only_udm.principal.mac | O endereço MAC principal do registo não processado, com - carateres substituídos por : . |
host_ | principal.hostname | O nome do anfitrião do registo não processado. |
host_details.data.agent_version | read_only_udm.metadata.product_version | A versão do agente do registo não processado. |
host_details.data.containment_state | read_only_udm.security_result.severity_details | O estado de contenção do registo não processado. |
host_details.data.domain | read_only_udm.principal.administrative_domain | O domínio do registo não processado. |
host_details.data.hostname | read_only_udm.principal.hostname | O nome do anfitrião do registo não processado. |
host_details.data.os.platform | read_only_udm.principal.platform | A plataforma do sistema operativo a partir do registo não processado. |
host_details.data.os.product_name | read_only_udm.principal.platform_version | O nome do produto do sistema operativo do registo não processado. |
host_details.data.primary_ip_address | read_only_udm.principal.ip | O endereço IP principal do registo não processado. |
host_details.data.primary_mac | read_only_udm.principal.mac | O endereço MAC principal do registo não processado, com - carateres substituídos por : . |
indicators.data.description | read_only_udm.metadata.description | A descrição do indicador do registo não processado. |
linha | target.application | A linha do registo não processado. |
localusername | target.user.user_display_name | O nome de utilizador local do registo não processado. |
principal_ip | principal.ip | O endereço IP principal do registo não processado. |
processar | read_only_udm.principal.application | O nome do processo do registo não processado. |
process_id | read_only_udm.principal.process.pid | O ID do processo do registo não processado. |
referenciador | network.http.referral_url | O URL de referência do registo não processado. |
remoteaddress | principal.ip | O endereço remoto do registo não processado. |
pedido | additional.fields.value.string_value | O pedido do registo não processado. |
função | target.user.role_name | A função do registo não processado. |
servidor | target.resource.attribute.labels.value | O servidor do registo não processado. |
sessionID | network.session_id | O ID da sessão do registo não processado. |
gravidade | security_result.severity | Definido como LOW , MEDIUM ou HIGH com base na gravidade do registo não processado. |
target_host | read_only_udm.target.hostname | O nome do anfitrião de destino do registo não processado. |
target_ip | target.ip | O endereço IP de destino do registo não processado. |
target_ip1 | target.ip | O endereço IPv6 de destino do registo não processado. |
timestamp | timestamp | A data/hora do registo não processado. |
upstream | target.url | O URL a montante do registo não processado. |
nome de utilizador | target.user.userid | O nome de utilizador do registo não processado. |
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais da Google SecOps.