Package google.security.safebrowsing.v4

Index

SafeBrowsing

Mit den Safe Browsing APIs können Clients Webressourcen (in der Regel URLs) mit den ständig aktualisierten Listen unsicherer Webressourcen von Google abgleichen. Die Safe Browsing APIs (v4) umfassen die Update API und die Lookup API.

Die Update API ist für unsere größeren Kunden konzipiert und umfasst die Methoden „FindFullHashes“ und „FetchThreatListUpdates“. Für die Update API müssen Clients heruntergeladene Bedrohungslisten in einer lokalen Datenbank verwalten.

Zuerst vergleichen Clients die URL mit ihren lokalen Listen, um den Status (sicher oder unsicher) einer bestimmten Webressource zu ermitteln. In den meisten Fällen bestehen Listen aus Hash-Präfixen von URL-Ausdrücken auf der schwarzen Liste. Um eine URL zu prüfen, generieren Clients die Hashes einer bestimmten URL und prüfen in ihren lokalen Listen auf Präfixkollisionen. Wenn eine Präfixübereinstimmung gefunden wird, ruft der Client über die Methode „FindFullHashes“ die vollständigen Hashes ab, die mit dem übereinstimmenden Hash-Präfix verknüpft sind. Der Client vergleicht dann den lokalen vollständigen Hash mit den zurückgegebenen vollständigen Hashes. Eine Übereinstimmung bedeutet, dass die URL unsicher ist.

Zweitens erhalten Clients über die Methode „FetchThreatListUpdates“ Updates für ihre lokalen Datenbanken. Dabei wird der aktuelle Status des Clients abgerufen und ein aktualisierter Clientstatus zusammen mit den Änderungen zurückgegeben, die der Client auf seine lokalen Bedrohungslisten anwenden sollte.

Die Lookup API ist für unsere kleineren Kunden konzipiert und ermöglicht es ihnen, Ressourcen über die Methode „FindThreatMatches“ direkt mit den Safe Browsing-Gefahrenlisten abzugleichen.

Clients, die entweder die Update API oder die Lookup API verwenden, können über die Methode „ListThreatLists“ eine Liste der zum Download verfügbaren Safe Browsing-Gefahrenlisten abrufen.

{-- TRUSTED_THREAT_REPORTER: Trusted Threat-Clients können über die Methode „SubmitThreatReport“ Berichte zur Analyse an Google senden. --}

FetchThreatListUpdates

rpc FetchThreatListUpdates(FetchThreatListUpdatesRequest) returns (FetchThreatListUpdatesResponse)

Hier werden die neuesten Aktualisierungen der Bedrohungsliste abgerufen. Ein Kunde kann Aktualisierungen für mehrere Listen gleichzeitig anfordern.

FindFullHashes

rpc FindFullHashes(FindFullHashesRequest) returns (FindFullHashesResponse)

Sucht nach den vollständigen Hashes, die mit den angeforderten Hash-Präfixen übereinstimmen.

FindThreatMatches

rpc FindThreatMatches(FindThreatMatchesRequest) returns (FindThreatMatchesResponse)

Hiermit werden die Bedrohungseinträge gefunden, die mit den Safe Browsing-Listen übereinstimmen.

ListThreatLists

rpc ListThreatLists(Empty) returns (ListThreatListsResponse)

Liste der zum Download verfügbaren Safe Browsing-Gefahrenlisten.

Prüfsumme

Der erwartete Zustand der lokalen Datenbank eines Clients.

Felder
sha256

bytes

Der SHA256-Hash des Clientstatus, also der sortierten Liste aller in der Datenbank vorhandenen Hashes.

ClientInfo

Die Clientmetadaten, die mit Safe Browsing API-Anfragen verknüpft sind.

Felder
client_id

string

Eine Client-ID, die (hoffentlich) die Clientimplementierung der Safe Browsing API eindeutig identifiziert.

client_version

string

