Intégrer VirusTotal à Google SecOps

Ce document explique comment intégrer VirusTotal à Google Security Operations (Google SecOps).

Version de l'intégration : 39.0

Cette intégration utilise l'API VirusTotal v2.

Cette intégration utilise un ou plusieurs composants Open Source. Vous pouvez télécharger une copie compressée du code source complet de cette intégration à partir du bucket Cloud Storage.

Avant de commencer

Pour utiliser l'intégration VirusTotal, configurez une clé API.

Pour configurer la clé API, procédez comme suit :

  1. Connectez-vous au portail VirusTotal.
  2. Sous votre nom d'utilisateur, cliquez sur Clé API.
  3. Copiez la clé API générée pour l'utiliser dans les paramètres d'intégration.
  4. Cliquez sur Enregistrer.

Paramètres d'intégration

L'intégration VirusTotal nécessite les paramètres suivants :

Paramètre Description
Api Key

Obligatoire.

Clé API permettant d'accéder à VirusTotal.

Verify SSL

Facultatif.

Si cette option est sélectionnée, l'intégration valide le certificat SSL lors de la connexion à VirusTotal.

Par défaut, cette option n'est pas sélectionnée.

Pour obtenir des instructions sur la configuration d'une intégration dans Google SecOps, consultez Configurer des intégrations.

Vous pourrez apporter des modifications ultérieurement, si nécessaire. Une fois que vous avez configuré une instance d'intégration, vous pouvez l'utiliser dans des playbooks. Pour savoir comment configurer et prendre en charge plusieurs instances, consultez Prise en charge de plusieurs instances.

Actions

Pour en savoir plus sur les actions, consultez Répondre aux actions en attente dans Votre espace de travail et Effectuer une action manuelle.

Obtenir le rapport sur les domaines

Utilisez l'action Obtenir le rapport sur le domaine pour récupérer les rapports sur les domaines de VirusTotal pour les entités fournies et enrichir ces entités dans la plate-forme Google SecOps.

Cette action s'exécute sur les entités Google SecOps suivantes :

  • User
  • Hostname

Entrées d'action

Aucun

Sorties d'action

L'action Get Domain Report (Obtenir le rapport sur le domaine) fournit les résultats suivants :

Type de sortie de l'action Disponibilité
Pièce jointe au mur des cas Non disponible
Lien vers le mur des cas Non disponible
Table du mur des cas Non disponible
Table d'enrichissement des entités Disponible
Résultat JSON Disponible
Résultat du script Disponible
Table d'enrichissement des entités

L'action Obtenir le rapport sur le domaine peut enrichir les champs suivants :

Nom du champ d'enrichissement Logique applicable
Forcepoint ThreatSeeker category Renvoie si elle existe dans le résultat JSON.
BitDefender domain info Renvoie si elle existe dans le résultat JSON.
Categories Renvoie si elle existe dans le résultat JSON.
BitDefender Category Renvoie si elle existe dans le résultat JSON.
Alexa Category Renvoie si elle existe dans le résultat JSON.
Alexa domain info Renvoie si elle existe dans le résultat JSON.
Websense ThreatSeeker category Renvoie si elle existe dans le résultat JSON.
TrendMicro category Renvoie si elle existe dans le résultat JSON.
Opera domain info Renvoie si elle existe dans le résultat JSON.
Webutation domain info Renvoie si elle existe dans le résultat JSON.
verbose_msg Renvoie si elle existe dans le résultat JSON.
whois Renvoie si elle existe dans le résultat JSON.
Résultat JSON

L'exemple suivant montre le résultat JSON reçu lors de l'utilisation de l'action Get Domain Report (Obtenir le rapport sur le domaine) :

[
    {
        "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"
    }
]
Résultat du script

Le tableau suivant répertorie la valeur de la sortie des résultats du script lorsque vous utilisez l'action Obtenir le rapport sur le domaine :

Nom du résultat du script Valeur
is_success True ou False

Hachage de l'analyse

Utilisez l'action Analyser le hachage pour analyser les hachages de fichiers avec VirusTotal, marquer les entités comme suspectes et afficher des insights si le score de risque correspond à un seuil donné.

Cette action s'exécute sur l'entité Filehash de Google SecOps.

Entrées d'action

L'action Analyser le hachage nécessite les paramètres suivants :

Paramètre Description
Threshold

Obligatoire.

Seuil à partir duquel les détections sont marquées comme suspectes.

Si les détections du moteur malveillant atteignent ou dépassent le seuil défini, l'action marque l'entité comme suspecte.

Rescan after days

Facultatif.

Nombre de jours après la date de dernière analyse pour réanalyser l'entité.

Sorties d'action

L'action Analyser le hachage fournit les sorties suivantes :

Type de sortie de l'action Disponibilité
Pièce jointe au mur des cas Non disponible
Lien vers le mur des cas Non disponible
Table du mur des cas Non disponible
Table d'enrichissement des entités Disponible
Insight Disponible
Résultat JSON Disponible
Résultat du script Disponible
Table d'enrichissement des entités

