Package google.security.safebrowsing.v4

Index

SafeBrowsing

Mit den Safe Browsing APIs können Clients Webressourcen (häufig URLs) mit den fortlaufend aktualisierten Google-Listen unsicherer Webressourcen vergleichen. Die Safe Browsing APIs (v4) umfassen die Update API und die Lookup API.

Die Update-API wurde für größere Kunden entwickelt und umfasst die Methoden FindFullHashes und FetchThreatListUpdates . Für die Update API müssen Clients heruntergeladene Bedrohungslisten in einer lokalen Datenbank speichern.

Zuerst gleichen Kunden ihre lokalen Listen ab, um den Status (sicher oder unsicher) einer bestimmten Webressource zu ermitteln. Meistens bestehen Listen aus Hash-Präfixen von URL-Ausdrücken, die auf der Sperrliste stehen. Um eine URL zu überprüfen, generieren Clients die Hashes einer bestimmten URL und suchen in ihren lokalen Listen auf Präfixkonflikte. Wird eine Präfixübereinstimmung gefunden, erhält der Client über die Methode FindFullHashes die vollständigen Hashes, 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 zeigt an, dass die URL unsicher ist.

Zweitens erhalten Clients Aktualisierungen an ihren lokalen Datenbanken über die Methode FetchThreatListUpdates, die den aktuellen Status des Clients ermittelt und einen aktualisierten Clientstatus zusammen mit den Änderungen zurückgibt , die der Client auf seine lokalen Bedrohungslisten anwenden soll.

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

Clients, die entweder die Update API oder die Lookup API verwenden, können eine Liste der Safe Browsing-Bedrohungslisten abrufen, die über die ListThreatLists-Methode heruntergeladen werden können.

{-- TRUSTED_THREAT_REPORTER: Vertrauenswürdige Clients können über die Methode "SubmitThreatReport" Meldungen zur Analyse an Google senden. --}

FetchThreatListUpdates

rpc FetchThreatListUpdates(FetchThreatListUpdatesRequest) returns (FetchThreatListUpdatesResponse)

Ruft die neuesten Aktualisierungen der Bedrohungsliste ab. Ein Kunde kann Aktualisierungen für mehrere Listen gleichzeitig anfordern.

FindFullHashes

rpc FindFullHashes(FindFullHashesRequest) returns (FindFullHashesResponse)

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

FindThreatMatches

rpc FindThreatMatches(FindThreatMatchesRequest) returns (FindThreatMatchesResponse)

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

ListThreatLists

rpc ListThreatLists(Empty) returns (ListThreatListsResponse)

Listet die Safe Browsing-Bedrohungslisten auf, die zum Download zur Verfügung stehen.

Prüfsumme

Der erwartete Status der lokalen Datenbank eines Clients.

Felder
sha256

bytes

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 die Clientimplementierung der Safe Browsing API (hoffentlich) eindeutig identifiziert.

client_version

string

Die Version der Clientimplementierung.

CompressionType

Methoden, mit denen Bedrohungseintragssätze komprimiert werden können.

Enums
COMPRESSION_TYPE_UNSPECIFIED Unbekannt.
RAW Unkomprimierte Rohdaten.
RICE Mit Rice-Golomb codierte Daten.

FetchThreatListUpdatesRequest

Beschreibt eine Safe Browsing API-Aktualisierungsanfrage. 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 Aktualisierungen für diese Liste hat. HINWEIS: Feldindex 2 wird nicht verwendet. WEITER: 5

Felder
client

ClientInfo

Die Metadaten des Clients.

list_update_requests[]

ListUpdateRequest

Die angeforderte Liste der Bedrohungen wird aktualisiert.

ListUpdateRequest

Eine einzelne Anfrage zur Listenaktualisierung.

Felder
threat_type

ThreatType

Die Art der Bedrohung durch Einträge in der Liste.

platform_type

PlatformType

Der Plattformtyp, für den ein Risiko nach Einträgen in der Liste besteht.

threat_entry_type

ThreatEntryType

Die in der Liste vorhandenen Eintragstypen.

state

bytes

Der aktuelle Status des Clients für die angeforderte Liste. Dies ist der verschlüsselte Clientstatus, der nach der letzten erfolgreichen Listenaktualisierung empfangen wurde.

constraints

Constraints

Die mit dieser Anfrage verknüpften Einschränkungen.

Einschränkungen

Die Einschränkungen für dieses Update.

Felder
max_update_entries

int32

Die maximale Größe der Anzahl von Einträgen. Die Aktualisierung enthält nicht mehr Einträge als diesen Wert. Der Wert sollte eine Potenz von 2 zwischen 2**10 und 2**20 sein. Wenn null, wird keine Größenbeschränkung für die Aktualisierung festgelegt.