Die Version der Clientimplementierung.

CompressionType

Die Möglichkeiten, wie Sets von Bedrohungseinträgen komprimiert werden können.

Enums
COMPRESSION_TYPE_UNSPECIFIED Unbekannt
RAW Rohe, unkomprimierte Daten.
RICE Mit Rice-Golomb codierte Daten.

FetchThreatListUpdatesRequest

Beschreibt eine Aktualisierungsanfrage der Safe Browsing API. Clients können in einer einzigen Anfrage Aktualisierungen für mehrere Listen anfordern. Der Server antwortet möglicherweise nicht auf alle Anfragen, wenn er keine Updates für diese Liste hat. HINWEIS: Feldindex 2 wird nicht verwendet. NÄCHSTER SCHRITT: 5

Felder
client

ClientInfo

Die Clientmetadaten.

list_update_requests[]

ListUpdateRequest

Die angeforderte Bedrohungsliste wird aktualisiert.

ListUpdateRequest

Eine Anfrage zum Aktualisieren einer einzelnen Liste.

Felder
threat_type

ThreatType

Die Art der Bedrohung, die von Einträgen in der Liste ausgeht.

platform_type

PlatformType

Der Typ der Plattform, die durch Einträge in der Liste gefährdet ist.

threat_entry_type

ThreatEntryType

Die Arten von Einträgen in der Liste.

state

bytes

Der aktuelle Status des Clients für die angeforderte Liste (der verschlüsselte Clientstatus, der bei der letzten erfolgreichen Listenaktualisierung empfangen wurde).

constraints

Constraints

Die Einschränkungen, die mit dieser Anfrage verbunden sind.

Einschränkungen

Die Einschränkungen für dieses Update.

Felder
max_update_entries

int32

Die maximale Größe in der Anzahl der Einträge. Das Update enthält nicht mehr Einträge als dieser Wert. Dies sollte eine Zweierpotenz zwischen 2**10 und 2**20 sein. Wenn der Wert null ist, ist keine Größenbeschränkung für Updates festgelegt.

max_database_entries

int32

Legt die maximale Anzahl von Einträgen fest, die der Client in der lokalen Datenbank für die angegebene Liste bereitstellen möchte. Dies sollte eine Zweierpotenz zwischen 2**10 und 2**20 sein. Wenn der Wert „0“ ist, ist keine Begrenzung für die Datenbankgröße festgelegt.

region

string

Die Liste wird für einen bestimmten geografischen Standort angefordert. Wenn dieser Wert nicht festgelegt ist, wählt der Server ihn möglicherweise anhand der IP-Adresse des Nutzers aus. Es wird das Format ISO 3166-1 alpha-2 erwartet.

supported_compressions[]

CompressionType

Die vom Client unterstützten Komprimierungstypen.

language

string

Hier werden die Listen für eine bestimmte Sprache angefordert. Es wird das ISO 639 alpha-2-Format erwartet.

device_location

string

Der physische Standort eines Kunden, ausgedrückt als ISO 31166-1-Alpha-2-Regionscode.

FetchThreatListUpdatesResponse

Felder
list_update_responses[]

ListUpdateResponse

Die von den Kunden angeforderten Listenaktualisierungen. Die Anzahl der Antworten ist hier möglicherweise geringer als die Anzahl der von den Clients gesendeten Anfragen. Das ist beispielsweise der Fall, wenn der Server keine Updates für eine bestimmte Liste hat.

minimum_wait_duration

Duration

Die Mindestdauer, die der Client warten muss, bevor er eine Aktualisierungsanfrage ausgibt. Wenn dieses Feld nicht festgelegt ist, können Clients jederzeit aktualisieren.

ListUpdateResponse

Eine Aktualisierung einer einzelnen Liste.

Felder
threat_type

ThreatType

Der Bedrohungstyp, für den Daten zurückgegeben werden.

threat_entry_type

ThreatEntryType