L'action Analyser le hachage peut enrichir les champs suivants :

Nom du champ d'enrichissement Logique applicable
permalink Renvoie si elle existe dans le résultat JSON.
sha1 Renvoie si elle existe dans le résultat JSON.
resource Renvoie si elle existe dans le résultat JSON.
Scan date Renvoie si elle existe dans le résultat JSON.
Scan ID Renvoie si elle existe dans le résultat JSON.
verbose_msg Renvoie si elle existe dans le résultat JSON.
total Renvoie si elle existe dans le résultat JSON.
positives Renvoie si elle existe dans le résultat JSON.
sha256 Renvoie si elle existe dans le résultat JSON.
md5 Renvoie si elle existe dans le résultat JSON.
Detecting Engines Renvoie si elle existe dans le résultat JSON.
Insight

L'action Analyser le hachage peut renvoyer l'insight suivant :

Gravité Description
Warn

Cette action crée un insight d'avertissement pour informer de l'état malveillant du hachage enrichi.

L'action ne crée l'insight que lorsque le nombre de moteurs détectés est égal ou supérieur au seuil minimal de moteurs suspects que vous avez défini avant l'analyse.

Résultat JSON

L'exemple suivant montre le résultat JSON reçu lors de l'utilisation de l'action Analyser le hachage :

[
    {
        "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"
    }
]
Résultat du script

Le tableau suivant répertorie la valeur de la sortie du résultat du script lorsque vous utilisez l'action Analyser le hachage :

Nom du résultat du script Valeur
is_risky True ou False

Analyser l'adresse IP

Utilisez l'action Analyser l'adresse IP pour recueillir les informations que VirusTotal a récemment observées sur une adresse IP spécifique.

Cette action s'exécute sur l'entité IP Address de Google SecOps.

Entrées d'action

L'action Analyser l'adresse IP nécessite les paramètres suivants :

Paramètre Description
Threshold

Facultatif.

Seuil à partir duquel une adresse IP est marquée comme suspecte.

Si les détections du moteur malveillant atteignent ou dépassent le seuil défini, l'action marque l'adresse IP comme suspecte.

La valeur par défaut est 25.

Sorties d'action

L'action Analyser l'adresse IP fournit les résultats suivants :

Type de sortie de l'action Disponibilité
Pièce jointe au mur des cas Non disponible
Lien vers le mur des cas Non disponible
Table du mur des cas Non disponible
Table d'enrichissement des entités Disponible
Insights Disponible
Résultat JSON Disponible
Résultat du script Disponible
Table d'enrichissement des entités

L'action Analyser l'adresse IP peut enrichir les champs suivants :

Nom du champ d'enrichissement Logique applicable
Country Renvoie si elle existe dans le résultat JSON.
Related Domains Renvoie si elle existe dans le résultat JSON.
Last Scan Date Renvoie si elle existe dans le résultat JSON.
verbose_msg Renvoie si elle existe dans le résultat JSON.
Resolutions Renvoie si elle existe dans le résultat JSON.
Insights

L'action Analyser l'adresse IP peut renvoyer les insights suivants :

Gravité Description
Warn

L'action crée un insight d'avertissement pour informer de l'état malveillant de l'adresse IP enrichie.

L'action ne crée l'insight que lorsque le nombre de moteurs détectés est égal ou supérieur au seuil minimal de suspicion que vous avez défini avant l'analyse.

Nom de l'insight Body
Entity Insight
  • Pays : country
  • Exemples de sites référents malveillants : len(detected_referrer_samples)
  • Exemples de téléchargements malveillants : len(detected_downloaded_samples)
  • Exemples de communications malveillantes : len(detected_communicating_samples)
  • URL malveillantes : len(detected_urls)
Résultat JSON

L'exemple suivant montre le résultat JSON reçu lors de l'utilisation de l'action Analyser l'adresse 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"
        }
    ]
Résultat du script

Le tableau suivant répertorie la valeur de la sortie du résultat du script lorsque vous utilisez l'action Analyser l'adresse IP :

Nom du résultat du script Valeur
is_success True ou False

Analyser l'URL

Utilisez l'action Analyser l'URL pour analyser une URL avec VirusTotal.

Cette action s'exécute sur l'entité URL de Google SecOps.

Entrées d'action

L'action Analyser l'URL nécessite les paramètres suivants :

Paramètre Description
Threshold

Obligatoire.

Seuil à partir duquel les détections sont marquées comme suspectes.

Si les détections du moteur malveillant atteignent ou dépassent le seuil défini, l'action marque l'entité comme suspecte.

Rescan after days

Facultatif.

Nombre de jours après la date de dernière analyse pour réanalyser l'entité.

Sorties d'action

L'action Analyser l'URL fournit les résultats suivants :

