Integrare VirusTotal con Google SecOps
Questo documento spiega come integrare VirusTotal con Google Security Operations (Google SecOps).
Versione integrazione: 39.0
Questa integrazione utilizza l'API VirusTotal v2.
Questa integrazione utilizza uno o più componenti open source. Puoi scaricare una copia compressa del codice sorgente completo di questa integrazione dal bucket Cloud Storage.
Prima di iniziare
Per utilizzare l'integrazione di VirusTotal, configura una chiave API.
Per configurare la chiave API, completa i seguenti passaggi:
- Accedi al portale VirusTotal.
- Sotto il tuo nome utente, fai clic su Chiave API.
- Copia la chiave API generata per utilizzarla nei parametri di integrazione.
- Fai clic su Salva.
Parametri di integrazione
L'integrazione di VirusTotal richiede i seguenti parametri:
Parametro | Descrizione |
---|---|
Api Key |
Obbligatorio. La chiave API per accedere a VirusTotal. |
Verify SSL |
Facoltativo. Se selezionata, l'integrazione convalida il certificato SSL quando si connette a VirusTotal. Non selezionato per impostazione predefinita. |
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 Supportare più istanze.
Azioni
Per maggiori informazioni sulle azioni, vedi Rispondere alle azioni in attesa dalla tua scrivania ed Eseguire un'azione manuale.
Ottieni report dominio
Utilizza l'azione Recupera report sul dominio per recuperare i report sul dominio da VirusTotal per le entità fornite e arricchire queste entità all'interno della piattaforma Google SecOps.
Questa azione viene eseguita sulle seguenti entità Google SecOps:
User
Hostname
Input azione
Nessuno.
Output dell'azione
L'azione Recupera report sul dominio fornisce i seguenti output:
Tipo di output dell'azione | Disponibilità |
---|---|
Allegato della bacheca casi | Non disponibile |
Link alla bacheca richieste | Non disponibile |
Tabella della bacheca casi | Non disponibile |
Tabella di arricchimento delle entità | Disponibile |
Risultato JSON | Disponibile |
Risultato dello script | Disponibile |
Tabella di arricchimento delle entità
L'azione Recupera report sul dominio può arricchire i seguenti campi:
Nome del campo di arricchimento | Logica applicabile |
---|---|
Forcepoint ThreatSeeker category |
Restituisce il valore se esiste nel risultato JSON. |
BitDefender domain info |
Restituisce il valore se esiste nel risultato JSON. |
Categories |
Restituisce il valore se esiste nel risultato JSON. |
BitDefender Category |
Restituisce il valore se esiste nel risultato JSON. |
Alexa Category |
Restituisce il valore se esiste nel risultato JSON. |
Alexa domain info |
Restituisce il valore se esiste nel risultato JSON. |
Websense ThreatSeeker category |
Restituisce il valore se esiste nel risultato JSON. |
TrendMicro category |
Restituisce il valore se esiste nel risultato JSON. |
Opera domain info |
Restituisce il valore se esiste nel risultato JSON. |
Webutation domain info |
Restituisce il valore se esiste nel risultato JSON. |
verbose_msg |
Restituisce il valore se esiste nel risultato JSON. |
whois |
Restituisce il valore se esiste nel risultato JSON. |
Risultato JSON
Il seguente esempio mostra l'output del risultato JSON ricevuto quando si utilizza l'azione Get Domain Report:
[
{
"EntityResult": {
"detected_downloaded_samples": [],
"undetected_downloaded_samples": [{
"date": "2018-08-08 22:48:28",
"positives": 0,
"sha256": "ef1955ae757c8b966c83248350331bd3a30f658ced11f387f8ebf05ab3368629",
"total": 59
}],
"resolutions": [{
"last_resolved": "2019-01-13 03:31:09",
"ip_address": "192.0.2.1"
}],
"Opera domain info": "The URL domain/host was seen to host badware at some point in time",
"domain_siblings": [],
"BitDefender domain info": "This URL domain/host was seen to host badware at some point in time",
"whois": "Domain Name: EXAMPLE.CO.IN, nUpdated Date: 2018-05-22T09:30:37Z, nCreation Date: 2003-06-23T14:02:33Z, nRegistry Expiry Date: 2019-06-23T14:02:33Z, nDomain Status: clientDeleteProhibited, nDomain Status: clientTransferProhibited, nDomain Status: clientUpdateProhibited, nRegistrant Country: US, nName Server: NS1.EXAMPLE.COM, nName Server: NS2.EXAMPLE.COM, nName Server: NS3.EXAMPLE.COM, nName Server: NS4.EXAMPLE.COM, nDNSSEC: unsigned",
"Alexa domain info": "example.co.in is one of the top 100 sites in the world and is in the Search_Engines category",
"verbose_msg": "Domain found in dataset",
"BitDefender category": "searchengines",
"undetected_referrer_samples": [{
"date": "2019-02-05 13:20:39",
"positives": 0,
"sha256": "3baf9f2a2d2b152193d2af602378b71e40d381e835b0aa3111851b2f29e64f38",
"total": 71
}],
"whois_timestamp": 1548379042,
"WOT domain info": {
"Vendor reliability": "Excellent",
"Child safety": "Excellent",
"Trustworthiness": "Excellent",
"Privacy": "Excellent"
},
"detected_referrer_samples": [{
"date": "2019-02-05 01:11:35",
"positives": 1,
"sha256": "097ea19b440441248b157698e2b23555cdf6117491b5f49f7ec8e492550cb02c",
"total": 70
}],
"Forcepoint ThreatSeeker category": "search engines and portals",
"Alexa category": "search_engines",
"detected_communicating_samples": [{
"date": "2019-01-28 23:58:13",
"positives": 30,
"sha256": "e65faa1283f8941d98dc23ff6822be228a24cb4489a5e5b01aeee749bf851658",
"total": 70
}],
"TrendMicro category": "search engines portals",
"categories": [
"searchengines", "search engines and portals"
],
"undetected_urls": [[
"http://example.co.in/example", "daed97b2c77f0f72c9e4ee45506e3e1bc4e34d7b8846246877a02779bb85dd5b", 0, 70, "2019-02-04 14:58:23"
]],
"response_code": 1,
"Webutation domain info": {
"Safety score": 100,
"Adult content": "no",
"Verdict": "safe"
},
"subdomains": [
"www.example.co.in"
],
"Websense ThreatSeeker category": "search engines and portals",
"detected_urls": [{
"url": "http://example.co.in/urlURL",
"positives": 2,
"total": 66,
"scan_date": "2018-01-13 00:38:35"
}],
"Alexa rank": 100,
"undetected_communicating_samples": [{
"date": "2018-11-17 03:19:28",
"positives": 0,
"sha256": "e2a6ab7d594490c62bd3bb508dc38d7191ad48977da4d8dcce08dcb8af0070e9",
"total": 68
}],
"pcaps": [
"97e4a17068ce3ed01ed1c25c3d263fc0145e5ecc53b7db6f2ba84496b53d4a65"
]},
"Entity": "example.co.in"
}
]
Risultato dello script
La tabella seguente elenca il valore dell'output del risultato dello script quando utilizzi l'azione Ottieni report sul dominio:
Nome del risultato dello script | Valore |
---|---|
is_success |
True o False |
Scansione hash
Utilizza l'azione Scansiona hash per scansionare gli hash dei file con VirusTotal, contrassegnare le entità come sospette e mostrare approfondimenti, se il punteggio di rischio corrisponde a una determinata soglia.
Questa azione viene eseguita sull'entità Google SecOps Filehash
.
Input azione
L'azione Scansiona hash richiede i seguenti parametri:
Parametro | Descrizione |
---|---|
Threshold |
Obbligatorio. La soglia per contrassegnare i rilevamenti come sospetti. Se i rilevamenti del motore dannoso raggiungono o superano la soglia impostata, l'azione contrassegna l'entità come sospetta. |
Rescan after days |
Facoltativo. Il numero di giorni dopo l'ultima data di scansione per eseguire nuovamente la scansione dell'entità. |
Output dell'azione
L'azione Scansiona hash fornisce i seguenti output:
Tipo di output dell'azione | Disponibilità |
---|---|
Allegato della bacheca casi | Non disponibile |
Link alla bacheca richieste | Non disponibile |
Tabella della bacheca casi | Non disponibile |
Tabella di arricchimento delle entità | Disponibile |
Insight | Disponibile |
Risultato JSON | Disponibile |
Risultato dello script | Disponibile |
Tabella di arricchimento delle entità
L'azione Scansiona hash può arricchire i seguenti campi:
Nome del campo di arricchimento | Logica applicabile |
---|---|
permalink |
Restituisce il valore se esiste nel risultato JSON. |
sha1 |
Restituisce il valore se esiste nel risultato JSON. |
resource |
Restituisce il valore se esiste nel risultato JSON. |
Scan date |
Restituisce il valore se esiste nel risultato JSON. |
Scan ID |
Restituisce il valore se esiste nel risultato JSON. |
verbose_msg |
Restituisce il valore se esiste nel risultato JSON. |
total |
Restituisce il valore se esiste nel risultato JSON. |
positives |
Restituisce il valore se esiste nel risultato JSON. |
sha256 |
Restituisce il valore se esiste nel risultato JSON. |
md5 |
Restituisce il valore se esiste nel risultato JSON. |
Detecting Engines |
Restituisce il valore se esiste nel risultato JSON. |
Insight
L'azione Scansiona hash può restituire le seguenti informazioni:
Gravità | Descrizione |
---|---|
Warn |
L'azione crea un approfondimento di avviso per informare sullo stato dannoso dell'hash arricchito. L'azione crea l'approfondimento solo quando il numero di motori rilevati è uguale o superiore alla soglia minima sospetta che hai impostato prima della scansione. |
Risultato JSON
Il seguente esempio mostra l'output del risultato JSON ricevuto quando si utilizza l'azione Scan Hash:
[
{
"EntityResult": {
"permalink": "https://www.virustotal.com/file/HASH/analysis/ANALYSIS_ID/",
"sha1": "3395856ce81f2b7382dee72602f798b642f14140",
"resource": "HASH",
"response_code": 1,
"scan_date": "2019-02-05 15:41:52",
"scan_id": "HASH-ANALYSIS_ID",
"verbose_msg": "Scan finished, information embedded",
"total": 60,
"positives": 54,
"sha256": "HASH",
"md5": "44d88612fea8a8f36de82e1278abb02f",
"scans": {
"Bkav": {
"detected": true,
"version": "192.0.2.1",
"result": "Trojan",
"update": "20190201"
},
"MicroWorld-eScan": {
"detected": true,
"version": "14.0.297.0",
"result": "Test-File",
"update": "20190205"
}}},
"Entity": "HASH"
}
]
Risultato dello script
La tabella seguente elenca il valore dell'output del risultato dello script quando utilizzi l'azione Scansiona hash:
Nome del risultato dello script | Valore |
---|---|
is_risky |
True o False |
Scansiona IP
Utilizza l'azione Scansiona IP per raccogliere le informazioni che VirusTotal ha visualizzato di recente su un IP specifico.
Questa azione viene eseguita sull'entità Google SecOps IP Address
.
Input azione
L'azione Scansiona IP richiede i seguenti parametri:
Parametro | Descrizione |
---|---|
Threshold |
Facoltativo. La soglia per contrassegnare un indirizzo IP come sospetto. Se i rilevamenti del motore dannoso raggiungono o superano la soglia impostata, l'azione contrassegna l'indirizzo IP come sospetto. Il valore predefinito è
|
Output dell'azione
L'azione Scansiona IP fornisce i seguenti output:
Tipo di output dell'azione | Disponibilità |
---|---|
Allegato della bacheca casi | Non disponibile |
Link alla bacheca richieste | Non disponibile |
Tabella della bacheca casi | Non disponibile |
Tabella di arricchimento delle entità | Disponibile |
Approfondimenti | Disponibile |
Risultato JSON | Disponibile |
Risultato dello script | Disponibile |
Tabella di arricchimento delle entità
L'azione Scansiona IP può arricchire i seguenti campi:
Nome del campo di arricchimento | Logica applicabile |
---|---|
Country |
Restituisce il valore se esiste nel risultato JSON. |
Related Domains |
Restituisce il valore se esiste nel risultato JSON. |
Last Scan Date |
Restituisce il valore se esiste nel risultato JSON. |
verbose_msg |
Restituisce il valore se esiste nel risultato JSON. |
Resolutions |
Restituisce il valore se esiste nel risultato JSON. |
Approfondimenti
L'azione Scansiona IP può restituire i seguenti approfondimenti:
Gravità | Descrizione |
---|---|
Warn |
L'azione crea un approfondimento di avviso per informare sullo stato dannoso dell'indirizzo IP arricchito. L'azione crea l'approfondimento solo quando il numero di motori rilevati è uguale o superiore alla soglia minima sospetta che hai impostato prima della scansione. |
Nome dell'approfondimento | Corpo |
---|---|
Entity Insight |
|
Risultato JSON
L'esempio seguente mostra l'output del risultato JSON ricevuto quando si utilizza l'azione Scansiona IP:
[
{
"EntityResult": {
"asn": 4436,
"undetected_urls": [[
"http://example.com", "2ed06796f95e7c1xxxxxbd68d81754acf535c999e901bfe2cf9c45612396f66", 0, 66, "2022-11-23 06:51:49"
]],
"undetected_downloaded_samples": [{
"date": "2018-07-09 07:53:30",
"positives": 0,
"sha256": "6a0bf66ddc73d7e64eb2ff0dd3512c5378c0c63c2ad4e13c0e1429fe",
"total": 60
}],
"country": "country",
"response_code": 1,
"as_owner": "Example, Inc.",
"verbose_msg": "IP address in dataset",
"detected_downloaded_samples": [{
"date": "2023-05-20 08:38:00",
"positives": 6,
"sha256": "9cf5c07c99c3342d83b241c25850da0bf231ee150cb962cab1e8399cb",
"total": 57
}],
"resolutions": [{
"last_resolved": "2023-05-13 00:00:00",
"hostname": "40515350444dff68-2f7735d5ad283fa41a203a082d9a8f25.example.com"
}],
"detected_urls": [{
"url": "http://example.com",
"positives": 2,
"total": 67,
"scan_date": "2023-05-20 07:16:45"
}]},
"Entity": "192.0.2.1"
}
]
Risultato dello script
La tabella seguente elenca il valore dell'output del risultato dello script quando utilizzi l'azione Scansiona IP:
Nome del risultato dello script | Valore |
---|---|
is_success |
True o False |
Scansione URL
Utilizza l'azione Scansiona URL per scansionare un URL con VirusTotal.
Questa azione viene eseguita sull'entità Google SecOps URL
.
Input azione
L'azione Scansiona URL richiede i seguenti parametri:
Parametro | Descrizione |
---|---|
Threshold |
Obbligatorio. La soglia per contrassegnare i rilevamenti come sospetti. Se i rilevamenti del motore dannoso raggiungono o superano la soglia impostata, l'azione contrassegna l'entità come sospetta. |
Rescan after days |
Facoltativo. Il numero di giorni dopo l'ultima data di scansione per eseguire nuovamente la scansione dell'entità. |
Output dell'azione
L'azione Scansiona URL fornisce i seguenti output:
Tipo di output dell'azione | Disponibilità |
---|---|
Allegato della bacheca casi | Non disponibile |
Link alla bacheca richieste | Non disponibile |
Tabella della bacheca casi | Non disponibile |
Tabella di arricchimento delle entità | Disponibile |
Insight | Disponibile |
Risultato JSON | Disponibile |
Risultato dello script | Disponibile |
Tabella di arricchimento delle entità
L'azione Scansiona URL può arricchire i seguenti campi:
Nome del campo di arricchimento | Logica applicabile |
---|---|
Scan date |
Restituisce il valore se esiste nel risultato JSON. |
Scan ID |
Restituisce il valore se esiste nel risultato JSON. |
risk_score |
Restituisce il valore se esiste nel risultato JSON. |
Total |
Restituisce il valore se esiste nel risultato JSON. |
Online Link |
Restituisce il valore se esiste nel risultato JSON. |
Scanned Url |
Restituisce il valore se esiste nel risultato JSON. |
resource |
Restituisce il valore se esiste nel risultato JSON. |
Detecting Engines |
Restituisce il valore se esiste nel risultato JSON. |
Risk Score |
Restituisce il valore se esiste nel risultato JSON. |
Last Scan Date |
Restituisce il valore se esiste nel risultato JSON. |
verbose_msg |
Restituisce il valore se esiste nel risultato JSON. |
File Scan ID |
Restituisce il valore se esiste nel risultato JSON. |
Insight
L'azione Scansiona URL può restituire il seguente approfondimento:
Gravità | Descrizione |
---|---|
Warn |
L'azione crea un approfondimento di avviso per informare sullo stato dannoso dell'URL arricchito. L'azione crea l'approfondimento solo quando il numero di motori rilevati è uguale o superiore alla soglia minima sospetta che hai impostato prima della scansione. |
Risultato JSON
L'esempio seguente mostra l'output del risultato JSON ricevuto quando si utilizza l'azione Scansiona URL:
[
{
"EntityResult": {
"permalink": "https://www.virustotal.com/url/URL_HASH/analysis/ANALYSIS_ID/",
"resource": "http://example.php",
"url": "http://example.php",
"response_code": 1,
"scan_date": "2019-02-04 05:28:54",
"scan_id": "URL_HASH-ANALYSIS_ID",
"verbose_msg": "Scan finished, scan information embedded in this object",
"filescan_id": null,
"positives": 5,
"total": 67,
"scans": {
"CLEAN MX": {
"detected": false,
"result": "clean site"
},
"DNS8": {
"detected": false,
"result": "clean site"
}}},
"Entity": "http://example.php"
}
]
Risultato dello script
La tabella seguente elenca il valore dell'output del risultato dello script quando utilizzi l'azione Scansiona URL:
Nome del risultato dello script | Valore |
---|---|
is_risky |
True o False |
Carica e scansiona file
Utilizza l'azione Carica e scansiona file per caricare e scansionare un file con VirusTotal.
Questa azione viene eseguita su tutte le entità Google SecOps.
Input azione
L'azione Carica e scansiona file richiede i seguenti parametri:
Parametro | Descrizione |
---|---|
Threshold |
Obbligatorio. Il numero minimo di rilevamenti positivi dagli scanner VirusTotal per considerare un file rischioso e attivare un approfondimento. Il valore predefinito è
|
File Paths |
Obbligatorio. Un elenco separato da virgole di percorsi da caricare e scansionare. |
Linux Server Address |
Facoltativo. L'indirizzo di un server Linux remoto in cui si trovano i file,
ad esempio |
Linux User |
Facoltativo. Il nome utente per l'autenticazione sul server Linux remoto. |
Linux Password |
Facoltativo. La password per l'autenticazione sul server Linux remoto. |
Output dell'azione
L'azione Carica e scansiona file fornisce i seguenti output:
Tipo di output dell'azione | Disponibilità |
---|---|
Allegato della bacheca casi | Non disponibile |
Link alla bacheca richieste | Non disponibile |
Tabella della bacheca casi | Non disponibile |
Tabella di arricchimento delle entità | Disponibile |
Insight | Disponibile |
Risultato JSON | Disponibile |
Risultato dello script | Disponibile |
Tabella di arricchimento delle entità
L'azione Carica e scansiona file può arricchire i seguenti campi:
Nome del campo di arricchimento | Logica applicabile |
---|---|
resource |
Restituisce il valore se esiste nel risultato JSON. |
Scan date |
Restituisce il valore se esiste nel risultato JSON. |
Scan ID |
Restituisce il valore se esiste nel risultato JSON. |
permalink |
Restituisce il valore se esiste nel risultato JSON. |
Total |
Restituisce il valore se esiste nel risultato JSON. |
Md5 |
Restituisce il valore se esiste nel risultato JSON. |
Sha1 |
Restituisce il valore se esiste nel risultato JSON. |
Sha256 |
Restituisce il valore se esiste nel risultato JSON. |
positives |
Restituisce il valore se esiste nel risultato JSON. |
total |
Restituisce il valore se esiste nel risultato JSON. |
Detecting Engines |
Restituisce il valore se esiste nel risultato JSON. |
verbose_msg |
Restituisce il valore se esiste nel risultato JSON. |
Insight
L'azione Carica e scansiona file può restituire il seguente approfondimento:
Gravità | Descrizione |
---|---|
Warn |
L'azione crea un approfondimento di avviso per informare sullo stato dannoso del file arricchito. L'azione crea l'approfondimento solo quando il numero di motori rilevati è uguale o superiore alla soglia minima sospetta che hai impostato prima della scansione. |
Risultato JSON
L'esempio seguente mostra l'output del risultato JSON ricevuto quando si utilizza l'azione Carica e scansiona file:
{
"file_path": {
"scan_id": "FILE_ID-ANALYSIS_ID",
"sha1": "ec44b2af88e602e3981db0b218ecb5d59dc0dfec",
"resource": "FILE_ID-ANALYSIS_ID",
"response_code": 1,
"scan_date": "2019-02-05 15:55:50",
"permalink": "https://www.virustotal.com/file/FILE_ID/analysis/ANALYSIS_ID/",
"verbose_msg": "Scan finished, information embedded",
"total": 58,
"positives": 0,
"sha256": "FILE_ID",
"md5": "848d57fbd8e29afa08bd3f58dd30f902",
"scans": {
"Bkav": {
"detected": false,
"version": "192.0.2.1",
"result": null,
"update": "20190201"
},
"MicroWorld-eScan": {
"detected": false,
"version": "14.0.297.0",
"result": null,
"update": "20190205"
}
}
}
}
Risultato dello script
La seguente tabella elenca il valore dell'output del risultato dello script quando si utilizza l'azione Carica e scansiona file:
Nome del risultato dello script | Valore |
---|---|
is_risky |
True o False |
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.