Das Format der Bedrohungen.

platform_type

PlatformType

Der Plattformtyp, für den Daten zurückgegeben werden.

response_type

ResponseType

Der Antworttyp. Dies kann darauf hinweisen, dass der Kunde nach Erhalt der Antwort eine Aktion ausführen muss.

additions[]

ThreatEntrySet

Eine Reihe von Einträgen, die der Liste eines lokalen Bedrohungstyps hinzugefügt werden sollen. Wird wiederholt, damit eine Kombination aus komprimierten und Rohdaten in einer einzigen Antwort gesendet werden kann.

removals[]

ThreatEntrySet

Eine Reihe von Einträgen, die aus der Liste eines lokalen Bedrohungstyps entfernt werden sollen. In der Praxis ist dieses Feld leer oder enthält genau eine ThreatEntrySet.

new_client_state

bytes

Der neue Clientstatus im verschlüsselten Format. Für Kunden nicht transparent.

checksum

Checksum

Der erwartete SHA256-Hash des Clientstatus, d. h. der sortierten Liste aller Hashes, die nach der Anwendung des bereitgestellten Updates in der Datenbank vorhanden sind. Wenn der Clientstatus nicht mit dem erwarteten Status übereinstimmt, muss der Client diese Aktualisierung ignorieren und es später noch einmal versuchen.

ResponseType

Der Typ der Antwort, die an den Client gesendet wird.

Enums
RESPONSE_TYPE_UNSPECIFIED Unbekannt
PARTIAL_UPDATE Teilaktualisierungen werden auf die vorhandene lokale Datenbank des Kunden angewendet.
FULL_UPDATE Bei vollständigen Aktualisierungen wird die gesamte lokale Datenbank des Clients ersetzt. Das bedeutet, dass der Client entweder stark veraltet oder beschädigt ist.

FindFullHashesRequest

Vollständige Hashes anfordern, die mit den angegebenen Hash-Präfixen übereinstimmen.

Felder
client

ClientInfo

Die Clientmetadaten.

client_states[]

bytes

Die aktuellen Clientstatus für jede der lokalen Bedrohungslisten des Clients.

threat_info

ThreatInfo

Die zu prüfenden Listen und Hash-Werte.

api_client

ClientInfo

Clientmetadaten, die mit Aufrufern von APIs höherer Ebene verknüpft sind, die auf der Implementierung des Clients basieren.

FindFullHashesResponse

Felder
matches[]

ThreatMatch

Die vollständigen Hashes, die mit den angeforderten Präfixen übereinstimmen.

minimum_wait_duration

Duration

Die Mindestdauer, die der Client warten muss, bevor er eine Anfrage zum Finden von Hashes ausgibt. Wenn dieses Feld nicht festgelegt ist, können Clients jederzeit eine Anfrage senden.

negative_cache_duration

Duration

Wie lange die Antwort für angeforderte Entitäten, die nicht mit der Bedrohungsliste übereinstimmen, im Cache gespeichert werden soll.

FindThreatMatchesRequest

Anfordern, dass Einträge mit Listen abgeglichen werden.

Felder
client

ClientInfo

Die Clientmetadaten.

threat_info

ThreatInfo

Die Listen und Einträge, die auf Übereinstimmungen geprüft werden sollen.

FindThreatMatchesResponse

Felder
matches[]

ThreatMatch

Die Bedrohungsliste stimmt überein.

ListThreatListsResponse

Felder
threat_lists[]

ThreatListDescriptor

Die Listen, die vom Kunden heruntergeladen werden können.

PlatformType

Arten von Plattformen

Enums
PLATFORM_TYPE_UNSPECIFIED Unbekannte Plattform.
WINDOWS Bedrohung für Windows
LINUX Bedrohung für Linux.
ANDROID Bedrohung für Android
OSX Bedrohung für OS X.
IOS Bedrohung für iOS
ANY_PLATFORM Bedrohung für mindestens eine der definierten Plattformen.
ALL_PLATFORMS Bedrohung für alle definierten Plattformen.
CHROME Bedrohung für Chrome

