Integrare il file CSV con Google SecOps
Questo documento descrive come integrare CSV con Google Security Operations.
Questo documento spiega come integrare CSV con Google Security Operations.
Casi d'uso
In Google SecOps, l'integrazione CSV supporta i seguenti casi d'uso:
Ricerca di minacce basata su file: cerca rapidamente stringhe specifiche o entità dannose nei file di log CSV locali o remoti per identificare le minacce registrate in passato.
Generazione automatica di avvisi: inserisci automaticamente i record dai sistemi legacy che restituiscono dati in formato CSV, convertendoli in avvisi azionabili con mappatura personalizzata della gravità.
Portabilità e generazione di report dei dati: trasforma in modo programmatico i risultati JSON di altre azioni del playbook in formato CSV per semplificare l'esportazione in strumenti di generazione di report esterni o nell'archiviazione locale.
Arricchimento automatico delle entità: utilizza i file CSV come fonte locale di intelligence sulle minacce per arricchire automaticamente le entità e contrassegnarle come sospette durante l'esecuzione del playbook.
Sincronizzazione dei dati tra sistemi diversi: elabora in modo efficiente i file con codifiche dei caratteri diverse, ad esempio i formati Excel legacy, per garantire la coerenza dei dati in strumenti di sicurezza diversi.
Prima di iniziare
Prima di configurare l'integrazione in Google SecOps, verifica di disporre di quanto segue:
Funzionalità della piattaforma interna: questa integrazione fornisce funzionalità di elaborazione dei file integrate e non richiede chiavi API o credenziali di terze parti esterne per l'autenticazione.
Autorizzazioni di accesso al file system: se viene utilizzato un agente remoto, l'integrazione richiede autorizzazioni specifiche per accedere e gestire i file sul sistema host. Esegui questo comando sulla macchina dell'agente per concedere le autorizzazioni necessarie per la directory di destinazione:
chown scripting:scripting "directory_path"
Parametri di integrazione
L'integrazione CSV richiede i seguenti parametri:
| Nome visualizzato del parametro | Tipo | Valore predefinito | È obbligatorio | Descrizione |
|---|---|---|---|---|
| Nome istanza | Stringa | N/D | No | Nome dell'istanza per cui intendi configurare l'integrazione. |
| Descrizione | Stringa | N/D | No | Descrizione dell'istanza. |
| Esegui da remoto | Casella di controllo | Deselezionata | No | Seleziona il campo per eseguire l'integrazione configurata da remoto. Una volta selezionata, viene visualizzata l'opzione per selezionare l'utente remoto (agente). |
Per istruzioni su come configurare un'integrazione in Google SecOps, consulta Configurare le integrazioni.
Se necessario, potrai apportare modifiche in un secondo momento. Dopo aver configurato un'istanza di integrazione, puoi utilizzarla nei playbook. Per saperne di più su come configurare e supportare più istanze, consulta Supporto di più istanze.
Azioni
Per ulteriori informazioni sulle azioni, vedi Rispondere alle azioni in attesa dalla tua scrivania e Eseguire un'azione manuale.
Salva JSON in CSV
Salvare un oggetto JSON in formato CSV.
Parametri
| Nome parametro | Tipo | Valore predefinito | Obbligatorio | Descrizione |
|---|---|---|---|---|
| Oggetto JSON | JSON | N/D | Sì | Specifica l'oggetto JSON da salvare come CSV. |
| Sovrascrivi | Booleano | Falso | No | Se abilitata, l'azione sovrascrive il file esistente. |
| Percorso file | Stringa | N/D | Sì | Specifica il percorso assoluto del file per il file CSV appena creato. Se viene fornito solo il nome del file, l'azione lo memorizza in una cartella /tmp/. |
Run On
N/D
Risultati dell'azione
Risultato script
| Nome del risultato dello script | Valore |
|---|---|
| is_success | Vero/Falso |
Risultato JSON
{"filepath": "{file name}"}
Bacheca casi
L'azione fornisce i seguenti messaggi di output:
| Messaggio di output | Descrizione del messaggio |
|---|---|
| L'oggetto JSON è stato trasformato con successo e salvato nel percorso file specificato. | L'azione è stata eseguita correttamente. |
| Impossibile trovare il file nel percorso specificato. | Il file non esiste. |
| Non è stata rilevata alcuna attività per gli account di servizio forniti in Google Cloud Policy Intelligence | L'operazione non è riuscita a trovare dati per nessuno degli account di servizio elencati. |
| Errore durante l'esecuzione dell'azione "Salva JSON in CSV". | L'azione ha restituito un errore. Controlla la connessione al server, i parametri di input o le credenziali. |
Ricerca per stringa
Ricerca di stringhe nei file CSV.
Parametri
| Nome parametro | Tipo | Valore predefinito | È obbligatorio | Descrizione |
|---|---|---|---|---|
| Percorso CSV | Stringa | N/D | Sì | Specificare il percorso del file CSV o il percorso della cartella che contiene tutti i file CSV. Se viene specificata una cartella, l'azione scorrerà tutti i file CSV presenti al suo interno. |
| Colonna CSV | Stringa | N/D | No | Specifica un elenco separato da virgole di colonne che possono contenere informazioni sulle entità. Se non viene fornito alcun valore, l'azione eseguirà la ricerca in tutte le colonne. |
| Giorni a ritroso | Stringa | 10 | No | Specifica quanti giorni indietro elaborare i file CSV. |
| Valore di ricerca | Stringa | N/D | No | Specifica una stringa da cercare. Se l'opzione "Cerca più stringhe" è abilitata, questo parametro viene trattato come un elenco di stringhe separate da virgole da ricercare. |
| Restituisci solo la prima riga. | Casella di controllo | Deselezionata | No | Se abilitata, l'azione restituirà solo 1 riga nel primo file corrispondente all'entità. |
| Tipi di codifica dei file | Stringa | utf-8, latin-1, iso-8859-1 | Sì | Un elenco separato da virgole dei tipi di codifica CSV utilizzati per decodificare i file CSV, ad esempio utf-8, latin-1, iso-8859-1, utf-16... L'ordine in cui vengono forniti i tipi di codifica determina l'ordine in cui vengono utilizzati per decodificare i file.Ad esempio, (dall'esempio precedente) UTF-8 ha la priorità più alta e verrà utilizzato principalmente per decodificare tutti i file. Se esiste un file CSV che utilizza un'altra codifica, verrà utilizzata la codifica successiva nell'ordine, ovvero Latin-1, e così via, fino all'ultima codifica. |
| Ricerca in più stringhe | Casella di controllo | Deselezionata | No | Se abilitata, la funzione "Cerca valore" funzionerà come un elenco di valori separati da virgole, anziché come una singola stringa. |
| Campi da restituire | CSV | N/D | No | Specificare un elenco di valori separati da virgole che devono essere restituiti. |
Casi d'uso
Ricerca di stringhe nei file CSV.
Run On
Questa azione viene eseguita su tutte le entità.
Risultati dell'azione
Risultato script
| Nome del risultato dello script | Opzioni di valore | Esempio |
|---|---|---|
| count_rows_csv | Un numero qualsiasi di righe | count_rows += 1 |
Risultato JSON
[
{
"EntityResult": {
"Field2": "Value2",
"Field3": "Value3",
"Field1": "Value1",
"Field4": "Value4",
"Field5": "Value5"
},
"Entity": "host"
}, {
"EntityResult": {
"Field2": "Value2",
"Field3": "Value3",
"Field1": "Value1",
"Field4": "Value4",
"Field5": "Value5"
}, "Entity": "1.1.1.1"
}
]
Bacheca casi
| Tipo di risultato | Valore / Descrizione | Tipo |
|---|---|---|
| Messaggio di output* | Per i record trovati: "Informazioni trovate con successo sulle seguenti stringhe: \n (stringa_di_ricerca)" Se non vengono trovati record per alcune stringhe: "L'azione non è stata in grado di trovare informazioni sulle seguenti stringhe:" Se non si ottiene alcun risultato per ogni record: "Non sono state trovate informazioni per gli elementi forniti." Se tutte le codifiche non sono valide: "Errore durante l'esecuzione dell'azione "Ricerca CSV per stringa". Le codifiche fornite non sono valide. Controlla l'ortografia." |
Generale |
Ricerca per entità
Cerca entità nei file CSV e arricchiscile.
Parametri
| Nome parametro | Tipo | Valore predefinito | È obbligatorio | Descrizione |
|---|---|---|---|---|
| Percorso CSV | Stringa | N/D | Sì | Specificare il percorso del file CSV o il percorso della cartella che contiene tutti i file CSV. Se viene specificata una cartella, l'azione scorrerà tutti i file CSV presenti al suo interno. |
| Colonna CSV | Stringa | N/D | Sì | Specifica un elenco separato da virgole di colonne che possono contenere informazioni sulle entità. Se non viene fornito alcun valore, l'azione eseguirà la ricerca in tutte le colonne. |
| Giorni precedenti | Stringa | 10 | Sì | Specifica quanti giorni indietro elaborare i file CSV. |
| Contrassegna come sospetto | Casella di controllo | Deselezionata | No | Se abilitata, l'azione contrassegnerà l'entità come sospetta, se è stata trovata nel file. |
| Restituisci solo la prima riga. | Casella di controllo | Deselezionata | No | Se abilitata, l'azione restituirà solo 1 riga nel primo file corrispondente all'entità. |
| Tipi di codifica dei file | Stringa | utf-8, latin-1, iso-8859-1 | Sì | Un elenco separato da virgole dei tipi di codifica CSV utilizzati per decodificare i file CSV, ad esempio utf-8, latin-1, iso-8859-1, utf-16... L'ordine in cui vengono forniti i tipi di codifica determina l'ordine in cui vengono utilizzati per decodificare i file.Ad esempio, (dall'esempio precedente) UTF-8 ha la priorità più alta e verrà utilizzato principalmente per decodificare tutti i file. Se esiste un file CSV che utilizza un'altra codifica, verrà utilizzata la codifica successiva nell'ordine, ovvero Latin-1, e così via, fino all'ultima codifica. |
| Arricchisci entità | Casella di controllo | Selezionata | No | Se attivata, l'azione aggiungerà le informazioni dal file CSV e le inserirà nella tabella di arricchimento dell'entità. |
| Crea approfondimento | Casella di controllo | Selezionata | No | Se abilitata, l'azione creerà un insight se l'entità viene trovata nel file. |
| Campi da restituire | CSV | N/D | No | Specificare un elenco di valori separati da virgole che devono essere restituiti. |
Run On
Questa azione viene eseguita su tutte le entità.
Risultati dell'azione
Risultato script
| Nome del risultato dello script | Opzioni di valore | Esempio |
|---|---|---|
| count_rows_csv | Un numero qualsiasi di righe | count_rows += 1 |
Risultato JSON
[
{
"EntityResult": [{
"domain": "example.dom",
"fileHash": "cbbc5aea3d4c7ec193aa2ff3b52df36ebb12338b18c9bb53fc4896115efaf78d",
"reporter": "Symantec Antivirus",
"app": "Arcsight",
"id": "1011",
"eventTime": "9/4/2017 10:00",
"antivirusAction": "blocked",
"virusName": "ECAT",
"rule": "malicious",
"eventName": "Virus detected",
"User": "Ziv",
"eventHostName": "WS-ZivDevComp",
"File Source Path": "C:\\\\Users\\\\Default\\\\Desktop\\\\stringTimeRaw.csv",
"machineAddress": "192.168.11.11"
}, {
"domain": "SmartCompany.dom",
"fileHash": "cbbc5aea3d4c7ec193aa2ff3b52df36ebb12338b18c9bb53fc4896115efaf78d",
"reporter": "Symantec Antivirus",
"app": "ESM",
"id": "1012",
"eventTime": "9/4/2017 10:00",
"antivirusAction": "allowed",
"virusName": "ECAT",
"rule": "malicious",
"eventName": "Virus detected",
"User": "GG",
"eventHostName": "WS-GGDevComp",
"File Source Path": "C:\\\\Users\\\\Default\\\\Desktop\\\\stringTimeRaw.csv",
"machineAddress": "192.168.11.11"
}],
"Entity": "192.168.11.11"
}
]
Bacheca casi
| Tipo di risultato | Valore / Descrizione | Tipo |
|---|---|---|
| Messaggio di output* | Per le entità trovate: "Informazioni trovate con successo sulle seguenti entità: \n (identificativo entità)" Per le entità non trovate: "Non sono state trovate informazioni sulle seguenti entità: \n (identificativoentità)" Se non si trova alcuna informazione per ogni entità: "Non sono state trovate informazioni per le entità fornite." Se tutte le codifiche non sono valide: "Errore durante l'esecuzione dell'azione "Ricerca CSV tramite stringa". Le codifiche fornite non sono valide. Controlla l'ortografia." |
Generale |
Dindin
Testa la connettività.
Parametri
N/D
Run On
Questa azione viene eseguita su tutte le entità.
Risultati dell'azione
Risultato script
N/D
Risultato JSON
N/A
Connettori
Connettore CSV
Recupera i dati dai file CSV presenti in una cartella specifica e convertili in avvisi per il sistema Google SecOps.
Questo argomento illustra il meccanismo e la configurazione con cui Google SecOps genera file CSV, insieme ai flussi di lavoro supportati e alle azioni eseguite all'interno della piattaforma.
Casi d'uso
Un cliente ha file CSV provenienti da un sistema e i file potrebbero avere codifiche diverse.
* Add support for comma-separated encodings in the Encoding field in the
connector.
* The connector should try the different encodings by their order in
the field (first encoding - highest priority, last - lowest
priority) with try/except. If no matching encoding was found -
consider the file as an error and notify.
* Put a default value for the fields - a list of most common CSV
encodings by priority (utf8, latin1, and iso...)
Accesso ai file CSV
Accesso di Google SecOps ai file CSV: configurare una cartella per i file CSV.
Inoltro dei record CSV a Google SecOps
Lavorare con i record dei file CSV
Quando si configura Google SecOps per utilizzare i file CSV come origine degli avvisi, verrà richiesto di specificare una cartella da cui prelevare i file CSV. Google SecOps recupererà tutti i record presenti in un file CSV e li inoltrerà per la traduzione e la contestualizzazione come avvisi relativi ai casi.
Come mappare la gravità nel connettore
Per mappare la gravità è necessario specificare quale campo deve essere utilizzato per ottenere il valore della gravità nel parametro "Nome campo gravità". Nella risposta è possibile ottenere 3 tipi di valori: numeri interi, numeri in virgola mobile e stringhe. Per i numeri interi e a virgola mobile non è necessaria alcuna configurazione aggiuntiva. Il connettore leggerà questi valori e li mapperà in base agli standard Google SecOps. Un breve riepilogo di come vengono mappati i valori interi:
- 100 - Critico
- 100 > x >= 80 Alto
- 80 > x >=60 Medio
- 60 > x >=40 Basso
- 40 > x Informazioni
Se nella risposta si lavora con stringhe, è necessaria una configurazione aggiuntiva. Nella cartella in cui si trovano gli script del connettore, troverai un file di configurazione denominato severity_map_config.json. Questo file definisce le regole di mappatura per la gravità.
Inizialmente, il file avrà questo aspetto: 1 2 3 { "Default": 50 }
Immaginiamo una situazione in cui i valori necessari si trovano in event.severity. event.severity può contenere i seguenti valori: "Malicious", "Benign", "Unknown".
Innanzitutto, dobbiamo specificare nel parametro "Nome campo gravità" che utilizzeremo event.severity. In secondo luogo, dobbiamo aggiornare il file di configurazione. Dopo le modifiche, il file severity_map_config.json dovrebbe apparire in questo modo: 1 2 3 4 5 6 7 8 {
"event.severity": { "Malicious": 100, "Unknown": 60, "Benign": -1 }, "Default":
50 }
Ora, quando il connettore riceverà un evento con event.severity = "Dannoso", gli verrà assegnata una gravità critica.
Configurare il connettore CSV in Google SecOps
Per istruzioni dettagliate su come configurare un connettore in Google SecOps, vedi Configurazione del connettore.
Parametri del connettore
Utilizza i seguenti parametri per configurare il connettore:
| Nome parametro | Tipo | Valore predefinito | È obbligatorio | Descrizione |
|---|---|---|---|---|
| Nome campo prodotto | Stringa | device_product | Sì | Il nome del campo utilizzato per determinare il prodotto del dispositivo. |
| Nome campo evento | Stringa | nome | No | Il nome del campo utilizzato per determinare il nome dell'evento (sottotipo). |
| Timeout dello script (secondi) | Stringa | 60 | Sì | Il limite di timeout (in secondi) per il processo Python che esegue lo script corrente. |
| Percorso della cartella CSV | Stringa | N/D | Sì | Percorso della cartella contenente tutti i file CSV da importare. |
| Limite CSV | Stringa | N/D | No | Quanti file CSV elaborare per ogni iterazione. |
| Nome del campo del generatore di regole | Stringa | N/D | No | Nome del campo che contiene informazioni sul generatore di regole. |
| Nome del campo temporale | Stringa | N/D | No | Nome del campo che contiene informazioni sull'ora dell'evento. |
| CSV Has Header | Casella di controllo | Selezionata | Sì | Indica se il file CSV ha un'intestazione. |
| Tipo di codifica dei file | Stringa | utf-8 | Sì | Imposta il tipo di codifica CSV, ad esempio iso-8859-1, latin1, utf-8, utf-16. |
| Nome del campo avviso | Stringa | N/D | No | Nome del campo che contiene informazioni sul nome dell'avviso. |
| Nome campo gravità | Stringa | N/D | No | Il nome del campo che contiene informazioni sulla gravità. |
Regole del connettore
Supporto proxy
Il connettore non supporta il proxy.
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.