Package google.security.safebrowsing.v4

Índice

Navegación segura

Las APIs de Safe Browsing permiten que los clientes verifiquen los recursos web (en su mayoría, URLs) con las listas de recursos web no seguros de Google, que se actualizan constantemente. Las APIs de Safe Browsing (v4) incluyen la API de Update y la API de Lookup.

La API de Update está diseñada para nuestros clientes más grandes y, además, incluye los métodos FindFullHashes y FetchThreatListUpdates . La API de Update requiere que los clientes mantengan las listas de amenazas descargadas en una base de datos local.

Primero, los clientes realizan una coincidencia con sus listas locales para determinar el estado (seguro o no seguro) de un recurso web determinado. Por lo general, las listas se componen de prefijos de hash de expresiones de URLs incluidas en la lista negra. Para verificar una URL, los clientes generan los valores hash de una URL determinada y comprueban si hay colisiones de prefijos en sus listas locales. Si se encuentra una coincidencia de prefijo, el cliente obtiene los valores hash completos asociados con el prefijo de hash coincidente a través del método FindFullHashes. Luego, el cliente compara el hash completo local con los hashes completos que se muestran. Una coincidencia indica que la URL no es segura.

En segundo lugar, los clientes obtienen actualizaciones de sus bases de datos locales a través del método FetchThreatListUpdates , que toma el estado actual del cliente y muestra un estado actualizado junto con los cambios que el cliente debe aplicar a sus listas de amenazas locales.

La API de Lookup está diseñada para nuestros clientes más pequeños y les permite hacer coincidir los recursos directamente con las listas de amenazas de Safe Browsing a través del método FindThreatMatches.

Los clientes que usan la API de Update o la API de Lookup pueden obtener una lista de las listas de amenazas de Safe Browsing disponibles para descargar mediante el método ListThreatLists.

{-- TRUSTED_THREAT_REPORTER: Los clientes de amenazas de confianza pueden enviar informes a Google para su análisis mediante el método SubmitThreatReport. --}

FetchThreatListUpdates

rpc FetchThreatListUpdates(FetchThreatListUpdatesRequest) returns (FetchThreatListUpdatesResponse)

Recupera las actualizaciones más recientes de la lista de amenazas. Un cliente puede solicitar actualizaciones de varias listas a la vez.

FindFullHashes

rpc FindFullHashes(FindFullHashesRequest) returns (FindFullHashesResponse)

Busca los hashes completos que coinciden con los prefijos de hash solicitados.

FindThreatMatches

rpc FindThreatMatches(FindThreatMatchesRequest) returns (FindThreatMatchesResponse)

Encuentra las entradas de amenazas que coinciden con las listas de Navegación segura.

ListThreatLists

rpc ListThreatLists(Empty) returns (ListThreatListsResponse)

Muestra las listas de amenazas de la Navegación segura disponibles para descargar.

Suma de comprobación

Es el estado esperado de la base de datos local de un cliente.

Campos
sha256

bytes

El hash SHA256 del estado del cliente, es decir, de la lista ordenada de todos los hashes presentes en la base de datos

ClientInfo

Son los metadatos del cliente asociados con las solicitudes de la API de Safe Browsing.

Campos
client_id

string

Un ID de cliente que, con suerte, identifica de forma única la implementación cliente de la API de Safe Browsing.

client_version

string

Es la versión de la implementación del cliente.

CompressionType

Las formas en que se pueden comprimir los conjuntos de entradas de amenazas.

Enumeraciones
COMPRESSION_TYPE_UNSPECIFIED Desconocido.
RAW Datos sin procesar y sin comprimir
RICE Datos codificados de Rice-Golomb

FetchThreatListUpdatesRequest

Describe una solicitud de actualización de la API de Safe Browsing. Los clientes pueden solicitar actualizaciones de varias listas en una sola solicitud. Es posible que el servidor no responda a todas las solicitudes si no tiene actualizaciones para esa lista. NOTA: El índice de campo 2 no se usa. SIGUIENTE: 5

Campos
client

ClientInfo

Los metadatos del cliente

list_update_requests[]

ListUpdateRequest

Las actualizaciones de la lista de amenazas solicitadas

