Package google.security.safebrowsing.v4

Indice

SafeBrowsing

Le API di Navigazione sicura consentono ai client di verificare le risorse web (più comunemente gli URL) rispetto agli elenchi costantemente aggiornati di Google relativi a risorse web non sicure. Le API Navigazione sicura (v4) includono l'API Update e l'API Lookup.

L'API Update è progettata per i clienti più grandi e include i metodi FindFullHashes e FetchThreatListUpdates . L'API Update richiede che i client mantengano gli elenchi delle minacce scaricati in un database locale.

Innanzitutto, i client creano corrispondenze con i loro elenchi locali per determinare lo stato (sicuro o non sicuro) di una determinata risorsa web. Più comunemente, gli elenchi sono costituiti da prefissi hash di espressioni URL non consentite. Per verificare un URL, i client generano gli hash di un determinato URL e verificano la presenza di conflitti di prefisso nei loro elenchi locali. Se viene trovata una corrispondenza di prefisso, il client ottiene gli hash completi associati al prefisso hash con corrispondenza tramite il metodo FindFullHashes . Il client confronta quindi l'hash completo locale con gli hash completi restituiti; una corrispondenza indica che l'URL non è sicuro.

In secondo luogo, i client ricevono aggiornamenti ai database locali tramite il metodo FetchThreatListUpdates , che prende lo stato corrente del client e restituisce uno stato aggiornato del client insieme alle modifiche che il client deve applicare agli elenchi di minacce locali.

L'API Lookup è progettata per i clienti più piccoli e consente loro di abbinare le risorse direttamente agli elenchi di minacce di Navigazione sicura tramite il metodo FindThreatMatches.

I client che utilizzano l'API Update o l'API Lookup possono ottenere un elenco degli elenchi di minacce di Navigazione sicura disponibili per il download tramite il metodo ListThreatLists.

