Package google.security.safebrowsing.v4

Indeks

SafeBrowsing

Interfejsy API Bezpiecznego przeglądania umożliwiają klientom sprawdzanie zasobów internetowych (najczęściej adresów URL) pod kątem stale aktualizowanych przez Google list niebezpiecznych zasobów internetowych. Interfejsy API Bezpiecznego przeglądania (wersja 4) obejmują interfejsy Update API i Lookup API.

Interfejs Update API jest przeznaczony dla naszych większych klientów i zawiera metody FindFullHashes i FetchThreatListUpdates . Interfejs Update API wymaga, aby klienty utrzymywały pobrane listy zagrożeń w lokalnej bazie danych.

Po pierwsze, klient sprawdza zgodność z lokalnymi listami w celu określenia stanu (bezpiecznego lub niebezpiecznego) danego zasobu internetowego. Listy najczęściej składają się z prefiksów haszujących wyrażeń URL znajdujących się na czarnej liście. Aby sprawdzić adres URL, klient generuje hasze danego adresu URL i sprawdza na listach lokalnych pod kątem kolizji prefiksów. Jeśli klient znajdzie dopasowanie prefiksu, za pomocą metody FindFullHashes pobiera pełne wartości hash powiązane z dopasowanym prefiksem skrótu. Następnie klient porównuje lokalny pełny hasz ze zwróconymi pełnymi haszami. Dopasowanie wskazuje, że adres URL jest niebezpieczny.

Po drugie, klient uzyskuje aktualizacje lokalnych baz danych za pomocą metody FetchThreatListUpdates , która pobiera bieżący stan klienta i zwraca zaktualizowany stan klienta wraz ze zmianami, które klient powinien zastosować do swoich lokalnych list zagrożeń.

Interfejs Lookup API jest przeznaczony dla mniejszych klientów i pozwala im bezpośrednio dopasowywać zasoby do list zagrożeń Bezpiecznego przeglądania za pomocą metody FindThreatMatch.

Klienty używające interfejsu Update API lub Lookup API mogą uzyskać listę list zagrożeń Bezpiecznego przeglądania dostępnych do pobrania za pomocą metody ListThreatLists.

{-- TRUSTED_THREAT_REPORTER: Zaufani klienci ds. zagrożeń mogą przesyłać do Google raporty do analizy, korzystając z metody SubmitThreatReport. --}

FetchThreatListUpdates

rpc FetchThreatListUpdates(FetchThreatListUpdatesRequest) returns (FetchThreatListUpdatesResponse)

Pobiera najnowsze aktualizacje listy zagrożeń. Klient może poprosić o aktualizacje wielu list jednocześnie.

FindFullHashes

rpc FindFullHashes(FindFullHashesRequest) returns (FindFullHashesResponse)

Znajduje pełne wartości hash pasujące do żądanych prefiksów skrótów.

FindThreatMatches

rpc FindThreatMatches(FindThreatMatchesRequest) returns (FindThreatMatchesResponse)

Znajduje wpisy o zagrożeniach pasujące do list Bezpiecznego przeglądania.

ListThreatLists

rpc ListThreatLists(Empty) returns (ListThreatListsResponse)

Wyświetla listy zagrożeń Bezpiecznego przeglądania dostępne do pobrania.

Suma kontrolna

Oczekiwany stan lokalnej bazy danych klienta.

Pola
sha256

bytes

Skrót SHA256 stanu klienta; czyli posortowana lista wszystkich skrótów dostępnych w bazie danych.

ClientInfo

Metadane klienta powiązane z żądaniami do interfejsu Bezpieczne przeglądanie.

Pola
client_id

string

Identyfikator klienta, który (mam nadzieję) jednoznacznie identyfikuje implementację klienta interfejsu Bezpieczne przeglądanie.

client_version

string

Wersja implementacji klienta.

CompressionType

Sposoby kompresowania zbiorów wpisów zagrożeń.

Wartości w polu enum
COMPRESSION_TYPE_UNSPECIFIED Nieznany.
RAW Nieprzetworzone, nieskompresowane dane.
RICE Dane zakodowane w postaci ryżu i golomba.

FetchThreatListUpdatesRequest

Opisuje żądanie aktualizacji interfejsu API Bezpiecznego przeglądania. Klienci mogą poprosić o aktualizacje wielu list w pojedynczym żądaniu. Serwer może nie odpowiadać na wszystkie żądania, jeśli lista nie jest aktualizowana. UWAGA: pole indeksu 2 nie jest używane. DALEJ: 5

Pola
client

ClientInfo

Metadane klienta.

list_update_requests[]

ListUpdateRequest

Żądana lista zagrożeń zostanie zaktualizowana.

