Package google.security.safebrowsing.v4

Índice

SafeBrowsing

Las APIs de Navegación segura permiten a los clientes verificar los recursos web (por lo general, URLs) con respecto a las listas de Google de recursos web no seguros que se actualizan constantemente. Las APIs de Navegación segura (v4) incluyen la API de Update y la API de Lookup.

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

En primer lugar, los clientes establecen coincidencias 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 URL en la lista negra. Para verificar una URL, los clientes generan los hashes 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 hashes 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 a sus bases de datos locales a través del método FetchThreatListUpdates , que toma el estado actual del cliente y devuelve un estado de cliente actualizado junto con los cambios que el cliente debe aplicar a sus listas de amenazas locales.

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

Los clientes que utilizan la API Update o la API de Lookup pueden obtener una lista de las listas de amenazas de Navegación segura disponibles para descargar a través del método ListThreatLists.

{-- TRUSTED_THREAT_REPORTER: Los clientes de amenazas confiables pueden enviar informes a Google para su análisis a través del 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 para varias listas a la vez.

FindFullHashes

rpc FindFullHashes(FindFullHashesRequest) returns (FindFullHashesResponse)

Busca los hashes completos que coincidan 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 una lista de las listas de amenazas de Navegación segura disponibles para descargar.

Suma de comprobación

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

Los metadatos del cliente asociados con las solicitudes a la API de Navegación segura.

Campos
client_id

string

Un ID de cliente que (con suerte) identifica de forma única la implementación del cliente de la API de Navegación segura.

client_version

string

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

CompressionType

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

Enumeradores
COMPRESSION_TYPE_UNSPECIFIED Desconocido.
RAW Datos sin procesar, sin comprimir.
RICE Datos codificados en Rice-Golomb.

FetchThreatListUpdatesRequest

Describe una solicitud de actualización a la API de Navegación segura. Los clientes pueden solicitar actualizaciones para 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 está en uso. 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

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

platform_type

PlatformType

El tipo de plataforma en riesgo por entradas presentes en la lista.

threat_entry_type

ThreatEntryType

Los tipos de entradas presentes en la lista.

state

bytes

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

constraints

Constraints

Las restricciones asociadas con esta solicitud.

Restricciones

Las restricciones de esta actualización.

Campos
max_update_entries

int32

El tamaño máximo en cantidad de entradas. La actualización no contendrá más entradas que este valor. Esto 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 actualizaciones.

max_database_entries

int32

Establece la cantidad máxima de entradas que el cliente está dispuesto a tener en la base de datos local para la lista especificada. Esto 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 para una ubicación geográfica específica. Si no se configura, el servidor puede elegir ese valor según la dirección IP del usuario. Espera el formato ISO 3166-1 alfa-2.

supported_compressions[]

CompressionType

Los tipos de compresión que admite el cliente.

language

string

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

device_location

string

La ubicación física de un cliente, expresada como un código regional 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 debe esperar el cliente antes de emitir una solicitud de actualización. Si no estableces este campo, los clientes podrán actualizarlo en cuanto lo deseen.

ListUpdateResponse

Es una actualización de una lista individual.

Campos
threat_type

ThreatType

El tipo de amenaza para el que se muestran datos.

threat_entry_type

ThreatEntryType

El formato de las amenazas.

platform_type

PlatformType

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

response_type

ResponseType

Es el tipo de respuesta. Esto puede indicar que el cliente requiere una acción cuando se recibe la respuesta.

additions[]

ThreatEntrySet

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

Un conjunto de entradas para quitar 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. Opaco 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

El tipo de respuesta que se envía al cliente.

Enumeradores
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 consideró que estaba dañado.

FindFullHashesRequest

Solicitud para mostrar hashes completos que coincidan con los prefijos de hash proporcionados.

Campos
client

ClientInfo

Los metadatos del cliente.

client_states[]

bytes

Los estados del cliente actual para cada una de las listas de amenazas locales del cliente.

threat_info

ThreatInfo

Las listas y los hashes que se deben verificar.

api_client

ClientInfo

Metadatos de cliente asociados con llamadores de APIs de nivel superior compilados sobre la implementación del cliente.

FindFullHashesResponse

Campos
matches[]

ThreatMatch

Los hashes completos que coincidieron con los prefijos solicitados.

minimum_wait_duration

Duration

Es la duración mínima que debe esperar el cliente 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, cuánto tiempo se debe almacenar en caché la respuesta.

FindThreatMatchesRequest

Solicitud para verificar las entradas con las listas.

Campos
client

ClientInfo

Los metadatos del cliente.

threat_info

ThreatInfo

Las listas y entradas en las que se comprobará si hay coincidencias.

FindThreatMatchesResponse

Campos
matches[]

ThreatMatch

La lista de amenazas coincide.

ListThreatListsResponse

Campos
threat_lists[]

ThreatListDescriptor

Las listas disponibles para que el cliente las descargue.

PlatformType

Tipos de plataformas.

Enumeradores
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 La amenaza representa al menos una de las plataformas definidas.
ALL_PLATFORMS Amenaza para todas las plataformas definidas.
CHROME Amenaza para Chrome.

RawHashes

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

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

Campos
prefix_size

int32

El número de bytes para cada prefijo codificado a continuación. Este campo puede ser de 4 (prefijo más corto) a 32 (hash SHA256 completo).

raw_hashes

bytes

Los hashes, en formato binario, concatenados en una cadena larga. Los hash se ordenan en orden lexicográfico. Para los usuarios de la API de JSON, los hash están codificados en base64.

RawIndices

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 de forma lexicográfica.

RiceDeltaEncoding

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

Campos
first_value

int64

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 no se encuentra, supón 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, cero) si num_entries es cero.

