Raccogli i log EDR di Cybereason
Questo documento spiega come importare i log Cybereason EDR in Google Security Operations utilizzando l'agente Bindplane.
Cybereason EDR (Endpoint Detection and Response) è una piattaforma di cybersecurity che rileva e risponde alle minacce avanzate sugli endpoint. Identifica le operazioni dannose (Malops), ovvero catene di attacchi correlate che collegano attività sospette in scenari di attacco completi, e fornisce agli analisti della sicurezza visibilità sulla progressione delle minacce, sulle macchine interessate, sugli utenti compromessi e sulle connessioni di rete.
Prima di iniziare
Assicurati di soddisfare i seguenti prerequisiti:
- Un'istanza Google SecOps
- Windows Server 2016 o versioni successive oppure host Linux con
systemd - Connettività di rete tra l'agente Bindplane e il server di rilevamento Cybereason
- Se l'agente viene eseguito dietro un proxy, assicurati che le porte del firewall siano aperte in base ai requisiti dell'agente Bindplane.
- Accesso alla console di gestione Cybereason con il ruolo di Amministratore di sistema
- Piattaforma Cybereason versione 20.1 o successive
Recuperare il file di autenticazione importazione di Google SecOps
- Accedi alla console Google SecOps.
- Vai a Impostazioni SIEM > Agenti di raccolta.
Scarica il file di autenticazione importazione. Salva il file in modo sicuro sul sistema in cui verrà installato l'agente Bindplane.
Recuperare l'ID cliente Google SecOps
- Accedi alla console Google SecOps.
- Vai a Impostazioni SIEM > Profilo.
Copia e salva l'ID cliente dalla sezione Dettagli dell'organizzazione.
Installa l'agente Bindplane
Installa l'agente Bindplane sul sistema operativo Windows o Linux seguendo le istruzioni riportate di seguito.
Installazione di Windows
- Apri Prompt dei comandi o PowerShell come amministratore.
Esegui questo comando:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quietAttendi il completamento dell'installazione.
Verifica l'installazione eseguendo:
sc query observiq-otel-collectorLo stato del servizio deve essere RUNNING.
Installazione di Linux
- Apri un terminale con privilegi root o sudo.
Esegui questo comando:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.shAttendi il completamento dell'installazione.
Verifica l'installazione eseguendo:
sudo systemctl status observiq-otel-collectorLo stato del servizio deve essere attivo (in esecuzione).
Risorse aggiuntive per l'installazione
Per ulteriori opzioni di installazione e risoluzione dei problemi, consulta la Guida all'installazione dell'agente Bindplane.
Configura l'agente Bindplane per importare syslog e inviarli a Google SecOps
Individua il file di configurazione
Linux:
sudo nano /etc/bindplane-agent/config.yamlWindows:
notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
Modifica il file di configurazione
Sostituisci l'intero contenuto di
config.yamlcon la seguente configurazione:receivers: tcplog: listen_address: "0.0.0.0:514" exporters: chronicle/cybereason: compression: gzip creds_file_path: '/etc/bindplane-agent/ingestion-auth.json' customer_id: 'your-customer-id' endpoint: malachiteingestion-pa.googleapis.com log_type: CYBEREASON_EDR raw_log_field: body service: pipelines: logs/cybereason_to_chronicle: receivers: - tcplog exporters: - chronicle/cybereasonSostituisci i seguenti segnaposto:
Configurazione del ricevitore:
listen_address: Indirizzo IP e porta su cui ascoltare:0.0.0.0:514per ascoltare su tutte le interfacce sulla porta 514 (richiede l'accesso come amministratore su Linux)0.0.0.0:1514per l'ascolto su una porta senza privilegi (consigliato per Linux non root)
Opzioni del tipo di ricevitore:
tcplogper syslog TCP (obbligatorio per l'inoltro di syslog Cybereason)
Configurazione dell'esportatore:
creds_file_path: il percorso completo del file di autenticazione dell'importazione di Google SecOps:- Linux:
/etc/bindplane-agent/ingestion-auth.json - Windows:
C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
- Linux:
customer_id: ID cliente Google SecOpsendpoint: URL endpoint regionale:- Stati Uniti:
malachiteingestion-pa.googleapis.com - Europa:
europe-malachiteingestion-pa.googleapis.com - Asia:
asia-southeast1-malachiteingestion-pa.googleapis.com - Per l'elenco completo, vedi Endpoint regionali.
- Stati Uniti:
Salvare il file di configurazione
Dopo la modifica, salva il file:
- Linux: premi
Ctrl+O, poiEntere infineCtrl+X. - Windows: fai clic su File > Salva.
Riavvia l'agente Bindplane per applicare le modifiche
Per riavviare l'agente Bindplane in Linux:
Esegui questo comando:
sudo systemctl restart observiq-otel-collectorVerifica che il servizio sia in esecuzione:
sudo systemctl status observiq-otel-collectorControlla la presenza di errori nei log:
sudo journalctl -u observiq-otel-collector -f
Per riavviare l'agente Bindplane in Windows:
Scegli una delle seguenti opzioni:
Prompt dei comandi o PowerShell come amministratore:
net stop observiq-otel-collector && net start observiq-otel-collectorConsole Services:
- Premi
Win+R, digitaservices.msce premi Invio. - Individua observIQ OpenTelemetry Collector.
- Fai clic con il tasto destro del mouse e seleziona Riavvia.
- Premi
Verifica che il servizio sia in esecuzione:
sc query observiq-otel-collectorControlla la presenza di errori nei log:
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
Configurare l'inoltro di syslog di Cybereason EDR
Cybereason invia eventi MalOp e di controllo utente in formato CEF (Common Event Format) tramite syslog. La configurazione dell'inoltro di Syslog richiede una richiesta all'assistenza tecnica di Cybereason.
Richiedere l'inoltro di syslog all'assistenza tecnica di Cybereason
- Accedi alla console di gestione Cybereason.
- Contatta l'assistenza tecnica di Cybereason tramite il portale di assistenza Cybereason.
- Invia una richiesta di configurazione dell'inoltro di syslog con le seguenti informazioni:
- Indirizzo IP del server syslog: l'indirizzo IP dell'host dell'agente Bindplane (ad esempio,
192.168.1.100). - Porta del server Syslog: la porta corrispondente all'agente Bindplane
listen_address(ad esempio,514). - Protocollo: TCP (syslog TCP non criptato).
- Tipi di log: richiedi l'inoltro dei seguenti tipi di log:
- Syslog MalOp: avvisi di sicurezza ed eventi di operazioni dannose
- Syslog di controllo utente: attività utente e azioni amministrative
- Indirizzo IP del server syslog: l'indirizzo IP dell'host dell'agente Bindplane (ad esempio,
Attendi che l'assistenza tecnica di Cybereason confermi la configurazione dell'inoltro di syslog.
Configura le regole firewall
Assicurati che siano presenti le seguenti regole firewall:
Direzione Protocollo Porta Origine Destinazione In uscita TCP 514 Server di rilevamento Cybereason Host dell'agente Bindplane
Alternativa: Cybereason CEF Forwarder
Se l'assistenza tecnica di Cybereason non è in grado di configurare l'inoltro diretto di syslog, puoi utilizzare lo strumento Cybereason CEF Forwarder:
- Scarica l'immagine Docker di Cybereason CEF Forwarder dall'assistenza tecnica di Cybereason.
- Crea o modifica il file di configurazione in
cybereason-forwarders/config/config.json. Configura le seguenti impostazioni:
{ "host": "<BINDPLANE_AGENT_IP>", "port": 514 }Sostituisci
<BINDPLANE_AGENT_IP>con l'indirizzo IP dell'host dell'agente Bindplane.Crea ed esegui il container Docker:
docker build -t cybereason-cef-forwarder . docker run -d --name cybereason-forwarder cybereason-cef-forwarder
Tipi di eventi Syslog
Cybereason genera messaggi syslog CEF per le seguenti categorie di eventi:
| Categoria evento | Descrizione |
|---|---|
| MalOp creato | Nuova operazione dannosa rilevata |
| MalOp aggiornato | Stato o dettagli di MalOp esistenti modificati |
| MalOp closed | MalOp risolto o chiuso dall'analista |
| Malware rilevato | Malware identificato su un endpoint |
| Procedura sospetta | Rilevata attività sospetta del processo |
| Connessione di rete | È stata identificata una connessione di rete sospetta |
| Accesso utente | Eventi di autenticazione utente |
| Isolamento della macchina | Endpoint isolato dalla rete o riconnesso alla rete |
| Modifiche alle norme | Modifiche alle norme sulla sicurezza |
Verificare l'inoltro di Syslog
- Dopo che l'assistenza tecnica di Cybereason ha confermato la configurazione di syslog, esegui un'azione di test nella console Cybereason (ad esempio, visualizza un MalOp o isola una macchina di test).
- Controlla i log dell'agente Bindplane per i messaggi syslog in entrata:
- Linux:
sudo journalctl -u observiq-otel-collector -f - Windows:
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
- Linux:
Verifica che nei log vengano visualizzati messaggi formattati in CEF, ad esempio:
CEF:0|Cybereason|Cybereason|2.0|MalOp|MalOp Created|8|cs1=MALOP_ID_HERE dvchost=server01.company.com suser=admin@company.com
Tabella di mappatura UDM
| Campo log | Mappatura UDM | Logic |
|---|---|---|
| detectionName_label | additional.fields | Mappato come coppia chiave-valore |
| sensorId_label | additional.fields | Mappato come coppia chiave-valore |
| stato | metadata.description | Se il valore non è vuoto |
| log_description | metadata.description | Fallback se lo stato è vuoto |
| (formato CEF) | metadata.event_type | Imposta GENERIC_EVENT per i log CEF |
| event_type | metadata.event_type | Imposta su PROCESS_OPEN se il valore è "PROCESS_OPEN", NETWORK_CONNECTION se il valore è "NETWORK_CONNECTION", SCAN_HOST se il valore è "MALWARE". |
| has_principal, has_target | metadata.event_type | Impostato su SCAN_FILE se has_principal e has_target sono entrambi true |
| has_principal | metadata.event_type | Impostato su STATUS_UPDATE se solo has_principal è true |
| has_user | metadata.event_type | Impostato su USER_UNCATEGORIZED se has_user è true nel contesto Malop |
| (predefinito) | metadata.event_type | In caso contrario, impostalo su GENERIC_EVENT |
| LogType | metadata.product_event_type | Se il valore non è vuoto |
| malop_data.simpleValues.elementDisplayName.values.0 | metadata.product_event_type | Fallback se LogType è vuoto |
| tipo | metadata.product_event_type | Fallback |
| prod_event, prod_event2 | metadata.product_event_type | Concatenato come prod_event - prod_event2 |
| malop_process.guidString | metadata.product_log_id | Per il tipo di evento PROCESS_OPEN |
| malop_connection.guidString | metadata.product_log_id | Per il tipo di evento NETWORK_CONNECTION |
| guid | metadata.product_log_id | Per i tipi di evento MALWARE o Malop |
| (statico) | metadata.product_version | Imposta inizialmente il valore "2.0" |
| Sensor.version | metadata.product_version | Sovrascrive "2.0" se presente |
| malop_url | metadata.url_back_to_product | Mappato direttamente |
| (statico) | metadata.vendor_name | Impostato su "Cybereason" |
| direction | network.direction | Mappato direttamente |
| malop_connection.simpleValues.transportProtocol.values.0 | network.ip_protocol | Mappato direttamente |
| malop_connection.simpleValues.receivedBytesCount.values.0 | network.received_bytes | Convertito in numero intero senza segno |
| malop_connection.simpleValues.transmittedBytesCount.values.0 | network.sent_bytes | Convertito in numero intero senza segno |
| Sensor.fqdn | principal.administrative_domain | Mappato direttamente |
| malop_process.elementValues.ownerMachine.elementValues.0.guid | principal.asset.asset_id | Prefisso "Cybereason:" |
| malop_data.elementValues.affectedMachines.elementValues.0.guid | principal.asset.asset_id | Prefisso "Cybereason:", fallback |
| malop_process.elementValues.ownerMachine.elementValues.0.name | principal.asset.hostname | Mappato direttamente |
| malop_data.elementValues.affectedMachines.elementValues.0.name | principal.asset.hostname | Fallback |
| machineName | principal.asset.hostname | Fallback |
| host | principal.asset.hostname | Fallback |
| dvchost | principal.asset.hostname | Fallback |
| Sensor.fqdn | principal.asset.hostname | Fallback |
| client.ip | principal.asset.ip | Mappato direttamente |
| Sensor.externalIpAddress | principal.asset.ip | Fallback |
| malop_process.elementValues.ownerMachine.elementValues.0.name | principal.hostname | Mappato direttamente |
| malop_data.elementValues.affectedMachines.elementValues.0.name | principal.hostname | Fallback |
| machineName | principal.hostname | Fallback |
| host | principal.hostname | Fallback |
| dvchost | principal.hostname | Fallback |
| Sensor.fqdn | principal.hostname | Fallback |
| client.ip | principal.ip | Mappato direttamente |
| Sensor.externalIpAddress | principal.ip | Fallback |
| Sensor.internalIpAddress | principal.nat_ip | Mappato direttamente |
| Sensor.privateServerIp | principal.nat_ip | Fallback |
| Sensor.osType | principal.platform | Imposta WINDOWS se il valore è "WINDOWS", LINUX se "LINUX", MAC se "MAC" |
| Sensor.osVersionType | principal.platform_version | Mappato direttamente |
| malop_connection.simpleValues.localPort.values.0 | principal.port | Convertito in numero intero |
| malop_process.simpleValues.commandLine.values.0 | principal.process.command_line | Mappato direttamente |
| malwareDataModel.filePath | principal.process.command_line | Fallback |
| malop_process.simpleValues.calculatedName.values.0 | principal.process.file.full_path | Mappato direttamente |
| nome | principal.process.file.full_path | Fallback |
| malop_process.elementValues.parentProcess.elementValues.0.guid | principal.process.parent_process.product_specific_process_id | Prefisso "Cybereason:" |
| malop_process.elementValues.self.elementValues.0.guid | principal.process.pid | Mappato direttamente |
| malop_process.elementValues.self.elementValues.0.guid | principal.process.product_specific_process_id | Prefisso "Cybereason:" |
| malop_connection.elementValues.ownerProcess.elementValues.0.guid | principal.process.product_specific_process_id | Prefisso "Cybereason:", fallback |
| companyName | principal.user.company_name | Mappato direttamente |
| malop_process.elementValues.calculatedUser.elementValues.0.name | principal.user.user_display_name | Mappato direttamente |
| malop_data.elementValues.affectedUsers.elementValues.0.name | principal.user.user_display_name | Fallback |
| malop_connection.elementValues.ownerProcess.user.elementValues.0.name | principal.user.user_display_name | Fallback |
| malop_process.elementValues.calculatedUser.elementValues.0.guid | principal.user.userid | Mappato direttamente |
| malop_data.elementValues.affectedUsers.elementValues.0.guid | principal.user.userid | Fallback |
| malop_connection.elementValues.ownerProcess.user.elementValues.0.guid | principal.user.userid | Fallback |
| security_result_action | security_result.action | Imposta su ALLOW, BLOCK o QUARANTINE in base allo stato |
| is_alert | security_result.alert_state | Impostato su ALERTING se il valore è True |
| sr_category | security_result.category | Impostato su SOFTWARE_MALICIOUS o NETWORK_MALICIOUS |
| query_details | security_result.detection_fields | Mappato come coppia chiave-valore |
| affected_machine_count | security_result.detection_fields | Mappato come coppia chiave-valore |
| link_to_malop | security_result.detection_fields | Mappato come coppia chiave-valore |
| context_label | security_result.detection_fields | Mappato come coppia chiave-valore |
| old_state_label | security_result.detection_fields | Mappato come coppia chiave-valore |
| new_state_label | security_result.detection_fields | Mappato come coppia chiave-valore |
| investigation_label | security_result.detection_fields | Mappato come coppia chiave-valore |
| event_id_label | security_result.detection_fields | Mappato come coppia chiave-valore |
| malop_activity_type_label | security_result.detection_fields | Mappato come coppia chiave-valore |
| malop_suspect_label | security_result.detection_fields | Mappato come coppia chiave-valore |
| malop_key_suspicion_label | security_result.detection_fields | Mappato come coppia chiave-valore |
| device_custom_date_label | security_result.detection_fields | Mappato come coppia chiave-valore |
| device_custom_date2_label | security_result.detection_fields | Mappato come coppia chiave-valore |
| device_custom_date3_label | security_result.detection_fields | Mappato come coppia chiave-valore |
| guid_label | security_result.detection_fields | Mappato come coppia chiave-valore |
| displayName_label | security_result.detection_fields | Mappato come coppia chiave-valore |
| pylumId_label | security_result.detection_fields | Mappato come coppia chiave-valore |
| connected_label | security_result.detection_fields | Mappato come coppia chiave-valore |
| isolated_label | security_result.detection_fields | Mappato come coppia chiave-valore |
| osType_label | security_result.detection_fields | Mappato come coppia chiave-valore |
| admin_label | security_result.detection_fields | Mappato come coppia chiave-valore |
| domainUser_label | security_result.detection_fields | Mappato come coppia chiave-valore |
| localSystem_label | security_result.detection_fields | Mappato come coppia chiave-valore |
| descrizione | security_result.description | Concatenato con decision_feature, malop_status, privileges, passwordAgeDays, elementType, status, score, detectionValue, detectionValueType, detectionEngine |
| decision_feature | security_result.description | Concatenato nella descrizione |
| malop_status | security_result.description | Concatenato nella descrizione |
| privilegi | security_result.description | Concatenato nella descrizione |
| passwordAgeDays | security_result.description | Concatenato nella descrizione |
| elementType | security_result.description | Concatenato nella descrizione |
| stato | security_result.description | Concatenato nella descrizione |
| punteggio | security_result.description | Concatenato nella descrizione |
| detectionValue | security_result.description | Concatenato nella descrizione |
| detectionValueType | security_result.description | Concatenato nella descrizione |
| detectionEngine | security_result.description | Concatenato nella descrizione |
| malop_data.malopPriority | security_result.priority | Mappato direttamente |
| malop_severity | security_result.severity | Mappato direttamente |
| security_severity | security_result.severity | Imposta CRITICAL se il valore è > 8, HIGH se è > 6, MEDIUM se è > 4, LOW se è > 1 |
| gravità | security_result.severity | Impostato su INFORMATIONAL se "Info", ERROR se "Error" o "High", MEDIUM se "Warning" o "Medium", CRITICAL se "Critical", LOW se "Low", UNKNOWN altrimenti |
| descrizione | security_result.summary | Mappato direttamente |
| tipo | security_result.summary | Fallback |
| malopId | security_result.threat_id | Mappato direttamente |
| malop_data.simpleValues.detectionType.values.0 | security_result.threat_name | Mappato direttamente |
| virusName | security_result.threat_name | Fallback |
| stato | security_result.threat_status | Impostato su ACTIVE se il valore è "Active", altrimenti FALSE_POSITIVE |
| malop_url | security_result.url_back_to_product | Mappato direttamente |
| machineName | target.asset.hostname | Mappato direttamente |
| affectedMachine | target.asset.hostname | Fallback |
| dvchost | target.asset.hostname | Fallback |
| Sensor.serverName | target.asset.hostname | Fallback |
| server.ip | target.asset.ip | Mappato direttamente |
| Sensor.serverIp | target.asset.ip | Fallback |
| malop_process.simpleValues.calculatedName.values.0 | target.file.full_path | Mappato direttamente |
| malop_connection.elementValues.ownerProcess.elementValues.0.name | target.file.full_path | Fallback |
| nome | target.file.full_path | Fallback |
| malwareDataModel_filePath | target.file.full_path | Fallback |
| malop_process.simpleValues.imageFile.md5String.values.0 | target.file.md5 | Mappato direttamente |
| nome | target.file.names | Mappato direttamente |
| machineName | target.hostname | Mappato direttamente |
| affectedMachine | target.hostname | Fallback |
| dvchost | target.hostname | Fallback |
| Sensor.serverName | target.hostname | Fallback |
| server.ip | target.ip | Mappato direttamente |
| Sensor.serverIp | target.ip | Fallback |
| malop_connection.simpleValues.remoteAddressCountryName.values.0 | target.location.country_or_region | Mappato direttamente |
| Sensor.privateServerIp | target.nat_ip | Mappato direttamente |
| malop_connection.simpleValues.remotePort.values.0 | target.port | Convertito in numero intero |
| malop_process.simpleValues.calculatedName.values.0 | target.process.file.full_path | Mappato direttamente |
| malop_process.elementValues.self.elementValues.0.guid | target.process.pid | Mappato direttamente |
| malop_url | target.url | Mappato direttamente |
| (statico) | metadata.product_name | Impostato su "Cybereason" |
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.