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:
- Inicia sesión en el portal de VirusTotal.
- Debajo de tu nombre de usuario, haz clic en Clave de API.
- Copia la clave de API generada para usarla en los parámetros de integración.
- 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 |
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 |
|
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 |
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 |
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.