Method: hashes.search

Найдите полные хеши, соответствующие указанным префиксам.

Это настраиваемый метод, как определено https://google.aip.dev/136 (настраиваемый метод относится к этому методу, имеющему настраиваемое имя в общей номенклатуре разработки API Google; он не относится к использованию настраиваемого метода HTTP).

HTTP-запрос

GET https://safebrowsing.googleapis.com/v5/hashes:search

URL-адрес использует синтаксис транскодирования gRPC .

Параметры запроса

Параметры
hashPrefixes[]

string ( bytes format)

Необходимый. Хэш-префиксы, которые необходимо найти. Клиенты НЕ ДОЛЖНЫ отправлять более 1000 хэш-префиксов. Однако после процедуры обработки URL-адреса клиентам НЕ ДОЛЖНО отправляться более 30 хеш-префиксов.

В настоящее время длина каждого хеш-префикса должна составлять ровно 4 байта. В будущем это МОЖЕТ быть смягчено.

Строка в кодировке Base64.

Тело запроса

Тело запроса должно быть пустым.

Тело ответа

Ответ вернулся после поиска хэшей угроз.

Если ничего не найдено, сервер вернет статус ОК (код состояния HTTP 200) с пустым полем fullHashes , а не возвратит статус NOT_FOUND (код состояния HTTP 404).

Что нового в V5 : существует разделение между FullHash и FullHashDetail . В случае, когда хэш представляет сайт, имеющий несколько угроз (например, MALWARE и SOCIAL_ENGINEERING), полный хеш не нужно отправлять дважды, как в версии 4. Кроме того, продолжительность кэша была упрощена до одного поля cacheDuration .

В случае успеха тело ответа содержит данные следующей структуры:

JSON-представление
{
  "fullHashes": [
    {
      object (FullHash)
    }
  ],
  "cacheDuration": string
}
Поля
fullHashes[]

object ( FullHash )

Неупорядоченный список. Неупорядоченный список найденных полных хешей.

cacheDuration

string ( Duration format)

Продолжительность кэша на стороне клиента. Клиент ДОЛЖЕН добавить эту продолжительность к текущему времени, чтобы определить срок действия. Затем срок действия применяется к каждому префиксу хеша, запрошенному клиентом в запросе, независимо от того, сколько полных хешей возвращается в ответе. Даже если сервер не возвращает полных хешей для определенного префикса хеш-функции, этот факт ДОЛЖЕН также кэшироваться клиентом.

Если и только если поле fullHashes пусто, клиент МОЖЕТ увеличить cacheDuration , чтобы определить новый срок действия, который позже, чем указанный сервером. В любом случае увеличенная длительность кэша не должна превышать 24 часов.

Важно: клиент НЕ ДОЛЖЕН предполагать, что сервер вернет одинаковую продолжительность кэша для всех ответов. Сервер МОЖЕТ выбирать разную продолжительность кэширования для разных ответов в зависимости от ситуации.

Длительность в секундах, содержащая до девяти дробных цифр и оканчивающаяся на « s ». Пример: "3.5s" .

FullHash

Полный хеш, идентифицированный с одним или несколькими совпадениями.

JSON-представление
{
  "fullHash": string,
  "fullHashDetails": [
    {
      object (FullHashDetail)
    }
  ]
}
Поля
fullHash

string ( bytes format)

Соответствующий полный хэш. Это хэш SHA256. Длина будет ровно 32 байта.

Строка в кодировке Base64.

fullHashDetails[]

object ( FullHashDetail )

Неупорядоченный список. Повторяющееся поле, определяющее детали, относящиеся к этому полному хешу.

FullHashDetail

Подробности о соответствующем полном хеше.

Важное примечание о прямой совместимости: новые типы угроз и атрибуты угроз могут быть добавлены сервером в любое время; эти дополнения считаются незначительными изменениями версии. Политика Google не раскрывает второстепенные номера версий в API (политику управления версиями см. на странице https://cloud.google.com/apis/design/versioning ), поэтому клиенты ДОЛЖНЫ быть готовы получать сообщения FullHashDetail , содержащие значения перечисления ThreatType или ThreatAttribute . значения перечисления, которые клиент считает недействительными. Таким образом, ответственность за проверку правильности всех значений перечислений ThreatType и ThreatAttribute лежит на клиенте; если какое-либо значение считается недействительным, клиент ДОЛЖЕН игнорировать все сообщение FullHashDetail .

JSON-представление
{
  "threatType": enum (ThreatType),
  "attributes": [
    enum (ThreatAttribute)
  ]
}
Поля
threatType

enum ( ThreatType )

Тип угрозы. Это поле никогда не будет пустым.

attributes[]

enum ( ThreatAttribute )

Неупорядоченный список. Дополнительные атрибуты этих полных хешей. Это может быть пусто.

Тип угрозы

Виды угроз.

Перечисления
THREAT_TYPE_UNSPECIFIED Неизвестный тип угрозы. Если это возвращается сервером, клиент должен вообще игнорировать включающий FullHashDetail .
MALWARE

Тип угрозы вредоносного ПО. Вредоносное ПО — это любое программное обеспечение или мобильное приложение, специально предназначенное для нанесения вреда компьютеру, мобильному устройству, программному обеспечению, на котором оно работает, или его пользователям. Вредоносное ПО демонстрирует вредоносное поведение, которое может включать установку программного обеспечения без согласия пользователя и установку вредоносного программного обеспечения, например вирусов.

Более подробную информацию можно найти здесь .

SOCIAL_ENGINEERING

Тип угрозы социальной инженерии. Страницы социальной инженерии ложно претендуют на то, чтобы действовать от имени третьей стороны с намерением ввести зрителей в заблуждение и заставить их выполнить действие, которому зритель доверял бы только истинному агенту этой третьей стороны. Фишинг — это тип социальной инженерии, который обманом заставляет зрителя выполнить определенное действие по предоставлению информации, например учетных данных для входа.

Более подробную информацию можно найти здесь .

UNWANTED_SOFTWARE Тип нежелательной программной угрозы. Нежелательным программным обеспечением является любое программное обеспечение, которое не соответствует принципам программного обеспечения Google, но не является вредоносным ПО.
POTENTIALLY_HARMFUL_APPLICATION Тип потенциально опасной угрозы приложения , используемый Google Play Protect для Play Store .

Атрибут угрозы

Атрибуты угроз. Эти атрибуты могут придавать дополнительное значение конкретной угрозе, но не влияют на тип угрозы. Например, атрибут может указывать более низкую достоверность, тогда как другой атрибут может указывать более высокую достоверность. В будущем могут быть добавлены дополнительные атрибуты.

Перечисления
THREAT_ATTRIBUTE_UNSPECIFIED Неизвестный атрибут. Если это возвращается сервером, клиент должен вообще игнорировать включающий FullHashDetail .
CANARY Указывает, что ThreatType не следует использовать для принудительного применения.
FRAME_ONLY Указывает, что ThreatType следует использовать только для принудительного применения к кадрам.