max_database_entries

int32

Legt die maximale Anzahl von Einträgen fest, die der Client für die angegebene Liste in der lokalen Datenbank aufnehmen möchte. Der Wert sollte eine Potenz von 2 zwischen 2**10 und 2**20 sein. Wenn null, ist keine Größenbeschränkung für die Datenbank festgelegt.

region

string

Fordert die Liste für einen bestimmten geografischen Standort an. Wenn die Richtlinie nicht konfiguriert ist, kann der Server diesen Wert anhand der IP-Adresse des Nutzers auswählen. Erfordert ISO 3166-1 alpha-2-Format.

supported_compressions[]

CompressionType

Die vom Client unterstützten Komprimierungstypen.

language

string

Fordert die Listen für eine bestimmte Sprache an. Erwartet das ISO 639-Alpha-2-Format.

device_location

string

Der physische Standort eines Clients, ausgedrückt als Regionscode nach ISO 31166-1 alpha-2.

FetchThreatListUpdatesResponse

Felder
list_update_responses[]

ListUpdateResponse

Die von den Clients angeforderten Listenaktualisierungen. Die Anzahl der Antworten hier kann geringer sein als die Anzahl der Anfragen, die von Clients gesendet werden. Das ist beispielsweise der Fall, wenn der Server keine Aktualisierungen für eine bestimmte Liste hat.

minimum_wait_duration

Duration

Die Mindestdauer, die der Client warten muss, bevor er eine Aktualisierungsanfrage sendet. Wenn dieses Feld nicht festgelegt ist, können Clients schnellstmöglich aktualisiert werden.

ListUpdateResponse

Die 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 Typ der Antwort. Dies kann darauf hinweisen, dass der Client eine Aktion erfordert, wenn die Antwort eingeht.

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 ein ThreatEntrySet.

new_client_state

bytes

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

checksum

Checksum

Der erwartete SHA256-Hash des Clientstatus, d. h. der sortierten Liste aller Hashes, die nach dem bereitgestellten Update 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 an den Client gesendete Antworttyp.

Enums
RESPONSE_TYPE_UNSPECIFIED Unbekannt.
PARTIAL_UPDATE Teilweise Aktualisierungen werden auf die vorhandene lokale Datenbank des Clients angewendet.
FULL_UPDATE Vollständige Updates ersetzen die gesamte lokale Datenbank des Clients. Das bedeutet, dass der Kunde entweder stark veraltet war oder vermutet wird, dass er korrupt war.

FindFullHashesRequest

Anfrage zur Rückgabe vollständiger Hashes, die den angegebenen Hash-Präfixen entsprechen.

Felder
client

ClientInfo

Die Metadaten des Clients.

client_states[]

bytes

Aktuelle Clientstatus für die einzelnen lokalen Bedrohungslisten des Clients.

threat_info

ThreatInfo

Die Listen und Hashes, die geprüft werden sollen.

api_client

ClientInfo

Clientmetadaten, die den Aufrufern von übergeordneten APIs zugewiesen sind, die auf der Implementierung des Clients aufbauen.

FindFullHashesResponse

Felder
matches[]

ThreatMatch

Die vollständigen Hashes, die den angeforderten Präfixen entsprechen.

minimum_wait_duration

Duration

Die Mindestdauer, die der Client warten muss, bevor er eine Anfrage zum Suchen von Hashes sendet. Wenn dieses Feld nicht festgelegt ist, können Kunden eine Anfrage senden, sobald sie möchten.

negative_cache_duration

Duration

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

FindThreatMatchesRequest

Anfrage zum Prüfen von Einträgen auf Listen.

Felder
client

ClientInfo

Die Metadaten des Clients.

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 Client zum Download zur Verfügung stehen.

PlatformType

Plattformtypen

Enums
PLATFORM_TYPE_UNSPECIFIED Unbekannte Plattform.
WINDOWS Bedrohung für Windows.
LINUX Unter Linux wurde eine Bedrohung erkannt.
ANDROID Android stellt eine Bedrohung dar.
OSX Bedrohung für OS X
IOS Bedrohung für iOS
ANY_PLATFORM Gefährdung für mindestens eine der definierten Plattformen.
ALL_PLATFORMS Gefährdung für alle definierten Plattformen.
CHROME Chrome ist eine Bedrohung.

RawHashes

Die unkomprimierten Bedrohungseinträge im Hash-Format mit einer bestimmten Präfixlänge. Hashes können zwischen 4 und 32 Byte groß sein. Die meisten Hashes sind 4 Byte. Einige Hashes werden jedoch verlängert, wenn sie mit dem Hash einer beliebten URL kollidieren.