RawHashes

Die unkomprimierten Bedrohungseinträge im Hash-Format mit einer bestimmten Präfixlänge. Hashes können eine Größe von 4 bis 32 Byte haben. Die meisten Hashes sind 4 Byte lang. Einige Hashes werden jedoch verlängert, wenn sie mit dem Hash einer gängigen URL kollidieren.

Wird zum Senden von ThreatEntrySet an Clients verwendet, die keine Komprimierung unterstützen, oder zum Senden von Hashes mit einer anderen Länge als 4 Byte an Clients, die Komprimierung unterstützen.

Felder
prefix_size

int32

Die Anzahl der Bytes für jedes Prefix, das unten codiert ist. Dieses Feld kann zwischen 4 (kürzestes Präfix) und 32 (vollständiger SHA256-Hash) liegen.

raw_hashes

bytes

Die Hash-Werte werden im Binärformat zu einem langen String verkettet. Hashes werden in lexikografischer Reihenfolge sortiert. Für JSON API-Nutzer sind Hashes base64-codiert.

RawIndices

Eine Reihe von Rohindizes, die aus einer lokalen Liste entfernt werden sollen.

Felder
indices[]

int32

Die Indizes, die aus einer lexikografisch sortierten lokalen Liste entfernt werden sollen.

RiceDeltaEncoding

Die Rice-Golomb-codierten Daten. Wird zum Senden komprimierter 4-Byte-Hashes oder komprimierter Entfernungsindexe verwendet.

Felder
first_value

int64

Der Offset des ersten Eintrags in den codierten Daten oder, wenn nur eine einzelne Ganzzahl codiert wurde, der Wert dieser einzelnen Ganzzahl. Wenn das Feld leer oder nicht vorhanden ist, wird „0“ angenommen.

rice_parameter

int32

Der Golomb-Rice-Parameter, eine Zahl zwischen 2 und 28. Dieses Feld fehlt (d. h. es hat den Wert „0“), wenn num_entries null ist.

num_entries

int32

Die Anzahl der Einträge, die in den codierten Daten deltacodiert sind. Wenn nur eine einzelne Ganzzahl codiert wurde, ist dieser Wert null und der einzelne Wert wird in first_value gespeichert.

encoded_data

bytes

Die codierten Deltas, die mit dem Golomb-Rice-Codierer codiert werden.

ThreatEntry

Eine einzelne Bedrohung, z. B. eine schädliche URL oder ihre Hash-Darstellung. Es sollte nur eines dieser Felder festgelegt sein.

Felder
hash

bytes

Ein Hash-Präfix, das aus den wichtigsten 4–32 Byte eines SHA256-Hashes besteht. Dieses Feld ist im Binärformat. Bei JSON-Anfragen sind Hashes base64-codiert.

url

string

URL

digest

bytes

Der Hashwert einer ausführbaren Datei im SHA256-Format. Die API unterstützt sowohl Binär- als auch Hexadezimal-Digests. Bei JSON-Anfragen sind Digests base64-codiert.

ThreatEntryMetadata

Die Metadaten, die mit einem bestimmten Bedrohungseintrag verknüpft sind. Der Kunde muss die Metadaten-Schlüssel/Wert-Paare kennen, die mit den einzelnen Bedrohungstypen verknüpft sind.

Felder
entries[]

MetadataEntry

Die Metadateneinträge.

MetadataEntry

Ein einzelner Metadateneintrag.

Felder
key

bytes

Der Schlüssel des Metadateneintrags. Bei JSON-Anfragen ist der Schlüssel base64-codiert.

value

bytes

Der Wert des Metadateneintrags. Bei JSON-Anfragen ist der Wert base64-codiert.

ThreatEntrySet