ListUpdateRequest

Jedno żądanie aktualizacji listy.

Pola
threat_type

ThreatType

Rodzaj zagrożenia, jakie stwarzają wpisy na liście.

platform_type

PlatformType

Typ platformy zagrożonej według wpisów na liście.

threat_entry_type

ThreatEntryType

Typy wpisów na liście.

state

bytes

Bieżący stan klienta na żądanej liście (zaszyfrowany stan klienta otrzymany po ostatniej udanej aktualizacji listy).

constraints

Constraints

Ograniczenia powiązane z tym żądaniem.

Ograniczenia

Ograniczenia związane z tą aktualizacją.

Pola
max_update_entries

int32

Maksymalny rozmiar w liczbie wpisów. Aktualizacja nie będzie zawierać więcej pozycji niż ta wartość. Powinna to być potęga 2 z zakresu od 2**10 do 2**20. Jeśli wartość wynosi 0, limit rozmiaru aktualizacji nie jest ustawiony.

max_database_entries

int32

Określa maksymalną liczbę wpisów, które klient może mieć w lokalnej bazie danych na potrzeby określonej listy. Powinna to być potęga 2 z zakresu od 2**10 do 2**20. Wartość 0 nie powoduje ustawienia limitu rozmiaru bazy danych.

region

string

Wysyła żądanie wyświetlenia listy dla określonej lokalizacji geograficznej. Jeśli zasada jest nieskonfigurowana, serwer może wybierać tę wartość na podstawie adresu IP użytkownika. Oczekiwany jest format ISO 3166-1 alfa-2.

supported_compressions[]

CompressionType

Typy kompresji obsługiwane przez klienta.

language

string

Wysyła żądanie wyświetlenia list dla określonego języka. Oczekiwany jest format ISO 639 alfa-2.

device_location

string

Fizyczna lokalizacja klienta, wyrażona jako kod regionu zgodny ze standardem ISO 31166-1 alfa-2.

FetchThreatListUpdatesResponse

Pola
list_update_responses[]

ListUpdateResponse

Aktualizacje listy żądane przez klientów. Liczba odpowiedzi może być mniejsza od liczby żądań wysłanych przez klientów. Dzieje się tak na przykład wtedy, gdy na serwerze nie ma aktualizacji konkretnej listy.

minimum_wait_duration

Duration

Minimalny czas, przez jaki klient musi czekać przed wysłaniem żądania aktualizacji. Jeśli to pole nie jest skonfigurowane, klienci mogą aktualizować dane tak szybko, jak chcą.

ListUpdateResponse

Aktualizacja pojedynczej listy.

Pola
threat_type

ThreatType

Typ zagrożenia, w przypadku którego zwracane są dane.

threat_entry_type

ThreatEntryType

Format zagrożeń.

platform_type

PlatformType

Typ platformy, w przypadku której zwracane są dane.

response_type

ResponseType

Typ odpowiedzi. Może to oznaczać, że po otrzymaniu odpowiedzi klient musi podjąć działanie.

additions[]

ThreatEntrySet

Zestaw wpisów, które należy dodać do listy lokalnego typu zagrożeń. Powtarzanie tych czynności, aby umożliwić wysłanie kombinacji skompresowanych i nieprzetworzonych danych w ramach jednej odpowiedzi.

removals[]

ThreatEntrySet

Zestaw wpisów do usunięcia z listy lokalnego typu zagrożeń. W praktyce to pole jest puste lub zawiera dokładnie jeden ThreatEntrySet.

new_client_state

bytes

Nowy stan klienta w formacie zaszyfrowany. Nieprzezroczyste dla klientów.

checksum

Checksum

Oczekiwany hasz SHA256 stanu klienta; jest to posortowana lista wszystkich haszów obecnych w bazie danych po zastosowaniu podanej aktualizacji. Jeśli stan klienta nie jest zgodny z oczekiwanym, klient musi zignorować tę aktualizację i spróbować ponownie później.

ResponseType

Typ odpowiedzi wysłanej do klienta.

Wartości w polu enum
RESPONSE_TYPE_UNSPECIFIED Nieznany.
PARTIAL_UPDATE Częściowe aktualizacje są stosowane do istniejącej lokalnej bazy danych klienta.
FULL_UPDATE Pełne aktualizacje zastępują całą lokalną bazę danych klienta. Oznacza to, że klient był przestarzały lub prawdopodobnie jest uszkodzony.

FindFullHashesRequest

Żądanie zwracania pełnych wartości hash dopasowanych przez podane prefiksy skrótów.

Pola
client

ClientInfo

Metadane klienta.

client_states[]

bytes