ListUpdateRequest

Una sola solicitud de actualización de lista.

Campos
threat_type

ThreatType

Es el tipo de amenaza que representan las entradas presentes en la lista.

platform_type

PlatformType

Es el tipo de plataforma en riesgo según las entradas presentes en la lista.

threat_entry_type

ThreatEntryType

Son los tipos de entradas presentes en la lista.

state

bytes

El estado actual del cliente para la lista solicitada (el estado del cliente encriptado que se recibió de la última actualización correcta de la lista)

constraints

Constraints

Las restricciones asociadas con esta solicitud.

Limitaciones

Son las restricciones de esta actualización.

Campos
max_update_entries

int32

Es el tamaño máximo en cantidad de entradas. La actualización no contendrá más entradas que este valor. Debe ser una potencia de 2 entre 2**10 y 2**20. Si es cero, no se establece ningún límite de tamaño de actualización.

max_database_entries

int32

Establece la cantidad máxima de entradas que el cliente desea tener en la base de datos local para la lista especificada. Debe ser una potencia de 2 entre 2**10 y 2**20. Si es cero, no se establece ningún límite de tamaño de la base de datos.

region

string

Solicita la lista de una ubicación geográfica específica. Si no se establece, el servidor puede elegir ese valor según la dirección IP del usuario. Espera el formato ISO 3166-1 alpha-2.

supported_compressions[]

CompressionType

Los tipos de compresión que admite el cliente

language

string

Solicita las listas de un idioma específico. Espera el formato ISO 639 alpha-2.

device_location

string

Es la ubicación física de un cliente, expresada como un código de región ISO 31166-1 alfa-2.

FetchThreatListUpdatesResponse

Campos
list_update_responses[]

ListUpdateResponse

Las actualizaciones de la lista que solicitan los clientes. La cantidad de respuestas aquí puede ser menor que la cantidad de solicitudes que envían los clientes. Este es el caso, por ejemplo, si el servidor no tiene actualizaciones para una lista en particular.

minimum_wait_duration

Duration

Es la duración mínima que el cliente debe esperar antes de emitir cualquier solicitud de actualización. Si no se configura este campo, los clientes pueden actualizarlo cuando quieran.

ListUpdateResponse

Es una actualización de una lista individual.

Campos
threat_type

ThreatType

El tipo de amenaza para el que se muestran los datos.

threat_entry_type

ThreatEntryType

Es el formato de las amenazas.

platform_type

PlatformType

Es el tipo de plataforma para el que se muestran los datos.

response_type

ResponseType

El tipo de respuesta. Esto puede indicar que el cliente debe realizar una acción cuando se recibe la respuesta.

additions[]

ThreatEntrySet

Es un conjunto de entradas para agregar a la lista de un tipo de amenaza local. Se repite para permitir que se envíe una combinación de datos comprimidos y sin procesar en una sola respuesta.

removals[]

ThreatEntrySet

Es un conjunto de entradas que se quitarán de la lista de un tipo de amenaza local. En la práctica, este campo está vacío o contiene exactamente un ThreatEntrySet.

new_client_state

bytes

El nuevo estado del cliente, en formato encriptado No es transparente para los clientes.

checksum

Checksum

El hash SHA256 esperado del estado del cliente, es decir, de la lista ordenada de todos los hashes presentes en la base de datos después de aplicar la actualización proporcionada. Si el estado del cliente no coincide con el estado esperado, el cliente debe ignorar esta actualización y volver a intentarlo más tarde.

ResponseType

Es el tipo de respuesta que se envía al cliente.

Enumeraciones
RESPONSE_TYPE_UNSPECIFIED Desconocido.
PARTIAL_UPDATE Las actualizaciones parciales se aplican a la base de datos local existente del cliente.
FULL_UPDATE Las actualizaciones completas reemplazan toda la base de datos local del cliente. Esto significa que el cliente estaba muy desactualizado o que se cree que está dañado.

FindFullHashesRequest

Solicita que se muestren los hashes completos que coincidan con los prefijos de hash proporcionados.

Campos
client

ClientInfo

Los metadatos del cliente

client_states[]

bytes