{-- TRUSTED_THREAT_REPORTER: I client con minacce attendibili possono inviare segnalazioni a Google per l'analisi con il metodo SubmitThreatReport. --}

FetchThreatListUpdates

rpc FetchThreatListUpdates(FetchThreatListUpdatesRequest) returns (FetchThreatListUpdatesResponse)

Recupera gli aggiornamenti più recenti dell'elenco delle minacce. Un cliente può richiedere aggiornamenti per più elenchi contemporaneamente.

FindFullHashes

rpc FindFullHashes(FindFullHashesRequest) returns (FindFullHashesResponse)

Trova gli hash completi che corrispondono ai prefissi hash richiesti.

FindThreatMatches

rpc FindThreatMatches(FindThreatMatchesRequest) returns (FindThreatMatchesResponse)

Trova le voci delle minacce che corrispondono agli elenchi di Navigazione sicura.

ListThreatLists

rpc ListThreatLists(Empty) returns (ListThreatListsResponse)

Elenca gli elenchi delle minacce di Navigazione sicura disponibili per il download.

Checksum

Lo stato previsto del database locale di un client.

Campi
sha256

bytes

L'hash SHA256 dello stato del client, ovvero dell'elenco ordinato di tutti gli hash presenti nel database.

ClientInfo

I metadati del client associati alle richieste dell'API Navigazione sicura.

Campi
client_id

string

Un ID client che (si spera) identifica in modo univoco l'implementazione client dell'API Navigazione sicura.

client_version

string

La versione dell'implementazione sul client.

CompressionType

Modi in cui gli insiemi di accessi di minacce possono essere compressi.

Enum
COMPRESSION_TYPE_UNSPECIFIED Sconosciuto.
RAW Dati non elaborati e non compressi.
RICE Dati codificati in Rice-Golomb.

FetchThreatListUpdatesRequest

Descrive una richiesta di aggiornamento dell'API Navigazione sicura. I client possono richiedere aggiornamenti per più elenchi in una singola richiesta. Il server potrebbe non rispondere a tutte le richieste se non ha aggiornamenti per l'elenco. NOTA: l'indice di campo 2 non è utilizzato. SUCCESSIVI: 5

Campi
client

ClientInfo

I metadati del client.

list_update_requests[]

ListUpdateRequest

L'elenco delle minacce richiesto è stato aggiornato.

ListUpdateRequest

Una singola richiesta di aggiornamento dell'elenco.

Campi
threat_type

ThreatType

Il tipo di minaccia rappresentata dalle voci presenti nell'elenco.

platform_type

PlatformType

Il tipo di piattaforma a rischio in base alle voci presenti nell'elenco.

threat_entry_type

ThreatEntryType

I tipi di voci presenti nell'elenco.

state

bytes

Lo stato attuale del client per l'elenco richiesto (lo stato del client criptato ricevuto dall'ultimo aggiornamento dell'elenco riuscito).

constraints

Constraints

I vincoli associati a questa richiesta.

Vincoli

I vincoli per questo aggiornamento.

Campi
max_update_entries

int32

La dimensione massima nel numero di voci. L'aggiornamento non conterrà più voci di questo valore. Deve essere una potenza di 2 compresa tra 2**10 e 2**20. Se il valore è zero, non viene impostato alcun limite per le dimensioni degli aggiornamenti.

max_database_entries

int32

Imposta il numero massimo di voci che il client è disposto ad avere nel database locale per l'elenco specificato. Deve essere una potenza di 2 compresa tra 2**10 e 2**20. Se è pari a zero, non viene impostato alcun limite di dimensione del database.

region

string

Richiede l'elenco di una posizione geografica specifica. Se non viene configurato, il server può scegliere questo valore in base all'indirizzo IP dell'utente. È richiesto il formato ISO 3166-1 alpha-2.

supported_compressions[]

CompressionType

I tipi di compressione supportati dal client.

language

string

Richiede gli elenchi per una lingua specifica. È richiesto il formato ISO 639 alpha-2.

device_location

string

La località fisica di un cliente, espressa come codice regione ISO 31166-1 alpha-2.

FetchThreatListUpdatesResponse

Campi
list_update_responses[]

ListUpdateResponse

Gli aggiornamenti dell'elenco richiesti dai client. Il numero di risposte qui potrebbe essere inferiore al numero di richieste inviate dai clienti. ad esempio se il server non dispone di aggiornamenti per un determinato elenco.

minimum_wait_duration

Duration

La durata minima che il client deve attendere prima di inviare qualsiasi richiesta di aggiornamento. Se questo campo non viene impostato, i clienti possono eseguire l'aggiornamento appena vogliono.

ListUpdateResponse

Aggiornamento di un singolo elenco.

Campi
threat_type

ThreatType

Il tipo di minaccia per cui vengono restituiti i dati.

threat_entry_type

ThreatEntryType

Il formato delle minacce.

platform_type

PlatformType

Il tipo di piattaforma per il quale vengono restituiti i dati.

response_type

ResponseType

Il tipo di risposta. Ciò può indicare che il client deve eseguire un'azione quando riceve la risposta.

additions[]

ThreatEntrySet

Un insieme di voci da aggiungere all'elenco di un tipo di minaccia locale. Ripetizione della procedura per consentire l'invio di una combinazione di dati compressi e non elaborati in un'unica risposta.

removals[]

ThreatEntrySet

Un insieme di voci da rimuovere dall'elenco di un tipo di minaccia locale. In pratica, questo campo è vuoto o contiene esattamente un ThreatEntrySet.

new_client_state

bytes

Il nuovo stato del client in formato criptato. Opaca per i clienti.

checksum

Checksum

L'hash SHA256 previsto dello stato del client, ovvero l'elenco ordinato di tutti gli hash presenti nel database dopo l'applicazione dell'aggiornamento fornito. Se lo stato del client non corrisponde a quello previsto, il client deve ignorare questo aggiornamento e riprovare più tardi.

ResponseType

Il tipo di risposta inviato al client.

Enum
RESPONSE_TYPE_UNSPECIFIED Sconosciuto.
PARTIAL_UPDATE Gli aggiornamenti parziali vengono applicati al database locale esistente del client.
FULL_UPDATE Gli aggiornamenti completi sostituiscono l'intero database locale del client. Ciò significa che il cliente era gravemente obsoleto o che è ritenuto corrotto.

FindFullHashesRequest

Richiesta di restituire hash completi corrispondenti ai prefissi hash forniti.

Campi
client

ClientInfo

I metadati del client.

client_states[]

bytes

Gli stati attuali del client per ciascun elenco locale delle minacce del client.

threat_info

ThreatInfo

Elenchi e hash da controllare.

api_client

ClientInfo

Metadati del client associati ai chiamanti di API di livello superiore basate sull'implementazione del client.

FindFullHashesResponse

Campi
matches[]

ThreatMatch

Gli hash completi corrispondenti ai prefissi richiesti.

minimum_wait_duration

Duration

La durata minima che il client deve attendere prima di inviare una richiesta di hash di ricerca. Se questo campo non viene configurato, i clienti possono inviare una richiesta appena lo desiderano.

negative_cache_duration

Duration

Per le entità richieste che non corrispondono all'elenco delle minacce, per quanto tempo occorre memorizzare la risposta nella cache.

FindThreatMatchesRequest

Richiesta di confrontare le voci con gli elenchi.

Campi
client

ClientInfo

I metadati del client.

threat_info

ThreatInfo

Gli elenchi e le voci da verificare per trovare corrispondenze.

FindThreatMatchesResponse

Campi
matches[]

ThreatMatch

L'elenco delle minacce corrisponde.

ListThreatListsResponse

Campi
threat_lists[]

ThreatListDescriptor

Gli elenchi disponibili per il download da parte del client.

PlatformType

Tipi di piattaforme.

Enum
PLATFORM_TYPE_UNSPECIFIED Piattaforma sconosciuta.
WINDOWS Una minaccia rivolta a Windows.
LINUX Minaccia presentata a Linux.
ANDROID Minaccia presentata ad Android.
OSX Minaccia presentata a OS X.
IOS Minaccia presentata a iOS.
ANY_PLATFORM Minaccia per almeno una delle piattaforme definite.
ALL_PLATFORMS Minaccia rappresentata per tutte le piattaforme definite.
CHROME Minaccia presentata a Chrome.

RawHashes

Le voci di minacce non compresse in formato hash con un prefisso di lunghezza particolare. Gli hash possono avere una dimensione compresa tra 4 e 32 byte. In gran parte sono di 4 byte, ma alcuni hash vengono allungati se si scontrano con l'hash di un URL popolare.

Utilizzato per inviare ThreatEntrySet a client che non supportano la compressione o per inviare hash non a 4 byte a client che supportano la compressione.

Campi
prefix_size

int32

Il numero di byte per ogni prefisso codificato di seguito. Questo campo può essere compreso tra 4 (prefisso più breve) e 32 (hash SHA256 completo).

raw_hashes

bytes

Gli hash, in formato binario, concatenati in un'unica stringa lunga. Gli hash sono ordinati in ordine lessicografico. Per gli utenti dell'API JSON, gli hash sono codificati in base64.

RawIndices

Un insieme di indici non elaborati da rimuovere da un elenco locale.

Campi
indices[]

int32

Gli indici da rimuovere da un elenco locale ordinato lessicograficamente.

RiceDeltaEncoding

I dati codificati di Rice-Golomb. Utilizzato per l'invio di hash a 4 byte compressi o indici di rimozione compressi.

Campi
first_value

int64

L'offset della prima voce nei dati codificati o, se è stato codificato un solo numero intero, il valore di quel singolo numero intero. Se il campo è vuoto o mancante, supponiamo che sia zero.

rice_parameter

int32

Il parametro Golomb-Rice, che è un numero compreso tra 2 e 28. Questo campo non è presente (ovvero è zero) se num_entries è zero.

num_entries

int32

Il numero di voci con codifica delta nei dati codificati. Se è stato codificato un solo numero intero, questo sarà pari a zero e il singolo valore verrà archiviato in first_value.

encoded_data

bytes

I delta codificati che sono codificati utilizzando il programmatore Golomb-Rice.

ThreatEntry

Una singola minaccia; per esempio, un URL dannoso o la sua rappresentazione hash. Deve essere impostato solo uno di questi campi.

Campi
hash

bytes

Un prefisso hash, composto dai 4-32 byte più significativi di un hash SHA256. Questo campo è in formato binario. Per le richieste JSON, gli hash sono codificati in base64.

url

string

Un URL.

digest

bytes

Il digest di un eseguibile in formato SHA256. L'API supporta digest binari ed esadecimali. Per le richieste JSON, i digest sono codificati in base64.

ThreatEntryMetadata

I metadati associati a una voce di minaccia specifica. Il client deve conoscere le coppie chiave/valore dei metadati associate a ogni tipo di minaccia.

Campi
entries[]

MetadataEntry

Le voci dei metadati.

MetadataEntry

Una singola voce di metadati.

Campi
key

bytes

La chiave di accesso dei metadati. Per le richieste JSON, la chiave è codificata in base64.

value

bytes

Il valore della voce dei metadati. Per le richieste JSON, il valore è codificato in base64.

ThreatEntrySet

Un insieme di minacce che deve essere aggiunto o rimosso dal database locale di un client.

Campi
compression_type

CompressionType

Il tipo di compressione per le voci di questo insieme.

raw_hashes

RawHashes

Le voci in formato SHA256 non elaborate.

raw_indices

RawIndices

Gli indici di rimozione non elaborati per un elenco locale.

rice_hashes

RiceDeltaEncoding

I prefissi da 4 byte codificati delle voci in formato SHA256, utilizzando una codifica Golomb-Rice. Gli hash vengono convertiti in uint32, ordinati in ordine crescente, quindi codificati delta e memorizzati come coded_data.

rice_indices

RiceDeltaEncoding

Gli indici di elenco locali codificati, ordinati lessicograficamente, utilizzando una codifica Golomb-Rice. Utilizzato per l'invio di indici di rimozione compressi. Gli indici di rimozione (uint32) vengono ordinati in ordine crescente, quindi vengono codificati delta e memorizzati come coded_data.

ThreatEntryType

Tipi di voci che rappresentano una minaccia. Gli elenchi di minacce sono raccolte di voci di un singolo tipo.

Enum
THREAT_ENTRY_TYPE_UNSPECIFIED Non specificato.
URL Un URL.
EXECUTABLE Un programma eseguibile.

ThreatInfo

Le informazioni relative a una o più minacce inviate da un cliente per il controllo delle corrispondenze negli elenchi di minacce.

Campi
threat_types[]

ThreatType

I tipi di minacce da controllare.

platform_types[]

PlatformType

I tipi di piattaforma da controllare.

threat_entry_types[]

ThreatEntryType

I tipi di voce da controllare.

threat_entries[]

ThreatEntry

Le voci delle minacce da controllare.

ThreatListDescriptor

Descrive un singolo elenco di minacce. Un elenco è definito da tre parametri: il tipo di minaccia rappresentata, il tipo di piattaforma presa di mira e il tipo di voci nell'elenco.

Campi
threat_type

ThreatType

Il tipo di minaccia rappresentato dalle voci dell'elenco.

platform_type

PlatformType

Il tipo di piattaforma scelto come target dalle voci dell'elenco.

threat_entry_type

ThreatEntryType

I tipi di voci contenuti nell'elenco.

ThreatMatch

Una corrispondenza quando viene controllata una voce di minaccia negli elenchi di minacce di Navigazione sicura.

Campi
threat_type

ThreatType

Il tipo di minaccia corrispondente a questa minaccia.

platform_type

PlatformType

Il tipo di piattaforma corrispondente a questa minaccia.

threat_entry_type

ThreatEntryType

Il tipo di voce della minaccia corrispondente a questa minaccia.

threat

ThreatEntry

La minaccia corrispondente a questa minaccia.

threat_entry_metadata

ThreatEntryMetadata

Metadati facoltativi associati a questa minaccia.

cache_duration

Duration

La durata della cache per la corrispondenza restituita. I client non devono memorizzare nella cache questa risposta per un periodo superiore a quello specificato per evitare falsi positivi.

ThreatType

Tipi di minacce.

Enum
THREAT_TYPE_UNSPECIFIED Sconosciuto.
MALWARE Tipo di minaccia malware.
SOCIAL_ENGINEERING Tipo di minaccia di ingegneria sociale.
UNWANTED_SOFTWARE Tipo di minaccia software indesiderato.
POTENTIALLY_HARMFUL_APPLICATION Tipo di minaccia per le applicazioni potenzialmente dannosa.