Wird zum Senden von ThreatEntrySet an Clients, die keine Komprimierung unterstützen, oder zum Senden von Nicht-Byte-Hashes an Clients mit Komprimierungsunterstützung verwendet.

Felder
prefix_size

int32

Die Anzahl der Byte für jedes unten codierte Präfix. Der Wert in diesem Feld kann zwischen 4 (kürzestes Präfix) und 32 (vollständiger SHA256-Hash) liegen.

raw_hashes

bytes

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

RawIndices

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

Felder
indices[]

int32

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 ist oder fehlt, wird Null angenommen.

rice_parameter

int32

Der Golomb-Rice-Parameter, bei dem es sich um eine Zahl zwischen 2 und 28 handelt. Dieses Feld fehlt (d. h. null), 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 dies null und der einzelne Wert wird in first_value gespeichert.

encoded_data

bytes

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

ThreatEntry

Eine individuelle Bedrohung, z. B. eine schädliche URL oder deren Hash-Darstellung. Es darf nur eines dieser Felder festgelegt werden.

Felder
hash

bytes

Ein Hash-Präfix, das aus den wichtigsten 4 bis 32 Byte eines SHA-256-Hashs besteht. Dieses Feld hat das Binärformat. Bei JSON-Anfragen sind Hashes base64-codiert.

url

string

Eine URL.

digest

bytes

Der Digest einer ausführbaren Datei im SHA256-Format. Die API unterstützt sowohl binäre als auch Hex-Digests. Bei JSON-Anfragen sind die Digests base64-codiert.

ThreatEntryMetadata

Die Metadaten, die einem bestimmten Bedrohungseintrag zugeordnet sind. Es wird erwartet, dass der Client die Metadaten-Schlüssel/Wert-Paare kennt, die mit den einzelnen Bedrohungstypen verknüpft sind.

Felder
entries[]

MetadataEntry

Die Metadateneinträge.

MetadataEntry

Ein einzelner Metadateneintrag.

Felder
key

bytes

Der Metadaten-Eingabeschlüssel. 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 sollten.

Felder
compression_type

CompressionType

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

raw_hashes

RawHashes

Die Roheinträge im SHA256-Format.

raw_indices

RawIndices

Die Indizes der Rohentfernung für eine lokale Liste.

rice_hashes

RiceDeltaEncoding

Die codierten 4-Byte-Präfixe von SHA-256-formatierten Einträgen mit Golomb-Rice-Codierung. Die Hashes werden in uint32 konvertiert, in aufsteigender Reihenfolge sortiert, dann deltacodiert und als Encrypted_data gespeichert.

rice_indices

RiceDeltaEncoding

Die codierten lokalen, lexikografisch sortierten Listenindexe unter Verwendung einer Golomb-Rice-Codierung. Wird zum Senden komprimierter Entfernungsindexe verwendet. Die Entfernungsindexe (uint32) werden in aufsteigender Reihenfolge sortiert, dann deltacodiert und als codierte_Daten gespeichert.

ThreatEntryType

Arten von Einträgen, die Bedrohungen darstellen. Bedrohungslisten sind Sammlungen von Einträgen eines einzigen Typs.

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

ThreatInfo

Informationen zu einer oder mehreren Bedrohungen, die ein Client bei der Prüfung auf Ü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

Der Bedrohungstyp aus den Listeneinträgen.

platform_type

PlatformType

Der Plattformtyp, auf den die Listeneinträge ausgerichtet sind.

threat_entry_type

ThreatEntryType

Die in der Liste enthaltenen Eintragstypen.

ThreatMatch

Eine Übereinstimmung, wenn ein Bedrohungseintrag in den Safe Browsing-Bedrohungslisten geprüft wird.

Felder
threat_type

ThreatType

Der Bedrohungstyp, der dieser Bedrohung entspricht.

platform_type

PlatformType

Der Plattformtyp, der dieser Bedrohung entspricht.

threat_entry_type

ThreatEntryType

Der Bedrohungseintragstyp, der dieser Bedrohung entspricht.

threat

ThreatEntry

Die mit dieser Bedrohung übereinstimmende Bedrohung.

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 diesen Zeitraum im Cache speichern, um falsch positive Ergebnisse zu vermeiden.

ThreatType

Arten von Bedrohungen.

Enums
THREAT_TYPE_UNSPECIFIED Unbekannt.
MALWARE Malware-Bedrohungstyp.
SOCIAL_ENGINEERING Bedrohungstyp des Social Engineering.
UNWANTED_SOFTWARE Bedrohungstyp "Unerwünschte Software"
POTENTIALLY_HARMFUL_APPLICATION Potenziell schädlicher Bedrohungstyp der Anwendung.