num_entries

int32

El número de entradas que están codificadas 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

Los deltas codificados que se codifican 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 de hash que consta de los 4 a 32 bytes más significativos de un hash SHA256. Este campo está en formato binario. Para las solicitudes JSON, los hash están codificados en base64.

url

string

Una URL.

digest

bytes

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

ThreatEntryMetadata

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

Una sola entrada de metadatos.

Campos
key

bytes

La clave de entrada de metadatos. Para las solicitudes JSON, la clave está codificada en base64.

value

bytes

El valor de entrada de metadatos. Para las solicitudes JSON, el valor está codificado en base64.

ThreatEntrySet

Un conjunto de amenazas que se debe agregar o quitar de la base de datos local de un cliente.

Campos
compression_type

CompressionType

El tipo de compresión para las entradas en este conjunto.

raw_hashes

RawHashes

Las entradas con formato SHA256 sin procesar.

raw_indices

RawIndices

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

rice_hashes

RiceDeltaEncoding

Los prefijos de 4 bytes codificados de entradas con formato SHA256 que utilizan una codificación Golomb-Rice. Los hashes se convierten en uint32, se ordenan en orden ascendente y, luego, se codifican delta y se almacenan como encoded_data.

rice_indices

RiceDeltaEncoding

Los índices de lista locales codificados, ordenados lexicográficamente, mediante una codificación Golomb-Rice. Se usa para enviar índices de eliminación comprimidos. Los índices de eliminación (uint32) se ordenan en forma ascendente, luego se codifican 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.

Enumeradores
THREAT_ENTRY_TYPE_UNSPECIFIED No se especifica.
URL Una URL.
EXECUTABLE Un programa ejecutable.

ThreatInfo

La información sobre una o más amenazas que un cliente envía al buscar 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 entradas que se deben verificar.

threat_entries[]

ThreatEntry

Las entradas de amenazas que se deben verificar.

ThreatListDescriptor

Describe una lista de amenazas individual. Una lista está definida por tres parámetros: el tipo de amenaza representada, el tipo de plataforma a la que apunta la amenaza y el tipo de entradas en la lista.

Campos
threat_type

ThreatType

El tipo de amenaza que representan las entradas de la lista

platform_type

PlatformType

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

threat_entry_type

ThreatEntryType

Los tipos de entradas que se incluyen en la lista.

ThreatMatch

Una coincidencia cuando se verifica una entrada de amenaza en las listas de amenazas de 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

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

ThreatType

Tipos de amenazas.

Enumeradores
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 la aplicación potencialmente dañina.