Eine Reihe von Bedrohungen, die der lokalen Datenbank eines Clients hinzugefügt oder daraus entfernt werden sollen.

Felder
compression_type

CompressionType

Der Komprimierungstyp für die Einträge in diesem Satz.

raw_hashes

RawHashes

Die rohen Einträge im SHA256-Format.

raw_indices

RawIndices

Die Roh-Entfernungsindexe für eine lokale Liste.

rice_hashes

RiceDeltaEncoding

Die codierten 4-Byte-Präfixe von SHA256-formatierten Einträgen mit einer Golomb-Rice-Codierung. Die Hashes werden in uint32 konvertiert, in aufsteigender Reihenfolge sortiert, dann Delta-codiert und als „encoded_data“ gespeichert.

rice_indices

RiceDeltaEncoding

Die codierten lokalen, lexikografisch sortierten Listenindexe mit einer Golomb-Rice-Codierung. Wird zum Senden komprimierter Indexe für Entfernungen verwendet. Die Entfernungsindexe (uint32) werden in aufsteigender Reihenfolge sortiert, dann Delta-codiert und als „encoded_data“ gespeichert.

ThreatEntryType

Arten von Einträgen, die eine Bedrohung darstellen. Bedrohungslisten sind Sammlungen von Einträgen eines einzelnen Typs.

Enums
THREAT_ENTRY_TYPE_UNSPECIFIED Nicht angegeben
URL URL
EXECUTABLE Ein ausführbares Programm.

ThreatInfo

Informationen zu einer oder mehreren Bedrohungen, die ein Client bei der Suche nach Übereinstimmungen in Bedrohungslisten einreicht.

Felder
threat_types[]

ThreatType

Die zu prüfenden Bedrohungstypen.

platform_types[]

PlatformType

Die zu prüfenden Plattformtypen.

threat_entry_types[]

ThreatEntryType

Die zu prüfenden Eintragstypen.

threat_entries[]

ThreatEntry

Die zu prüfenden Bedrohungseinträge.

ThreatListDescriptor

Beschreibt eine einzelne Bedrohungsliste. Eine Liste wird durch drei Parameter definiert: die Art der Bedrohung, die Art der Plattform, auf die die Bedrohung abzielt, und die Art der Einträge in der Liste.

Felder
threat_type

ThreatType

Die Art der Bedrohung, die von den Einträgen der Liste ausgeht.

platform_type

PlatformType

Der Plattformtyp, auf den die Einträge der Liste ausgerichtet sind.

threat_entry_type

ThreatEntryType

Die in der Liste enthaltenen Eintragstypen.

ThreatMatch

Übereinstimmung bei der Überprüfung eines Bedrohungseintrags in den Safe Browsing-Bedrohungslisten.

Felder
threat_type

ThreatType

Der Bedrohungstyp, der zu dieser Bedrohung passt.

platform_type

PlatformType

Der Plattformtyp, der zu dieser Bedrohung passt.

threat_entry_type

ThreatEntryType

Der Bedrohungseintragstyp, der dieser Bedrohung entspricht.

threat

ThreatEntry

Die Bedrohung, die dieser Bedrohung entspricht.

threat_entry_metadata

ThreatEntryMetadata

Optionale Metadaten, die mit dieser Bedrohung verknüpft sind.

cache_duration

Duration

Die Cache-Lebensdauer für die zurückgegebene Übereinstimmung. Clients dürfen diese Antwort nicht länger als diese Dauer im Cache speichern, um Fehlalarme zu vermeiden.

ThreatType

Arten von Bedrohungen

Enums
THREAT_TYPE_UNSPECIFIED Unbekannt
MALWARE Malware-Bedrohungstyp.
SOCIAL_ENGINEERING Art der Social Engineering-Bedrohung.
UNWANTED_SOFTWARE Bedrohungstyp für unerwünschte Software.
POTENTIALLY_HARMFUL_APPLICATION Bedrohungstyp einer potenziell schädlichen App.