Bieżący stan klienta dla każdej lokalnej listy zagrożeń klienta.

threat_info

ThreatInfo

Listy i hasze do sprawdzenia.

api_client

ClientInfo

Metadane klienta powiązane z elementami wywołującymi interfejsy API wyższego poziomu tworzone na podstawie implementacji klienta.

FindFullHashesResponse

Pola
matches[]

ThreatMatch

Pełne hasze pasujące do żądanych prefiksów.

minimum_wait_duration

Duration

Minimalny czas, przez jaki klient musi czekać przed wysłaniem jakichkolwiek żądań haszów znajdowania. Jeśli to pole nie jest skonfigurowane, klienci mogą wysyłać żądania tak szybko, jak chcą.

negative_cache_duration

Duration

Czas przechowywania odpowiedzi w pamięci podręcznej w przypadku żądanych encji, które nie pasowały do listy zagrożeń.

FindThreatMatchesRequest

Żądanie sprawdzenia wpisów względem list.

Pola
client

ClientInfo

Metadane klienta.

threat_info

ThreatInfo

Listy i wpisy pod kątem zgodności.

FindThreatMatchesResponse

Pola
matches[]

ThreatMatch

Lista zagrożeń jest jednakowa.

ListThreatListsResponse

Pola
threat_lists[]

ThreatListDescriptor

Listy dostępne do pobrania dla klienta.

PlatformType

Typy platform.

Wartości w polu enum
PLATFORM_TYPE_UNSPECIFIED Nieznana platforma.
WINDOWS Zagrożenie dla systemu Windows.
LINUX Zagrożenie dla systemu Linux.
ANDROID Zagrożenie dla Androida.
OSX Zagrożenie dla systemu OS X.
IOS Zagrożenie dla systemu iOS.
ANY_PLATFORM Zagrożenie dla co najmniej 1 ze zdefiniowanych platform.
ALL_PLATFORMS Zagrożenie dla wszystkich zdefiniowanych platform.
CHROME Zagrożenie dla Chrome.

RawHashes

Nieskompresowane wpisy zagrożenia w formacie skrótu o określonej długości prefiksu. Hasze mogą mieć od 4 do 32 bajtów. Znaczna większość ma 4 bajty, ale niektóre hasze są dłuższe, jeśli zderzą się z hashtagiem popularnego adresu URL.

Służy do wysyłania ThreatEntrySet do klientów, które nie obsługują kompresji, lub do wysyłania skrótów nie4-bajtowych do klientów, które obsługują kompresję.

Pola
prefix_size

int32

Liczba bajtów dla każdego prefiksu zakodowanego poniżej. Pole może zawierać dowolną z wartości od 4 (najkrótszy prefiks) do 32 (pełny hasz SHA256).

raw_hashes

bytes

Skróty w formacie binarnym są połączone w jeden długi ciąg. Hashe są sortowane w kolejności leksykograficznej. W przypadku użytkowników interfejsu JSON API wartości hash są zakodowane w formacie base64.

RawIndices

Zestaw nieprzetworzonych indeksów do usunięcia z listy lokalnej.

Pola
indices[]

int32

Indeksy do usunięcia z posortowanej leksykograficznie listy lokalnej.

RiceDeltaEncoding

Dane zakodowane w postaci ryżu-golomba. Służy do przesyłania skompresowanych 4-bajtowych haszów lub skompresowanych indeksów usuwania.

Pola
first_value

int64

Przesunięcie pierwszej pozycji w zakodowanych danych lub, jeśli zakodowana była tylko jedna liczba całkowita, wartość tej pojedynczej liczby całkowitej. Jeśli pole jest puste lub go nie ma, przyjmujej wartość 0.

rice_parameter

int32

Parametr Golomb-Rice, który musi mieć wartość od 2 do 28. Jeśli num_entries ma wartość 0, brakuje tego pola (czyli 0).

num_entries

int32

Liczba wpisów zakodowanych delta w zakodowanych danych. Jeśli zakodowana jest tylko jedna liczba całkowita, wartość wynosi 0 i pojedyncza wartość zostanie zapisana w funkcji first_value.

encoded_data

bytes

Zakodowane delta zakodowane za pomocą kodera Golomb-Rice.

ThreatEntry

Pojedyncze zagrożenie, na przykład złośliwy adres URL lub jego reprezentacja za pomocą skrótu. Należy ustawić tylko jedno z tych pól.

Pola
hash

bytes

Prefiks skrótu składający się z najważniejszych 4–32 bajtów skrótu SHA256. To pole ma format binarny. W przypadku żądań JSON hasze są zakodowane w formacie base64.

url

string

Adres URL.

digest

bytes

