Integra APIVoid con Google SecOps
En este documento, se describe cómo integrar APIVoid en Google Security Operations (Google SecOps).
Versión de integración: 12.0
Antes de comenzar
Antes de configurar la integración de APIVoid en Google SecOps para la versión 2, verifica que tengas lo siguiente:
Cuenta de APIVoid v2: Es una cuenta activa con acceso a los servicios de la API v2.
Clave de API de APIVoid v2: Es una clave de API nueva generada específicamente para las APIs de v2 desde el panel de usuario de APIVoid.
Extremos de API actualizados: Debes conocer las URLs de extremo de API v2 actualizados para los servicios específicos de APIVoid que planeas usar (como la API de IP Reputation y la API de Domain Reputation).
Genera una clave de API de APIVoid v2
Para generar tu clave de API de APIVoid v2, completa estos pasos:
Accede a tu panel de usuario de APIVoid.
Navega a la sección Claves de API. (La ubicación puede variar según las actualizaciones del panel).
Genera una clave de API nueva. Copia y guarda la llave de forma segura de inmediato. Es posible que solo se muestre una vez.
Red
Función | Puerto predeterminado | Dirección | Protocolo |
---|---|---|---|
API | Valores múltiples | Saliente | apikey |
Parámetros de integración
Usa los siguientes parámetros para configurar la integración:
Nombre del parámetro | Tipo | Valor predeterminado | Es obligatorio. | Descripción |
---|---|---|---|---|
Nombre de la instancia | String | N/A | No | Nombre de la instancia para la que deseas configurar la integración. |
Descripción | String | N/A | No | Es la descripción de la instancia. |
Raíz de la API | String | https://endpoint.apivoid.com | Sí | Es la dirección de la instancia de APIVoid. |
Clave de API | Contraseña | N/A | Sí | Clave de API generada en la consola de APIVoid. |
Verificar SSL | Casilla de verificación | Desmarcado | No | Usa esta casilla de verificación si tu conexión APIVoid requiere una verificación SSL. |
Ejecutar de forma remota | Casilla de verificación | Desmarcado | No | Marca la casilla para ejecutar la integración configurada de forma remota. Una vez que se marca, aparece la opción para seleccionar al usuario remoto (agente). |
Si quieres obtener instrucciones para configurar una integración en Google SecOps, consulta Configura integraciones.
Si es necesario, puedes hacer cambios más adelante. Después de configurar una instancia de integración, puedes usarla en las guías. Para obtener más información sobre cómo configurar y admitir varias instancias, consulta Compatibilidad con varias instancias.
Acciones
Para obtener más información sobre las acciones, consulta Cómo responder a las acciones pendientes desde Tu escritorio y Cómo realizar una acción manual.
Obtén la reputación del dominio
Obtén verificaciones de reputación del dominio para saber si un dominio está excluido por servicios populares y confiables de listas de bloqueo de dominios, como URLVir, ThreatLog, OpenPhish, Spam404, PhishTank, ZeuS Tracker y muchos más. Los múltiples servicios de listas de bloqueo de dominios identifican sitios web potencialmente maliciosos y fraudulentos involucrados en la distribución de software malicioso, incidentes de phishing y tiendas en línea falsas.
Parámetros
Nombre del parámetro | Tipo | Valor predeterminado | Es obligatorio. | Descripción |
---|---|---|---|---|
Umbral | String | 0 | Sí | Es el umbral de riesgo del dominio. El umbral debe ser un valor numérico. Ejemplo: 3 |
Crea estadísticas | Casilla de verificación | Marcado | Sí | Especifica si la acción debe crear estadísticas o no. |
Casos de uso
Uno de los casos de uso de la API de Domain Reputation es verificar si los sitios web del cliente están excluidos, comprobar las URLs que envían los usuarios en tu aplicación o identificar sitios web potencialmente maliciosos y no seguros.
Fecha de ejecución
Esta acción se ejecuta en las siguientes entidades:
- Nombre de host
- URL
Resultados de la acción
Enriquecimiento de entidades
Marca la entidad como sospechosa si la cantidad de motores negativos es igual o superior al umbral determinado.
Nombre del campo de enriquecimiento | Lógica: Cuándo aplicar |
---|---|
alexa_top_100k | Devuelve si existe en el resultado JSON. |
domain_length | Devuelve si existe en el resultado JSON. |
alexa_top_10k | Devuelve si existe en el resultado JSON. |
Listas negras | Devuelve si existe en el resultado JSON. |
servidor | Devuelve si existe en el resultado JSON. |
host | Devuelve si existe en el resultado JSON. |
most_abused_tld | Devuelve si existe en el resultado JSON. |
alexa_top_250k | Devuelve si existe en el resultado JSON. |
Estadísticas
Gravedad | Descripción |
---|---|
Advertencia | Se crea una estadística de advertencia para informar sobre el estado malicioso de la entidad enriquecida. Se crea cuando la cantidad de motores detectados es igual o superior al umbral mínimo de sospecha establecido antes del análisis. |
Resultado de secuencia de comandos
Nombre del resultado de la secuencia de comandos | Opciones de valor | Ejemplo |
---|---|---|
correcto | Verdadero/Falso | success:False |
Resultado de JSON
[
{
"EntityResult": {
"alexa_top_100k": false,
"domain_length": 17,
"alexa_top_10k": false,
"blacklists": {
"scantime": "0.07",
"detection_rate": "0%",
"detections": 0,
"engines_count": 29,
"engines": [{
"engine": "ThreatLog",
"detected": false,
"confidence": "high",
"reference": "http://www.threatlog.com/"
}, {
"engine": "Threat Sourcing",
"detected": false,
"confidence": "high",
"reference": "https://www.threatsourcing.com/"
}, {
"engine": "URLVir",
"detected": false,
"confidence": "high",
"reference": "http://www.urlvir.com/"
}]},
"server": {
"region_name": null,
"reverse_dns": " ",
"ip": " ",
"isp": null,
"continent_code": null,
"latitude": null,
"city_name": null,
"longitude": null,
"country_code": null,
"country_name": null,
"continent_name": null
},
"host": "example.com",
"most_abused_tld": false,
"alexa_top_250k": false
},
"Entity": "example.com"
}, {
"EntityResult": {
"alexa_top_100k": false,
"domain_length": 9,
"alexa_top_10k": false,
"blacklists": {
"scantime": "0.03",
"detection_rate": "0%",
"detections": 0,
"engines_count": 29,
"engines": [{
"engine": "ThreatLog",
"detected": false,
"confidence": "high",
"reference": "http://www.threatlog.com/"
}, {
"engine": "Threat Sourcing",
"detected": false,
"confidence": "high",
"reference": "https://www.threatsourcing.com/"
}, {
"engine": "URLVir",
"detected": false,
"confidence": "high",
"reference": "http://www.urlvir.com/"
}]},
"server": {
"region_name": null,
"reverse_dns": " ",
"ip": " ",
"isp": null,
"continent_code": null,
"latitude": null,
"city_name": null,
"longitude": null,
"country_code": null,
"country_name": null,
"continent_name": null
},
"host": "192.0.2.1",
"most_abused_tld": false,
"alexa_top_250k": false
},
"Entity": "192.0.2.1"
}
]
Obtener la reputación de IP
La API de IP Reputation detecta direcciones IP potencialmente maliciosas que se usan comúnmente para spam, ataques a sitios web o actividad fraudulenta.
Parámetros
Parámetro | Tipo | Valor predeterminado | Es obligatorio. | Descripción |
---|---|---|---|---|
Umbral | String | N/A | Sí | Es el umbral de riesgo de IP. El umbral debe ser un valor numérico. Ejemplo: 3. |
Crea estadísticas | Casilla de verificación | Marcado | Sí | Especifica si la acción debe crear estadísticas o no. |
Fecha de ejecución
Esta acción se ejecuta en la entidad Dirección IP.
Resultados de la acción
Enriquecimiento de entidades
Marca la entidad como sospechosa si la cantidad de motores negativos es igual o superior al umbral determinado.
Nombre del campo de enriquecimiento | Lógica: Cuándo aplicar |
---|---|
información | Devuelve si existe en el resultado JSON. |
Listas negras | Devuelve si existe en el resultado JSON. |
anonimato | Devuelve si existe en el resultado JSON. |
ip | Devuelve si existe en el resultado JSON. |
Estadísticas
Gravedad | Descripción |
---|---|
Advertencia | Se crea una estadística de advertencia para informar sobre el estado malicioso del hash enriquecido. La estadística se crea cuando la cantidad de motores detectados es igual o superior al umbral mínimo de sospecha establecido antes del análisis. |
Resultado de secuencia de comandos
Nombre del resultado de la secuencia de comandos | Opciones de valor | Ejemplo |
---|---|---|
correcto | Verdadero/Falso | success:False |
Resultado de JSON
[
{
"EntityResult": {
"information": {
"is_proxy": false,
"is_vpn": false,
"region_name": "Zhejiang",
"is_webproxy": false,
"latitude": 28.680280685424805,
"isp": "ChinaNet Zhejiang Province Network",
"continent_code": "AS",
"is_tor": false,
"reverse_dns": " ",
"detections": 18,
"engines_count": 76,
"longitude": 121.44277954101562,
"city_name": "Jiaojiang",
"country_name": "China",
"continent_name": "Asia",
"detection_rate": "24%",
"country_code": "CN",
"is_hosting": false
},
"blacklists": {
"scantime": "0.57",
"detection_rate":
"24%",
"detections": 18,
"engines_count": 76,
"engines": [{
"engine": "PlonkatronixBL",
"detected": false,
"reference": "http://bl.plonkatronix.com/"
}, {
"engine": "Engine",
"detected": true,
"reference": "https://home.nuug.no/~engine/"
}, {"engine": "Malc0de",
"detected": false,
"reference": "http://malc0de.com/database/index.php"
}]},
"anonymity": {
"is_tor": false,
"is_proxy": false,
"is_vpn": false,
"is_webproxy": false,
"is_hosting": false
},
"ip": "192.0.2.1"
},
"Entity": "192.0.2.1"
}
]
Obtén la reputación de la URL
Obtiene la reputación de seguridad y la puntuación de riesgo de una URL.
Parámetros
Nombre del parámetro | Tipo | Valor predeterminado | Es obligatorio. | Descripción |
---|---|---|---|---|
Umbral | Número entero | N/A | Sí | Es el umbral de riesgo de la URL. El umbral debe ser un valor numérico. Ejemplo: 3 |
Casos de uso
Un analista puede recuperar la reputación de la URL, de manera similar a cómo se recupera la reputación de un dominio o una dirección IP.
Fecha de ejecución
Esta acción se ejecuta en la entidad de URL.
Resultados de la acción
Enriquecimiento de entidades
Marca la entidad como sospechosa si la cantidad de motores negativos es igual o superior al umbral determinado. if data.get("report", {}).get("risk_score", {}).get("result") > threshold
Nombre del campo de enriquecimiento | Lógica: Cuándo aplicar |
---|---|
domain_blacklist | Devuelve si existe en el resultado JSON. |
html_forms | Devuelve si existe en el resultado JSON. |
server_details | Devuelve si existe en el resultado JSON. |
response_headers | Devuelve si existe en el resultado JSON. |
redireccionamiento | Devuelve si existe en el resultado JSON. |
file_type | Devuelve si existe en el resultado JSON. |
risk_score | Devuelve si existe en el resultado JSON. |
security_checks | Devuelve si existe en el resultado JSON. |
geo_location | Devuelve si existe en el resultado JSON. |
url_parts | Devuelve si existe en el resultado JSON. |
site_category | Devuelve si existe en el resultado JSON. |
web_page | Devuelve si existe en el resultado JSON. |
dns_records | Devuelve si existe en el resultado JSON. |
Resultado de secuencia de comandos
Nombre del resultado de la secuencia de comandos | Opciones de valor | Ejemplo |
---|---|---|
is_success | Verdadero/Falso | is_success:False |
Resultado de JSON
[
{
"EntityResult": {
"domain_blacklist": {
"detections": 0,
"engines": [{
"detected": false,
"name": "SpamhausDBL", "reference": "https://www.spamhaus.org/lookup/"
}, {
"detected": false,
"name": "ThreatLog",
"reference": "http://www.threatlog.com/"
}, {
"detected": false,
"name": "OpenPhish",
"reference": "http://www.openphish.com/"
}, {
"detected": false,
"name": "PhishTank",
"reference": "http://www.phishtank.com/"
}, {
"detected": false,
"name": "Phishing.Database",
"reference": "https://github.com/mitchellkrogza/Phishing.Database"
}, {
"detected": false,
"name": "PhishStats",
"reference": "https://phishstats.info/"
}, {
"detected": false,
"name": "URLVir",
"reference": "http://www.urlvir.com/"
}, {
"detected": false,
"name": "URLhaus",
"reference": "https://urlhaus.abuse.ch/"
}, {
"detected": false,
"name": "RPiList Not Serious",
"reference": "https://github.com/RPiList/specials"
}, {
"detected": false,
"name": "precisionsec",
"reference": "https://precisionsec.com/"
}, {
"detected": false,
"name": "AntiSocial Blacklist",
"reference": "https://theantisocialengineer.com/"
}, {
"detected": false,
"name": "PhishFeed",
"reference": "https://phishfeed.com/"
}, {
"detected": false,
"name": "Spam404",
"reference": "https://www.spam404.com/"
}]},
"html_forms": {
"number_of_total_input_fields": 0,
"email_field_present": false,
"number_of_total_forms": 0,
"password_field_present": false,
"two_text_inputs_in_a_form": false,
"credit_card_field_present": false
},
"server_details": {
"continent_name": "Asia",
"hostname": "example.com",
"region_name": "Seoul-teukbyeolsi",
"ip": "192.0.2.141",
"isp": "Example Corporation",
"continent_code": "AS",
"country_name": "Korea (Republic of)",
"city_name": "Seoul",
"longitude": 126.97782897949219,
"country_code": "KR",
"latitude": 37.568260192871094
},
"response_headers": {
"status": "HTTP/1.1 404 Not Found",
"content-length": "177",
"code": 404,
"server": "nginx/1.4.6 (Ubuntu)",
"connection": "keep-alive",
"date": "Wed, 15 Jul 2020 08:21:54 GMT",
"content-type": "text/html"
},
"redirection": {
"url": null,
"found": false,
"external": false
},
"file_type": {
"headers": "HTML",
"extension": "HTML",
"signature": " "
},
"risk_score": {
"result": 10
},
"security_checks": {
"is_suspended_page": false,
"is_defaced_heuristic": false,
"is_windows_exe_file": false,
"is_credit_card_field": false,
"is_windows_exe_file_on_free_hosting": false,
"is_masked_linux_elf_file": false,
"is_exe_on_directory_listing": false,
"is_php_on_directory_listing": false,
"is_masked_windows_exe_file": false,
"is_sinkholed_domain": false,
"is_robots_noindex": false,
"is_windows_exe_file_on_free_dynamic_dns": false,
"is_doc_on_directory_listing": false,
"is_non_standard_port": false,
"is_linux_elf_file_on_free_dynamic_dns": false,
"is_suspicious_domain": false, "is_suspicious_url_pattern": false,
"is_china_country": false,
"is_risky_geo_location": false,
"is_pdf_on_directory_listing": false,
"is_valid_https": false,
"is_external_redirect": false, "is_windows_exe_file_on_ipv4": false,
"is_phishing_heuristic": false,
"is_linux_elf_file_on_ipv4": false,
"is_email_address_on_url_query": false,
"is_uncommon_clickable_url": false,
"is_most_abused_tld": false,
"is_domain_blacklisted": false,
"is_host_an_ipv4": false,
"is_linux_elf_file_on_free_hosting": false,
"is_zip_on_directory_listing": false,
"is_password_field": false,
"is_linux_elf_file": false,
"is_empty_page_title": false,
"is_directory_listing": false,
"is_masked_file": false,
"is_suspicious_file_extension": false,
"is_suspicious_content": false
},
"geo_location": {
"countries": ["KR"]
},
"url_parts": {
"host_nowww": "example.com",
"host": "www.example.com",
"path": "/dynamic/example.html",
"query": null,
"scheme": "http",
"port": 80},
"site_category": {
"is_vpn_provider": false,
"is_url_shortener": false,
"is_anonymizer": false,
"is_torrent": false,
"is_free_dynamic_dns": false,
"is_free_hosting": false
},
"web_page": {
"keywords": "",
"description": "",
"title": "404 Not Found"
},
"dns_records": {
"ns": {
"records": [{
"country_name": "Korea (Republic of)",
"ip": "192.0.2.95",
"isp": "Example Corporation",
"target": "example.com",
"country_code": "KR"
}, {
"country_name": "Korea (Republic of)",
"ip": "192.0.2.26",
"isp": "LX",
"target": "example.com",
"country_code": "KR"
}]},
"mx": {
"records": []
}}},
"Entity": "www.example.com:80/dynamic/example.html"
}
]
Muro de casos
Tipo de resultado | Descripción | Tipo |
---|---|---|
Mensaje de salida* |
|
General |
Muro de casos en CSV | Si hay datos disponibles, crea una tabla CSV de entidades nuevas:
|
General |
Enriquecimiento | Si hay datos disponibles, agrega lo siguiente como enriquecimiento de la entidad (no olvides agregar el prefijo "APIVoid"):
|
Entidad |
Obtener captura de pantalla
Captura una captura de pantalla de alta calidad de cualquier sitio web o URL.
Parámetros
N/A
Casos de uso
Un analista puede capturar capturas de pantalla de alta calidad de cualquier sitio web o URL en formato de imagen PNG o JPG.
Fecha de ejecución
Esta acción se ejecuta en la entidad User.
Resultados de la acción
Enriquecimiento de entidades
Marca la entidad como sospechosa si la cantidad de motores negativos es igual o superior al umbral determinado. is_suspicious: if data.get("score") > threshold
Nombre del campo de enriquecimiento | Lógica: Cuándo aplicar |
---|---|
dominio | Devuelve si existe en el resultado JSON. |
should_block | Devuelve si existe en el resultado JSON. |
puntuación | Devuelve si existe en el resultado JSON. |
desechable | Devuelve si existe en el resultado JSON. |
has_mx_records | Devuelve si existe en el resultado JSON. |
has_spf_records | Devuelve si existe en el resultado JSON. |
Resultado de secuencia de comandos
Nombre del resultado de la secuencia de comandos | Opciones de valor | Ejemplo |
---|---|---|
is_success | Verdadero/Falso | is_success:False |
Resultado de JSON
[
{
"EntityResult": {
"domain": "example.com",
"valid_tld": true,
"email": "user@example.co",
"role_address": false,
"should_block": false,
"risky_tld": false,
"dirty_words_username": false,
"suspicious_domain": false,
"score": 100,
"educational_domain": false,
"dirty_words_domain": false,
"did_you_mean": " ",
"username": "user",
"valid_format": true,
"is_spoofable ": false,
"disposable": false,
"government_domain": false,
"has_spf_records": true,
"domain_popular": false,
"has_mx_records": true,
"china_free_email": false,
"free_email": false,
"russian_free_email": false,
"police_domain": false,
"dmarc_enforced": false,
"suspicious_username": false
},
"Entity": "USER@EXAMPLE.COM"
}
]
Muro de casos
Tipo de resultado | Descripción | Tipo |
---|---|---|
Mensaje de salida* |
|
General |
Archivos adjuntos | Si hay datos disponibles, crea un objeto de archivo nuevo:
|
General |
Ping
Probar la conectividad
Parámetros
N/A
Fecha de ejecución
Esta acción se ejecuta en todas las entidades.
Resultados de la acción
Resultado de secuencia de comandos
Nombre del resultado de la secuencia de comandos | Opciones de valor | Ejemplo |
---|---|---|
correcto | Verdadero/Falso | success:False |
Verificar correo electrónico
Comprueba si un correo electrónico es desechable, tiene registros MX y mucho más.
Parámetros
Nombre del parámetro | Tipo | Valor predeterminado | Es obligatorio. | Descripción |
---|---|---|---|---|
Umbral | Número entero | N/A | Sí | Es el umbral de riesgo del correo electrónico. El umbral debe ser un valor numérico. Ejemplo: 3 |
Casos de uso
Un analista puede verificar si un correo electrónico es desechable, obtener registros MX y mucho más.
Fecha de ejecución
Esta acción se ejecuta en la entidad User.
Resultados de la acción
Enriquecimiento de entidades
Marca la entidad como sospechosa si la cantidad de motores negativos es igual o superior al umbral determinado. is_suspicious: if data.get("score") > threshold
Nombre del campo de enriquecimiento | Lógica: Cuándo aplicar |
---|---|
dominio | Devuelve si existe en el resultado JSON. |
should_block | Devuelve si existe en el resultado JSON. |
puntuación | Devuelve si existe en el resultado JSON. |
desechable | Devuelve si existe en el resultado JSON. |
has_mx_records | Devuelve si existe en el resultado JSON. |
has_spf_records | Devuelve si existe en el resultado JSON. |
Resultado de secuencia de comandos
Nombre del resultado de la secuencia de comandos | Opciones de valor | Ejemplo |
---|---|---|
is_success | Verdadero/Falso | is_success:False |
Resultado de JSON
[
{
"EntityResult": {
"domain": "example.com",
"valid_tld": true,
"email": "user@example.com",
"role_address": false,
"should_block": false,
"risky_tld": false,
"dirty_words_username": false,
"suspicious_domain": false,
"score": 100,
"educational_domain": false,
"dirty_words_domain": false,
"did_you_mean": " ",
"username": "user",
"valid_format": true,
"is_spoofable ": false,
"disposable": false,
"government_domain": false,
"has_spf_records": true,
"domain_popular": false,
"has_mx_records": true,
"china_free_email": false,
"free_email": false,
"russian_free_email": false,
"police_domain": false,
"dmarc_enforced": false,
"suspicious_username": false
},
"Entity": "USER@EXAMPLE.COm"
}
]
Muro de casos
Tipo de resultado | Descripción | Tipo |
---|---|---|
Mensaje de salida* |
|
General |
Muro de casos en CSV | Contenido del CSV: Datos de la entidad(ejemplo a continuación) | General |
Enriquecimiento | Si hay datos disponibles, agrega lo siguiente como enriquecimiento de la entidad (no olvides agregar el prefijo "APIVoid"):
|
Entidad |
¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.