Raccogliere i log di Cato Networks
Questo documento spiega come importare i log di Cato Networks in Google Security Operations utilizzando AWS S3. Il parser inizializza innanzitutto un insieme di campi con stringhe vuote e poi analizza i log di Cato Networks in formato JSON. Dopodiché, mappa i campi estratti con i campi corrispondenti nel modello Unified Data Model (UDM) di Google SecOps, gestendo diversi tipi di eventi e arricchendo i dati con un contesto aggiuntivo.
Prima di iniziare
Assicurati di soddisfare i seguenti prerequisiti:
- Istanza Google SecOps
- Accesso con privilegi ad AWS S3, AWS IAM
- Accesso con privilegi a Cato Networks
Configura AWS IAM e il bucket S3
- Crea un bucket Amazon S3 seguendo questa guida utente: Creazione di un bucket
- Salva il nome e la regione del bucket per riferimento futuro.
- Crea un utente seguendo questa guida utente: Creazione di un utente IAM.
- Seleziona l'utente creato.
- Seleziona la scheda Credenziali di sicurezza.
- Fai clic su Crea chiave di accesso nella sezione Chiavi di accesso.
- Seleziona Servizio di terze parti come Caso d'uso.
- Fai clic su Avanti.
- (Facoltativo) Aggiungi un tag di descrizione.
- Fai clic su Crea chiave di accesso.
- Fai clic su Scarica file CSV per salvare la chiave di accesso e la chiave di accesso segreta per riferimento futuro.
- Fai clic su Fine.
- Seleziona la scheda Autorizzazioni.
- Fai clic su Aggiungi autorizzazioni nella sezione Criteri per le autorizzazioni.
- Seleziona Aggiungi autorizzazioni.
- Seleziona Allega direttamente i criteri.
- Cerca la policy AmazonS3FullAccess e selezionala.
- Fai clic su Avanti.
- Fai clic su Aggiungi autorizzazioni.
Configura un nuovo criterio IAM per il bucket S3 per attivare i caricamenti di dati
- In Policy, fai clic sulla scheda JSON.
Modifica il seguente JSON, sostituisci
<bucket name>con il tuo bucket S3 e poi incollalo nella scheda.{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::<bucket name>" ] }, { "Sid": "", "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": [ "arn:aws:s3:::<bucket name>/*" ] } ] }Fai clic su Crea criterio.
Configura un nuovo ruolo IAM con l'ARN di Cato
Nella schermata Seleziona entità attendibile, seleziona Policy di attendibilità personalizzata e aggiungi l'ARN di Cato al ruolo: arn:aws:iam::428465470022:role/cato-events-integration
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Statement1", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::428465470022:role/cato-events-integration" }, "Action": "sts:AssumeRole" } ] }Fai clic su Avanti.
Nella schermata Aggiungi autorizzazioni, collega il criterio che hai creato in precedenza al ruolo.
Fai clic su Avanti.
Inserisci il Nome ruolo e fai clic su Crea ruolo.
Configura l'integrazione di eventi e S3 di Cato Networks
- Accedi alla UI web di Cato Networks.
- Vai a Risorse > Integrazioni eventi.
- Fai clic su Abilita integrazione con gli eventi Cato.
- Fai clic su New (Nuovo).
- Fornisci i seguenti dettagli di configurazione:
- Inserisci il nome dell'integrazione.
- Nome bucket: nome identico del bucket S3.
- Cartella: nome identico per il percorso della cartella all'interno del bucket S3 (se necessario).
- Regione: la stessa regione del bucket S3.
- ARN ruolo: copia e incolla l'ARN del ruolo per il bucket S3.
- (Facoltativo) Definisci le impostazioni del filtro per gli eventi caricati nel bucket S3. Quando definisci più filtri, esiste una relazione AND e vengono caricati gli eventi che corrispondono a tutti i filtri.
- Fai clic su Applica.
Configurare i feed
Per configurare un feed:
- Vai a Impostazioni SIEM > Feed.
- Fai clic su Aggiungi nuovo feed.
- Nella pagina successiva, fai clic su Configura un singolo feed.
- Nel campo Nome feed, inserisci un nome per il feed (ad esempio,
Cato Logs). - Seleziona Amazon S3 V2 come Tipo di origine.
- Seleziona Cato Networks come Tipo di log.
- Fai clic su Avanti.
Specifica i valori per i seguenti parametri di input:
URI S3: l'URI del bucket (il formato deve essere
s3://<your-log-bucket-name>). Sostituisci quanto segue:your-log-bucket-name: il nome del bucket.
Opzioni di eliminazione dell'origine: seleziona l'opzione di eliminazione in base alle tue preferenze.
Fai clic su Avanti.
Controlla la nuova configurazione del feed nella schermata Finalizza e poi fai clic su Invia.
Tabella di mappatura UDM
| Campo log | Mappatura UDM | Logic |
|---|---|---|
| account_id | target.user.userid | Il valore di questo campo viene estratto dal campo account_id. |
| azione | additional.fields.value.string_value | Il valore di questo campo viene estratto dal campo action. |
| app_stack | additional.fields.value.list_value.values.string_value | Il valore di questo campo viene estratto dal campo app_stack. |
| applicazione | principal.application | Il valore di questo campo viene estratto dal campo application. |
| categorie | additional.fields.value.list_value.values.string_value | Il valore di questo campo viene estratto dal campo categories. |
| clientIP | principal.ip, principal.asset.ip | Il valore di questo campo viene estratto dal campo clientIP. |
| creationTime | Questo campo viene utilizzato per calcolare il timestamp dell'evento. | |
| custom_categories | additional.fields.value.list_value.values.string_value | Il valore di questo campo viene estratto dal campo custom_categories. |
| dest_country | target.location.country_or_region | Il valore di questo campo viene estratto dal campo dest_country. |
| dest_country_code | target.resource.attribute.labels.value | Il valore di questo campo viene estratto dal campo dest_country_code. |
| dest_ip | target.ip, target.asset.ip | Il valore di questo campo viene estratto dal campo dest_ip. |
| dest_port | target.port | Il valore di questo campo viene estratto dal campo dest_port. |
| destinationCountry | target.location.country_or_region | Il valore di questo campo viene estratto dal campo destinationCountry. |
| destinationIp | target.ip, target.asset.ip | Il valore di questo campo viene estratto dal campo destinationIp. |
| destinationName | target.hostname, target.asset.hostname | Il valore di questo campo viene estratto dal campo destinationName. |
| device_name | network.dhcp.client_hostname | Il valore di questo campo viene estratto dal campo device_name. |
| dns_name | additional.fields.value.string_value | Il valore di questo campo viene estratto dal campo dns_name. |
| event_count | additional.fields.value.string_value | Il valore di questo campo viene estratto dal campo event_count. |
| event_sub_type | metadata.description | Il valore di questo campo viene estratto dal campo event_sub_type. |
| fieldsMap.ISP_name | additional.fields.value.string_value | Il valore di questo campo viene estratto dal campo fieldsMap.ISP_name. |
| fieldsMap.action | security_result.action_details | Il valore di questo campo viene estratto dal campo fieldsMap.action. |
| fieldsMap.categories | security_result.category_details | Il valore di questo campo viene estratto dal campo fieldsMap.categories. |
| fieldsMap.dest_country | target.location.country_or_region | Il valore di questo campo viene estratto dal campo fieldsMap.dest_country. |
| fieldsMap.dest_ip | target.ip, target.asset.ip | Il valore di questo campo viene estratto dal campo fieldsMap.dest_ip. |
| fieldsMap.dest_port | principal.port | Il valore di questo campo viene estratto dal campo fieldsMap.dest_port. |
| fieldsMap.domain_name | principal.administrative_domain | Il valore di questo campo viene estratto dal campo fieldsMap.domain_name. |
| fieldsMap.event_sub_type | metadata.description | Il valore di questo campo viene estratto dal campo fieldsMap.event_sub_type. |
| fieldsMap.event_type | metadata.product_event_type | Il valore di questo campo viene estratto dal campo fieldsMap.event_type. |
| fieldsMap.ip_protocol | network.ip_protocol | Il valore di questo campo viene estratto dal campo fieldsMap.ip_protocol. |
| fieldsMap.os_type | Questo campo viene utilizzato per determinare il sistema operativo del principal. | |
| fieldsMap.pop_name | additional.fields.value.string_value | Il valore di questo campo viene estratto dal campo fieldsMap.pop_name. |
| fieldsMap.rule_id | security_result.rule_id | Il valore di questo campo viene estratto dal campo fieldsMap.rule_id. |
| fieldsMap.rule_name | security_result.rule_name | Il valore di questo campo viene estratto dal campo fieldsMap.rule_name. |
| fieldsMap.src_ip | principal.ip, principal.asset.ip | Il valore di questo campo viene estratto dal campo fieldsMap.src_ip. |
| fieldsMap.src_isp_ip | src.ip, src.asset.ip | Il valore di questo campo viene estratto dal campo fieldsMap.src_isp_ip. |
| fieldsMap.time | Questo campo viene utilizzato per calcolare il timestamp dell'evento. | |
| file_hash | target.file.sha256 | Il valore di questo campo viene estratto dal campo file_hash. |
| file_name | target.file.full_path | Il valore di questo campo viene estratto dal campo file_name. |
| file_size | target.file.size | Il valore di questo campo viene estratto dal campo file_size. |
| http_host_name | principal.hostname, principal.asset.hostname | Il valore di questo campo viene estratto dal campo http_host_name. |
| insertionDate | additional.fields.value.string_value | Il valore di questo campo viene estratto dal campo insertionDate. |
| internalId | additional.fields.value.string_value | Il valore di questo campo viene estratto dal campo internalId. |
| ip_protocol | network.ip_protocol | Il valore di questo campo viene estratto dal campo ip_protocol. |
| is_sanctioned_app | security_result.detection_fields.value | Il valore di questo campo viene estratto dal campo is_sanctioned_app. |
| os_type | principal.platform | Il valore di questo campo viene estratto dal campo os_type. |
| pop_name | Questo campo viene utilizzato per compilare il campo fieldsMap.pop_name. |
|
| prettyType | metadata.product_event_type | Il valore di questo campo viene estratto dal campo prettyType. |
| regola | additional.fields.value.string_value | Il valore di questo campo viene estratto dal campo rule. |
| rule_id | security_result.rule_id | Il valore di questo campo viene estratto dal campo rule_id. |
| rule_name | security_result.rule_name | Il valore di questo campo viene estratto dal campo rule_name. |
| server_port | target.port | Il valore di questo campo viene estratto dal campo server_port. |
| gravità | security_result.severity_details | Il valore di questo campo viene estratto dal campo severity. |
| sourceCountry | principal.location.country_or_region | Il valore di questo campo viene estratto dal campo sourceCountry. |
| sourceInternalIp | principal.ip | Il valore di questo campo viene estratto dal campo sourceInternalIp. |
| sourceIp | src.ip, src.asset.ip | Il valore di questo campo viene estratto dal campo sourceIp. |
| sourceName | principal.user.user_display_name | Il valore di questo campo viene estratto dal campo sourceName. |
| sport | principal.port | Il valore di questo campo viene estratto dal campo sport. |
| src_country | Questo campo viene utilizzato per compilare il campo sourceCountry. |
|
| src_country_code | principal.resource.attribute.labels.value | Il valore di questo campo viene estratto dal campo src_country_code. |
| src_ip | principal.ip, principal.asset.ip | Il valore di questo campo viene estratto dal campo src_ip. |
| src_is_site_or_vpn | security_result.detection_fields.value | Il valore di questo campo viene estratto dal campo src_is_site_or_vpn. |
| src_isp_ip | src.ip, src.asset.ip | Il valore di questo campo viene estratto dal campo src_isp_ip. |
| src_site | additional.fields.value.string_value | Il valore di questo campo viene estratto dal campo src_site. |
| src_site_name | additional.fields.value.string_value | Il valore di questo campo viene estratto dal campo src_site_name. |
| start | Questo campo viene utilizzato per calcolare il timestamp dell'evento. | |
| subnet_name | additional.fields.value.string_value | Il valore di questo campo viene estratto dal campo subnet_name. |
| tempo | Questo campo viene utilizzato per calcolare il timestamp dell'evento. | |
| time_str | Questo campo viene utilizzato per calcolare il timestamp dell'evento. | |
| tunnel_host_logon_names | principal.user.userid | Il valore di questo campo viene estratto dal campo tunnel_host_logon_names. |
| URL | target.url | Il valore di questo campo viene estratto dal campo url. |
| user_id | principal.user.userid | Il valore di questo campo viene estratto dal campo user_id. |
| metadata.event_type | Il valore di questo campo è impostato su GENERIC_EVENT e può essere sostituito con NETWORK_CONNECTION, NETWORK_DHCP o NETWORK_HTTP in base all'evento. |
|
| metadata.log_type | Il valore di questo campo è impostato su CATO_NETWORKS. |
|
| metadata.product_name | Il valore di questo campo è impostato su SASE. |
|
| metadata.vendor_name | Il valore di questo campo è impostato su Cato Networks. |
|
| network.application_protocol | Il valore di questo campo è impostato su DHCP per gli eventi Connected. |
|
| network.dhcp.chaddr | Il valore di questo campo è impostato su 01:23:45:ab:cd:ef per gli eventi Connected. |
|
| network.dhcp.lease_time_seconds | Il valore di questo campo è impostato su 86400 per gli eventi Connected. |
|
| network.dhcp.opcode | Il valore di questo campo è impostato su BOOTREPLY per gli eventi Connected. |
|
| network.dhcp.type | Il valore di questo campo è impostato su ACK per gli eventi Connected. |
|
| network.direction | Il valore di questo campo è impostato su OUTBOUND per gli eventi Anti Malware e URL Filtering. |
|
| security_result.action | Il valore di questo campo è impostato su ALLOW se il campo action non è BLOCK, altrimenti è impostato su BLOCK. |
|
| event_type | metadata.description | Il valore di questo campo viene estratto dal campo event_type. |
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.