Integrar VirusTotal con Google SecOps

En este documento se explica cómo integrar VirusTotal con Google Security Operations (Google SecOps).

Versión de integración: 39.0

Esta integración usa la API VirusTotal v2.

Esta integración usa uno o varios componentes de código abierto. Puedes descargar una copia comprimida del código fuente completo de esta integración desde el segmento de Cloud Storage.

Antes de empezar

Para usar la integración de VirusTotal, configura una clave de API.

Para configurar la clave de API, sigue estos pasos:

  1. Inicia sesión en el portal de VirusTotal.
  2. Debajo de tu nombre de usuario, haz clic en Clave de API.
  3. Copia la clave de API generada para usarla en los parámetros de integración.
  4. Haz clic en Guardar.

Parámetros de integración

La integración de VirusTotal requiere los siguientes parámetros:

Parámetro Descripción
Api Key

Obligatorio.

Clave de API para acceder a VirusTotal.

Verify SSL

Opcional.

Si se selecciona esta opción, la integración valida el certificado SSL al conectarse a VirusTotal.

No está seleccionada de forma predeterminada.

Para obtener instrucciones sobre cómo configurar una integración en Google SecOps, consulta Configurar integraciones.

Si es necesario, puedes hacer cambios más adelante. Después de configurar una instancia de integración, puedes usarla en los cuadernos de estrategias. Para obtener más información sobre cómo configurar y admitir varias instancias, consulta el artículo Admitir varias instancias.

Acciones

Para obtener más información sobre las acciones, consulta Responder a las acciones pendientes de Mi mesa de trabajo y Realizar una acción manual.

Obtener informe de dominio

Usa la acción Get Domain Report (Obtener informe de dominio) para recuperar informes de dominio de VirusTotal de las entidades proporcionadas y enriquecerlas en la plataforma Google SecOps.

Esta acción se ejecuta en las siguientes entidades de Google SecOps:

  • User
  • Hostname

Entradas de acciones

Ninguno

Resultados de la acción

La acción Obtener informe de dominio proporciona los siguientes resultados:

Tipo de salida de la acción Disponibilidad
Adjunto del panel de casos No disponible
Enlace del panel de casos No disponible
Tabla del panel de casos No disponible
Tabla de enriquecimiento de entidades Disponible
Resultado de JSON Disponible
Resultado de la secuencia de comandos Disponible
Tabla de enriquecimiento de entidades

La acción Obtener informe de dominio puede enriquecer los siguientes campos:

Nombre del campo de enriquecimiento Lógica aplicable
Forcepoint ThreatSeeker category Devuelve si existe en el resultado JSON.
BitDefender domain info Devuelve si existe en el resultado JSON.
Categories Devuelve si existe en el resultado JSON.
BitDefender Category Devuelve si existe en el resultado JSON.
Alexa Category Devuelve si existe en el resultado JSON.
Alexa domain info Devuelve si existe en el resultado JSON.
Websense ThreatSeeker category Devuelve si existe en el resultado JSON.
TrendMicro category Devuelve si existe en el resultado JSON.
Opera domain info Devuelve si existe en el resultado JSON.
Webutation domain info Devuelve si existe en el resultado JSON.
verbose_msg Devuelve si existe en el resultado JSON.
whois Devuelve si existe en el resultado JSON.
Resultado de JSON

En el siguiente ejemplo se muestra el resultado JSON que se obtiene al usar la acción Get Domain Report (Obtener informe de dominio):

[
    {
        "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"
    }
]
Resultado de la secuencia de comandos

En la siguiente tabla se muestra el valor de la salida del resultado de la secuencia de comandos al usar la acción Obtener informe de dominio:

Nombre del resultado del script Valor
is_success True o False

Analizar hash

Usa la acción Analizar hash para analizar hashes de archivos con VirusTotal, marcar entidades como sospechosas y mostrar estadísticas si la puntuación de riesgo coincide con un umbral determinado.

Esta acción se ejecuta en la entidad Filehash de Google SecOps.

Entradas de acciones

La acción Analizar hash requiere los siguientes parámetros:

Parámetro Descripción
Threshold

Obligatorio.

Umbral para marcar las detecciones como sospechosas.

Si las detecciones del motor malicioso alcanzan o superan el umbral establecido, la acción marca la entidad como sospechosa.

Rescan after days

Opcional.

Número de días que deben transcurrir después de la fecha del último análisis para volver a analizar la entidad.

Resultados de la acción

La acción Analizar hash proporciona los siguientes resultados:

Tipo de salida de la acción Disponibilidad
Adjunto del panel de casos No disponible
Enlace del panel de casos No disponible
Tabla del panel de casos No disponible
Tabla de enriquecimiento de entidades Disponible
Insight Disponible
Resultado de JSON Disponible
Resultado de la secuencia de comandos Disponible
Tabla de enriquecimiento de entidades