Type de sortie de l'action Disponibilité
Pièce jointe au mur des cas Non disponible
Lien vers le mur des cas Non disponible
Table du mur des cas Non disponible
Table d'enrichissement des entités Disponible
Insight Disponible
Résultat JSON Disponible
Résultat du script Disponible
Table d'enrichissement des entités

L'action Analyser l'URL peut enrichir les champs suivants :

Nom du champ d'enrichissement Logique applicable
Scan date Renvoie si elle existe dans le résultat JSON.
Scan ID Renvoie si elle existe dans le résultat JSON.
risk_score Renvoie si elle existe dans le résultat JSON.
Total Renvoie si elle existe dans le résultat JSON.
Online Link Renvoie si elle existe dans le résultat JSON.
Scanned Url Renvoie si elle existe dans le résultat JSON.
resource Renvoie si elle existe dans le résultat JSON.
Detecting Engines Renvoie si elle existe dans le résultat JSON.
Risk Score Renvoie si elle existe dans le résultat JSON.
Last Scan Date Renvoie si elle existe dans le résultat JSON.
verbose_msg Renvoie si elle existe dans le résultat JSON.
File Scan ID Renvoie si elle existe dans le résultat JSON.
Insight

L'action Analyser l'URL peut renvoyer l'insight suivant :

Gravité Description
Warn

L'action crée un insight d'avertissement pour informer de l'état malveillant de l'URL enrichie.

L'action ne crée l'insight que lorsque le nombre de moteurs détectés est égal ou supérieur au seuil minimal de suspicion que vous avez défini avant l'analyse.

Résultat JSON

L'exemple suivant montre le résultat JSON reçu lors de l'utilisation de l'action Analyser l'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"
    }
]
Résultat du script

Le tableau suivant répertorie la valeur de la sortie du résultat du script lorsque vous utilisez l'action Analyser l'URL :

Nom du résultat du script Valeur
is_risky True ou False

Importer et analyser un fichier

Utilisez l'action Upload and Scan File (Importer et analyser un fichier) pour importer et analyser un fichier avec VirusTotal.

Cette action s'exécute sur toutes les entités Google SecOps.

Entrées d'action

L'action Importer et analyser un fichier nécessite les paramètres suivants :

Paramètre Description
Threshold

Obligatoire.

Nombre minimal de détections positives des scanners VirusTotal pour qu'un fichier soit considéré comme risqué et qu'un insight soit déclenché.

La valeur par défaut est 3.

File Paths

Obligatoire.

Liste de chemins d'accès à importer et à analyser, séparés par une virgule.

Linux Server Address

Facultatif.

Adresse d'un serveur Linux distant sur lequel se trouvent les fichiers, par exemple 192.0.2.1.

Linux User

Facultatif.

Nom d'utilisateur pour s'authentifier auprès du serveur Linux à distance.

Linux Password

Facultatif.

Mot de passe pour s'authentifier auprès du serveur Linux distant.

Sorties d'action

L'action Importer et analyser un fichier fournit les résultats suivants :

Type de sortie de l'action Disponibilité
Pièce jointe au mur des cas Non disponible
Lien vers le mur des cas Non disponible
Table du mur des cas Non disponible
Table d'enrichissement des entités Disponible
Insight Disponible
Résultat JSON Disponible
Résultat du script Disponible
Table d'enrichissement des entités

L'action Importer et analyser un fichier peut enrichir les champs suivants :

Nom du champ d'enrichissement Logique applicable
resource Renvoie si elle existe dans le résultat JSON.
Scan date Renvoie si elle existe dans le résultat JSON.
Scan ID Renvoie si elle existe dans le résultat JSON.
permalink Renvoie si elle existe dans le résultat JSON.
Total Renvoie si elle existe dans le résultat JSON.
Md5 Renvoie si elle existe dans le résultat JSON.
Sha1 Renvoie si elle existe dans le résultat JSON.
Sha256 Renvoie si elle existe dans le résultat JSON.
positives Renvoie si elle existe dans le résultat JSON.
total Renvoie si elle existe dans le résultat JSON.
Detecting Engines Renvoie si elle existe dans le résultat JSON.
verbose_msg Renvoie si elle existe dans le résultat JSON.
Insight

L'action Importer et analyser un fichier peut renvoyer l'insight suivant :

Gravité Description
Warn

L'action crée un insight d'avertissement pour informer de l'état malveillant du fichier enrichi.

L'action ne crée l'insight que lorsque le nombre de moteurs détectés est égal ou supérieur au seuil minimal de suspicion que vous avez défini avant l'analyse.

Résultat JSON

L'exemple suivant montre le résultat JSON reçu lors de l'utilisation de l'action Importer et analyser un fichier :

{
    "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"
            }
        }
    }
}
Résultat du script

Le tableau suivant répertorie la valeur de la sortie du résultat du script lorsque vous utilisez l'action Importer et analyser un fichier :

Nom du résultat du script Valeur
is_risky True ou False

Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.