Los estados actuales del cliente para cada una de sus listas de amenazas locales

threat_info

ThreatInfo

Las listas y los hashes que se deben verificar

api_client

ClientInfo

Los metadatos del cliente asociados con los llamadores de APIs de nivel superior compilados sobre la implementación del cliente

FindFullHashesResponse

Campos
matches[]

ThreatMatch

Los valores hash completos que coincidieron con los prefijos solicitados

minimum_wait_duration

Duration

Es la duración mínima que el cliente debe esperar antes de emitir cualquier solicitud de búsqueda de hash. Si no se establece este campo, los clientes pueden emitir una solicitud en cuanto lo deseen.

negative_cache_duration

Duration

Para las entidades solicitadas que no coincidieron con la lista de amenazas, indica durante cuánto tiempo se almacenará en caché la respuesta.

FindThreatMatchesRequest

Solicitud para verificar las entradas en función de las listas

Campos
client

ClientInfo

Los metadatos del cliente

threat_info

ThreatInfo

Las listas y entradas que se deben verificar para encontrar coincidencias

FindThreatMatchesResponse

Campos
matches[]

ThreatMatch

La lista de amenazas coincide.

ListThreatListsResponse

Campos
threat_lists[]

ThreatListDescriptor

Las listas que el cliente puede descargar

PlatformType

Tipos de plataformas

Enumeraciones
PLATFORM_TYPE_UNSPECIFIED Plataforma desconocida.
WINDOWS Amenaza para Windows.
LINUX Amenaza para Linux.
ANDROID Amenaza para Android
OSX Amenaza para OS X.
IOS Amenaza para iOS.
ANY_PLATFORM Amenaza que representa al menos una de las plataformas definidas.
ALL_PLATFORMS Amenaza que representa para todas las plataformas definidas.
CHROME Amenaza para Chrome

RawHashes

Las entradas de amenazas sin comprimir en formato hash de una longitud de prefijo en particular. Los valores hash pueden tener un tamaño de entre 4 y 32 bytes. La gran mayoría son de 4 bytes, pero algunos se alargan si colisionan con el hash de una URL popular.

Se usa para enviar ThreatEntrySet a clientes que no admiten compresión o cuando se envían hashes que no son de 4 bytes a clientes que sí admiten compresión.

Campos
prefix_size

int32

Es la cantidad de bytes de cada prefijo codificado a continuación. Este campo puede tener entre 4 (prefijo más corto) y 32 (hash SHA256 completo).

raw_hashes

bytes

Los valores hash, en formato binario, se concatenan en una cadena larga. Los hash se ordenan de manera lexicográfica. Para los usuarios de la API de JSON, los hash están codificados en base64.

RawIndices

Es un conjunto de índices sin procesar que se quitarán de una lista local.

Campos
indices[]

int32

Los índices que se quitarán de una lista local ordenada alfabéticamente.

RiceDeltaEncoding

Los datos codificados de Rice-Golomb. Se usa para enviar hashes de 4 bytes comprimidos o índices de eliminación comprimidos.

Campos
first_value

int64

Es el desplazamiento de la primera entrada en los datos codificados o, si solo se codificó un número entero, el valor de ese número entero. Si el campo está vacío o falta, se supone que es cero.

rice_parameter

int32

El parámetro Golomb-Rice, que es un número entre 2 y 28. Falta este campo (es decir, es cero) si num_entries es cero.

num_entries

int32

Es la cantidad de entradas que se codifican delta en los datos codificados. Si solo se codificó un número entero, este será cero y el valor único se almacenará en first_value.

encoded_data

bytes

Son los deltas codificados con el codificador Golomb-Rice.

ThreatEntry

Una amenaza individual, por ejemplo, una URL maliciosa o su representación de hash Solo se debe establecer uno de estos campos.

Campos
hash

bytes

Un prefijo hash, que consta de los 4 a 32 bytes más significativos de un hash SHA256. Este campo está en formato binario. En el caso de las solicitudes JSON, los valores hash están codificados en base64.

url

string

Una URL.

digest

bytes

Es el resumen de un ejecutable en formato SHA256. La API admite resúmenes hexadecimales y binarios. En el caso de las solicitudes JSON, los resúmenes están codificados en base64.

