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:

  1. Accedi al portale VirusTotal.
  2. Sotto il tuo nome utente, fai clic su Chiave API.
  3. Copia la chiave API generata per utilizzarla nei parametri di integrazione.
  4. 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 è 25.

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
  • Paese: country
  • Esempi di referrer dannosi: len(detected_referrer_samples)
  • Esempi scaricati dannosi: len(detected_downloaded_samples)
  • Esempi di comunicazione dannosa: len(detected_communicating_samples)
  • URL dannosi: len(detected_urls)
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 è 3.

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 192.0.2.1.

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.