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 le norme.
- Cerca la norma 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
Esistono due diversi punti di accesso per configurare i feed nella piattaforma Google SecOps:
- Impostazioni SIEM > Feed
Hub dei contenuti > Pacchetti di contenuti
Configura i feed da Impostazioni SIEM > 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 come Tipo di origine.
- Seleziona Cato Networks come Tipo di log.
- Fai clic su Avanti.
Specifica i valori per i seguenti parametri di input:
- Region (Regione): la regione in cui si trova il bucket Amazon S3.
- 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.
- L'URI è una: seleziona Directory o Directory che include sottodirectory.
- Opzioni di eliminazione dell'origine: seleziona l'opzione di eliminazione in base alle tue preferenze.
- ID chiave di accesso: la chiave di accesso utente con accesso al bucket S3.
- Chiave di accesso segreta: la chiave segreta dell'utente con accesso al bucket S3.
Fai clic su Avanti.
Controlla la nuova configurazione del feed nella schermata Finalizza e poi fai clic su Invia.
Configurare i feed dall'hub dei contenuti
Specifica i valori per i seguenti campi:
Region (Regione): la regione in cui si trova il bucket Amazon S3.
- 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.
- L'URI è una: seleziona Directory o Directory che include sottodirectory.
- Opzioni di eliminazione dell'origine: seleziona l'opzione di eliminazione in base alle tue preferenze.
- ID chiave di accesso: la chiave di accesso utente con accesso al bucket S3.
- Chiave di accesso segreta: la chiave segreta dell'utente con accesso al bucket S3.
- URI S3: l'URI del bucket (il formato deve essere
Opzioni avanzate
- Nome feed: un valore precompilato che identifica il feed.
- Tipo di origine: metodo utilizzato per raccogliere i log in Google SecOps.
- Spazio dei nomi dell'asset: lo spazio dei nomi associato al feed.
- Etichette di importazione: etichette applicate a tutti gli eventi di questo feed.
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.