La acción Analizar hash puede enriquecer los siguientes campos:

Nombre del campo de enriquecimiento Lógica aplicable
permalink Devuelve si existe en el resultado JSON.
sha1 Devuelve si existe en el resultado JSON.
resource Devuelve si existe en el resultado JSON.
Scan date Devuelve si existe en el resultado JSON.
Scan ID Devuelve si existe en el resultado JSON.
verbose_msg Devuelve si existe en el resultado JSON.
total Devuelve si existe en el resultado JSON.
positives Devuelve si existe en el resultado JSON.
sha256 Devuelve si existe en el resultado JSON.
md5 Devuelve si existe en el resultado JSON.
Detecting Engines Devuelve si existe en el resultado JSON.
Insight

La acción Analizar hash puede devolver la siguiente información valiosa:

Gravedad Descripción
Warn

La acción crea una estadística de advertencia para informar sobre el estado malicioso del hash enriquecido.

La acción solo crea la estadística cuando el número de motores detectados es igual o superior al umbral mínimo de sospecha que hayas definido antes del análisis.

Resultado de JSON

En el siguiente ejemplo se muestra la salida del resultado en JSON que se recibe al usar la acción Analizar 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"
    }
]
Resultado de la secuencia de comandos

En la siguiente tabla se muestra el valor de la salida del resultado de la secuencia de comandos al usar la acción Analizar hash:

Nombre del resultado del script Valor
is_risky True o False

Analizar IP

Usa la acción Analizar IP para recoger la información que VirusTotal ha visto recientemente en una IP específica.

Esta acción se ejecuta en la entidad IP Address de Google SecOps.

Entradas de acciones

La acción Analizar IP requiere los siguientes parámetros:

Parámetro Descripción
Threshold

Opcional.

Umbral para marcar una dirección IP como sospechosa.

Si las detecciones del motor malicioso alcanzan o superan el umbral establecido, la acción marca la dirección IP como sospechosa.

El valor predeterminado es 25.

Resultados de la acción

La acción Analizar IP proporciona los siguientes resultados:

Tipo de salida de la acción Disponibilidad
Adjunto del panel de casos No disponible
Enlace del panel de casos No disponible
Tabla del panel de casos No disponible
Tabla de enriquecimiento de entidades Disponible
Estadísticas Disponible
Resultado de JSON Disponible
Resultado de la secuencia de comandos Disponible
Tabla de enriquecimiento de entidades

La acción Analizar IP puede enriquecer los siguientes campos:

Nombre del campo de enriquecimiento Lógica aplicable
Country Devuelve si existe en el resultado JSON.
Related Domains Devuelve si existe en el resultado JSON.
Last Scan Date Devuelve si existe en el resultado JSON.
verbose_msg Devuelve si existe en el resultado JSON.
Resolutions Devuelve si existe en el resultado JSON.
Estadísticas

La acción Analizar IP puede devolver las siguientes estadísticas:

Gravedad Descripción
Warn

Esta acción crea una estadística de advertencia para informar sobre el estado malicioso de la dirección IP enriquecida.

La acción solo crea la estadística cuando el número de motores detectados es igual o superior al umbral mínimo sospechoso que hayas definido antes del análisis.

Nombre de la estadística Body
Entity Insight
  • País: country
  • Ejemplos de referentes maliciosos: len(detected_referrer_samples)
  • Muestras descargadas maliciosas: len(detected_downloaded_samples)
  • Muestras de comunicación maliciosas: len(detected_communicating_samples)
  • URLs maliciosas: len(detected_urls)
Resultado de JSON

En el siguiente ejemplo se muestra la salida del resultado JSON que se recibe al usar la acción Analizar 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"
        }
    ]
Resultado de la secuencia de comandos

En la siguiente tabla se muestra el valor de la salida del resultado de la secuencia de comandos al usar la acción Analizar IP:

Nombre del resultado del script Valor
is_success True o False

Analizar URL

Usa la acción Analizar URL para analizar una URL con VirusTotal.

Esta acción se ejecuta en la entidad URL de Google SecOps.

Entradas de acciones

La acción Analizar URL requiere los siguientes parámetros:

Parámetro Descripción
Threshold

Obligatorio.

Umbral para marcar las detecciones como sospechosas.

Si las detecciones del motor malicioso alcanzan o superan el umbral establecido, la acción marca la entidad como sospechosa.

Rescan after days

Opcional.

Número de días que deben transcurrir después de la fecha del último análisis para volver a analizar la entidad.

Resultados de la acción

La acción Analizar URL proporciona los siguientes resultados:

Tipo de salida de la acción Disponibilidad
Adjunto del panel de casos No disponible
Enlace del panel de casos No disponible
Tabla del panel de casos No disponible
Tabla de enriquecimiento de entidades Disponible
Insight Disponible
Resultado de JSON Disponible
Resultado de la secuencia de comandos Disponible
Tabla de enriquecimiento de entidades

La acción Analizar URL puede enriquecer los siguientes campos:

Nombre del campo de enriquecimiento Lógica aplicable
Scan date Devuelve si existe en el resultado JSON.
Scan ID Devuelve si existe en el resultado JSON.
risk_score Devuelve si existe en el resultado JSON.
Total Devuelve si existe en el resultado JSON.
Online Link Devuelve si existe en el resultado JSON.
Scanned Url Devuelve si existe en el resultado JSON.
resource Devuelve si existe en el resultado JSON.
Detecting Engines Devuelve si existe en el resultado JSON.
Risk Score Devuelve si existe en el resultado JSON.
Last Scan Date Devuelve si existe en el resultado JSON.
verbose_msg Devuelve si existe en el resultado JSON.
File Scan ID Devuelve si existe en el resultado JSON.
Insight

La acción Analizar URL puede devolver la siguiente información valiosa:

Gravedad Descripción
Warn

La acción crea una alerta para informar sobre el estado malicioso de la URL enriquecida.

La acción solo crea la estadística cuando el número de motores detectados es igual o superior al umbral mínimo sospechoso que hayas definido antes del análisis.

Resultado de JSON

En el siguiente ejemplo se muestra el resultado en JSON que se recibe al usar la acción Analizar 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"
    }
]
Resultado de la secuencia de comandos

En la siguiente tabla se muestra el valor de la salida del resultado de la secuencia de comandos cuando se usa la acción Analizar URL:

Nombre del resultado del script Valor
is_risky True o False

Subir y analizar archivo

Usa la acción Subir y analizar archivo para subir y analizar un archivo con VirusTotal.

Esta acción se ejecuta en todas las entidades de Google SecOps.

Entradas de acciones

La acción Subir y analizar archivo requiere los siguientes parámetros:

Parámetro Descripción
Threshold

Obligatorio.

El número mínimo de detecciones positivas de los analizadores de VirusTotal para considerar que un archivo es arriesgado y activar una estadística.

El valor predeterminado es 3.

File Paths

Obligatorio.

Lista de rutas separadas por comas que se van a subir y analizar.

Linux Server Address

Opcional.

La dirección de un servidor Linux remoto en el que se encuentran los archivos, como 192.0.2.1.

Linux User

Opcional.

Nombre de usuario para autenticar en el servidor Linux remoto.

Linux Password

Opcional.

La contraseña para autenticar el servidor Linux remoto.

Resultados de la acción

La acción Subir y analizar archivo proporciona los siguientes resultados:

Tipo de salida de la acción Disponibilidad
Adjunto del panel de casos No disponible
Enlace del panel de casos No disponible
Tabla del panel de casos No disponible
Tabla de enriquecimiento de entidades Disponible
Insight Disponible
Resultado de JSON Disponible
Resultado de la secuencia de comandos Disponible
Tabla de enriquecimiento de entidades

La acción Subir y analizar archivo puede enriquecer los siguientes campos:

Nombre del campo de enriquecimiento Lógica aplicable
resource Devuelve si existe en el resultado JSON.
Scan date Devuelve si existe en el resultado JSON.
Scan ID Devuelve si existe en el resultado JSON.
permalink Devuelve si existe en el resultado JSON.
Total Devuelve si existe en el resultado JSON.
Md5 Devuelve si existe en el resultado JSON.
Sha1 Devuelve si existe en el resultado JSON.
Sha256 Devuelve si existe en el resultado JSON.
positives Devuelve si existe en el resultado JSON.
total Devuelve si existe en el resultado JSON.
Detecting Engines Devuelve si existe en el resultado JSON.
verbose_msg Devuelve si existe en el resultado JSON.
Insight

La acción Subir y analizar archivo puede devolver la siguiente información valiosa:

Gravedad Descripción
Warn

Esta acción crea una alerta para informar sobre el estado malicioso del archivo enriquecido.

La acción solo crea la estadística cuando el número de motores detectados es igual o superior al umbral mínimo sospechoso que hayas definido antes del análisis.

Resultado de JSON

En el siguiente ejemplo se muestra la salida del resultado JSON recibida al usar la acción Subir y analizar archivo:

{
    "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"
            }
        }
    }
}
Resultado de la secuencia de comandos

En la siguiente tabla se indica el valor de la salida del resultado de la secuencia de comandos al usar la acción Subir y analizar archivo:

Nombre del resultado del script Valor
is_risky True o False

¿Necesitas más ayuda? Recibe respuestas de los miembros de la comunidad y de los profesionales de Google SecOps.