Integra APIVoid con Google SecOps
En este documento, se describe cómo integrar APIVoid con Google Security Operations (Google SecOps).
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: Una cuenta activa con acceso a los servicios de la API v2.
Clave de API de APIVoid v2: Es una clave de API nueva que se genera específicamente para las APIs de v2 desde tu panel de usuario de APIVoid.
Endpoints de API actualizados: Familiaridad con las URLs de extremo de API v2 actualizadas para los servicios específicos de APIVoid que planeas usar (como la API de reputación de IP y la API de reputación de dominio).
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 nueva clave de API. Copia y almacena la clave de forma segura de inmediato. Solo se puede mostrar 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 | Es el 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í | Es la 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 de APIVoid requiere una verificación de SSL. |
| Ejecuta de forma remota | Casilla de verificación | Desmarcado | No | Marca el campo para ejecutar la integración configurada de forma remota. Una vez que se marca, aparece la opción para seleccionar el usuario remoto (agente). |
Para obtener instrucciones sobre cómo configurar una integración en Google SecOps, consulta Configura integraciones.
Si es necesario, puedes realizar 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 Cómo admitir varias instancias.
Acciones
Para obtener más información sobre las acciones, consulta Responde a las acciones pendientes desde tu escritorio y Ejecuta una acción manual en tu caso.
Obtén la reputación del dominio
La verificación de reputación de dominio comprueba si un dominio está excluido por servicios populares y confiables de listas de entidades bloqueadas de dominios, como URLVir, ThreatLog, OpenPhish, Spam404, PhishTank, ZeuS Tracker y más. Los servicios de listas de entidades bloqueadas de varios dominios identifican sitios web potencialmente maliciosos y fraudulentos involucrados en la distribución de malware, 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í | 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 se excluyen los sitios web del cliente, verificar 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 aplicarla |
|---|---|
| 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 o 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 suelen usar 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í | 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 de 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 aplicarla |
|---|---|
| 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 o 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"
}
]
Obtener la reputación de la URL
Obtén 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í | 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 forma similar a como 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 aplicarla |
|---|---|
| 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 o 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 formato CSV | Si hay datos disponibles, crea una nueva tabla de entidades en formato CSV:
|
General |
| Enriquecimiento | Si hay datos disponibles, agrega lo siguiente como enriquecimiento de entidades (no olvides agregar el prefijo "APIVoid"):
|
Entidad |
Obtener captura de pantalla
Captura una imagen de alta calidad de cualquier sitio web o URL.
Parámetros
N/A
Casos de uso
Un analista puede capturar imágenes 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 aplicarla |
|---|---|
| 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 |
| descartable | 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 o 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 o falso | success:False |
Verificar correo electrónico
Verifica 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í | Umbral de riesgo de 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 aplicarla |
|---|---|
| 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 |
| descartable | 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 o 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 formato CSV | Contenido del archivo CSV: datos de la entidad(consulta el ejemplo que aparece a continuación) | General |
| Enriquecimiento | Si hay datos disponibles, agrega lo siguiente como enriquecimiento de entidades (no olvides agregar el prefijo "APIVoid"):
|
Entidad |
¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.