Skrót pliku wykonywalnego w formacie SHA256. Interfejs API obsługuje skróty binarne i szesnastkowe. W przypadku żądań JSON podsumowania są zakodowane w formacie base64.

ThreatEntryMetadata

Metadane powiązane z konkretnym wpisem o zagrożeniu. Klient powinien znać pary klucz-wartość metadanych powiązane z poszczególnymi typami zagrożeń.

Pola
entries[]

MetadataEntry

Wpisy metadanych.

MetadataEntry

Pojedynczy wpis metadanych.

Pola
key

bytes

Klucz wpisu metadanych. W przypadku żądań JSON klucz jest zakodowany w formacie base64.

value

bytes

Wartość wpisu metadanych. W przypadku żądań JSON wartość jest zakodowana w formacie base64.

ThreatEntrySet

Zestaw zagrożeń, które należy dodać do lokalnej bazy danych klienta lub z niej usunąć.

Pola
compression_type

CompressionType

Typ kompresji wpisów w tym zbiorze.

raw_hashes

RawHashes

Nieprzetworzone wpisy w formacie SHA256.

raw_indices

RawIndices

Nieprzetworzone indeksy usunięć dla listy lokalnej.

rice_hashes

RiceDeltaEncoding

Zakodowane 4-bajtowe prefiksy wpisów w formacie SHA256 z kodowaniem Golomb-Rice. Skróty są konwertowane do formatu uint32, posortowane w kolejności rosnącej, a potem zakodowane delta i zapisywane jako dane_kodowane.

rice_indices

RiceDeltaEncoding

Zakodowane lokalne, posortowane leksykograficznie indeksy list z użyciem kodowania Golomb-Rice. Służy do przesyłania skompresowanych indeksów usunięcia. Indeksy usunięcia (uint32) są sortowane w kolejności rosnącej, a potem kodowane delta i przechowywane jako dane_zakodowane.

ThreatEntryType

Rodzaje wpisów, które stanowią zagrożenie. Listy zagrożeń to zbiory wpisów jednego typu.

Wartości w polu enum
THREAT_ENTRY_TYPE_UNSPECIFIED Nie określono.
URL Adres URL.
EXECUTABLE Program wykonywalny.

ThreatInfo

Informacje o co najmniej 1 zagrożeniu, które klient przesyła podczas sprawdzania dopasowań na listach zagrożeń.

Pola
threat_types[]

ThreatType

Typy zagrożeń do sprawdzenia.

platform_types[]

PlatformType

Typy platform do sprawdzenia.

threat_entry_types[]

ThreatEntryType

Typy wpisów do sprawdzenia.

threat_entries[]

ThreatEntry

Wpisy zagrożeń do sprawdzenia.

ThreatListDescriptor

Opisuje listę poszczególnych zagrożeń. Listę definiuje się na podstawie 3 parametrów: typu stwarzanego zagrożenia, typu platformy, na którą jest ono kierowane, oraz typu wpisów na liście.

Pola
threat_type

ThreatType

Typ zagrożenia stwarzany przez wpisy na liście.

platform_type

PlatformType

Typ platformy, na który są kierowane wpisy z listy.

threat_entry_type

ThreatEntryType

Typy wpisów na liście.

ThreatMatch

Dopasowanie podczas sprawdzania wpisu o zagrożeniu na listach zagrożeń Bezpiecznego przeglądania.

Pola
threat_type

ThreatType

Typ zagrożenia pasujący do tego zagrożenia.

platform_type

PlatformType

Typ platformy pasujący do tego zagrożenia.

threat_entry_type

ThreatEntryType

Typ wpisu zagrożenia pasujący do tego zagrożenia.

threat

ThreatEntry

Zagrożenie zgodne z tym zagrożeniem.

threat_entry_metadata

ThreatEntryMetadata

Opcjonalne metadane powiązane z tym zagrożeniem.

cache_duration

Duration

Czas przechowywania dla zwróconego dopasowania w pamięci podręcznej. Klienty nie mogą buforować tej odpowiedzi na dłużej niż ten czas, aby uniknąć wyników fałszywie pozytywnych.

ThreatType

Typy zagrożeń.

Wartości w polu enum
THREAT_TYPE_UNSPECIFIED Nieznany.
MALWARE Rodzaj zagrożenia związany ze złośliwym oprogramowaniem.
SOCIAL_ENGINEERING Rodzaj zagrożenia związany z inżynierią społeczną.
UNWANTED_SOFTWARE Typ zagrożenia związanego z niechcianym oprogramowaniem.
POTENTIALLY_HARMFUL_APPLICATION Typ zagrożenia potencjalnie szkodliwego dla aplikacji.