ThreatEntryMetadata

Son los metadatos asociados con una entrada de amenaza específica. Se espera que el cliente conozca los pares clave-valor de metadatos asociados con cada tipo de amenaza.

Campos
entries[]

MetadataEntry

Las entradas de metadatos

MetadataEntry

Es una sola entrada de metadatos.

Campos
key

bytes

Es la clave de entrada de metadatos. En el caso de las solicitudes JSON, la clave está codificada en base64.

value

bytes

Es el valor de entrada de metadatos. En el caso de las solicitudes JSON, el valor está codificado en base64.

ThreatEntrySet

Es un conjunto de amenazas que se deben agregar o quitar de la base de datos local de un cliente.

Campos
compression_type

CompressionType

Es el tipo de compresión de las entradas de este conjunto.

raw_hashes

RawHashes

Las entradas sin procesar con formato SHA256.

raw_indices

RawIndices

Los índices de eliminación sin procesar de una lista local.

rice_hashes

RiceDeltaEncoding

Los prefijos codificados de 4 bytes de las entradas con formato SHA256, que usan una codificación Golomb-Rice Los valores hash se convierten a uint32, se ordenan de forma ascendente y, luego, se codifican con delta y se almacenan como encoded_data.

rice_indices

RiceDeltaEncoding

Los índices de lista locales codificados y ordenados de forma léxica con una codificación Golomb-Rice Se usa para enviar índices de eliminación comprimidos. Los índices de eliminación (uint32) se ordenan de forma ascendente, luego se codifican con delta y se almacenan como encoded_data.

ThreatEntryType

Tipos de entradas que representan amenazas. Las listas de amenazas son colecciones de entradas de un solo tipo.

Enumeraciones
THREAT_ENTRY_TYPE_UNSPECIFIED Sin especificar.
URL Una URL.
EXECUTABLE Un programa ejecutable.

ThreatInfo

Es la información sobre una o más amenazas que un cliente envía cuando busca coincidencias en las listas de amenazas.

Campos
threat_types[]

ThreatType

Los tipos de amenazas que se deben verificar.

platform_types[]

PlatformType

Los tipos de plataformas que se deben verificar.

threat_entry_types[]

ThreatEntryType

Los tipos de entrada que se deben verificar.

threat_entries[]

ThreatEntry

Las entradas de amenazas que se deben verificar.

ThreatListDescriptor

Describe una lista de amenazas individual. Una lista se define con tres parámetros: el tipo de amenaza que representa, el tipo de plataforma a la que se orienta y el tipo de entradas de la lista.

Campos
threat_type

ThreatType

Es el tipo de amenaza que representan las entradas de la lista.

platform_type

PlatformType

Es el tipo de plataforma al que se orientan las entradas de la lista.

threat_entry_type

ThreatEntryType

Los tipos de entradas que contiene la lista.

ThreatMatch

Una coincidencia cuando se verifica una entrada de amenaza en las listas de amenazas de la Navegación segura.

Campos
threat_type

ThreatType

El tipo de amenaza que coincide con esta amenaza.

platform_type

PlatformType

El tipo de plataforma que coincide con esta amenaza.

threat_entry_type

ThreatEntryType

El tipo de entrada de amenaza que coincide con esta amenaza.

threat

ThreatEntry

La amenaza que coincide con esta amenaza.

threat_entry_metadata

ThreatEntryMetadata

Metadatos opcionales asociados con esta amenaza.

cache_duration

Duration

Es la vida útil de la caché para la coincidencia que se muestra. Los clientes no deben almacenar en caché esta respuesta por más tiempo para evitar falsos positivos.

ThreatType

Tipos de amenazas

Enumeraciones
THREAT_TYPE_UNSPECIFIED Desconocido.
MALWARE Tipo de amenaza de software malicioso.
SOCIAL_ENGINEERING Tipo de amenaza de ingeniería social.
UNWANTED_SOFTWARE Tipo de amenaza de software no deseado.
POTENTIALLY_HARMFUL_APPLICATION Tipo de amenaza de aplicación potencialmente dañina.